本文目錄一覽:
- 1、js能否調用delphi開發的dll?
- 2、HTML5/Javascript可以調用c++寫的dll嗎?
- 3、關於javascript調用本地dll
- 4、javascript 怎麼調用 dll 接口? dll文件不能註冊,直接調用裡面的函數進行通信.
- 5、js里怎樣調用c#寫的dll
- 6、如何把.js文件編譯成dll供頁面調用
js能否調用delphi開發的dll?
1、javascript可以調用delphi開發的DLL、ActiveX,不需要安裝運行環境;
2、首先確保你的delphi程序不要帶包編譯;
3、程序發布時連同borlandmm.dll一起發布
HTML5/Javascript可以調用c++寫的dll嗎?
hTML5和Javascript都屬於跨平台語言,dll是windows的控件,並且html5和js也沒有將dll納入兼容調用範圍。
當然,凡事有例外的,例如可以編寫一個控件(針對不同的平台編寫),然後在瀏覽器端調用,就像現在的監控軟件,都需要安裝私有控件才可以連接服務主機。但所編寫的控件具體如何實現就靠自己搜資料了,並且不建議編寫控件,畢竟瀏覽器的兼容支持比較難實現,確實有需要的話可以編程序,通過網絡進行通信或者展現需要的內容。
關於javascript調用本地dll
這根本就是不可能的事情,你想想,頁面里的 JS 都是開發人員寫的,而在瀏覽者的電腦上執行。如果像你說的能用 JS 直接調用 dll 的話,那麼這個不是比病毒還要厲害了?人家電腦你想怎麼玩就怎麼玩。這簡直就是瀏覽器史無前例的漏洞了,所以不用想了,不可能是你要的這種用法
javascript 怎麼調用 dll 接口? dll文件不能註冊,直接調用裡面的函數進行通信.
如果Javascript作為前端腳本(就是在瀏覽器端運行的)使用的話,要調用自己的DLL幾乎是不可能的,任何瀏覽器都不會讓網頁隨意這麼做的,太不安全了。只有極少數DLL是可以在瀏覽器中直接調用的,比如xmlhttp,大部分DLL調用時都會提示用戶是否允許運行,甚至直接封殺。
如果是在服務器端使用Javascript(如ASP)調用DLL,這倒是有可能的,但有很多限制條件,比如函數要提供ActiveX接口(類似”Scripting.FileSystemObject”這樣的)、要在服務器上對DLL進行註冊(如果用的是虛擬服務器空間這幾乎是辦不到的,換句話說必須是自己的服務器才行)等等。
js里怎樣調用c#寫的dll
js只支持Activex Dll(所謂的com組件).在C#里如下面的方法寫.
然後js里註冊該控件並調用.
裡面有兩個方法
Encrypt(string pToEncrypt,string sKey) //加密
Decrypt(string pToDecrypt,string sKey) //解密
然後你這樣寫代碼:
using System;
using System.Runtime.InteropServices;
namespace 名稱空間
{
// 首先建立接口,這個是Com必須使用的
[Guid(“61BB24CB-4C2C-40f8-9E13-1AC5E558D56A”)]
public interface IEncrypt
{
string Encrypt(string pToEncrypt,string sKey);
string Decrypt(string pToDecrypt,string sKey);
}
// 寫接口的實現
[Guid(“CB52E990-185E-4448-A7E8-C88ECAD563AB”)]
public class 類名稱 : IEncrypt
{
public string Encrypt(string pToEncrypt,string sKey)
{
// 複製FAQ加密代碼
}
public string Decrypt(string pToDecrypt,string sKey)
{
// 複製FAQ解密代碼
}
}
}
然後用vs.net打包成.dll類庫文件,假設名稱為MyEncrypt.dll
然後用如下工具
regasm MyEnCrypt.dll /tlb:MyEncrypt.tlb
這個.tlb文件就是類型庫,可以由vb6和vc++6引用。
注意上面的guid是使用vs.net工具菜單裡面的創建guid工具生成的。
還要注意,vs.net自動生成的assemblyinfo.cs文件中必須添加強名稱和版本號,因為Com組件需要版本號,不要改動版本號,也不要用vs.net自動的1.*這樣的版本號,最好使用
1.1.1.1這樣的固定版本,而且必須一次添加,不能多次添加。
regasm後怎樣在js里調用?
用你的例子是這樣?
var ss = new ActiveXObject(“MyEncrypt.類名稱”);
JS不可以調用普通的Dll動態鏈接庫,但你可以使用new ActiveXObject調用ActiveX DLL,如:
script
set z_shell= CreateObject( “WScript.Shell” )
z_shell.Run( “command.com /c mkdir ” + “c:\NewDir”)
/script
如何把.js文件編譯成dll供頁面調用
其實 js本來就是前台腳本,把js文件編譯成dll供頁面調用也可以實行
方法:
1.在解決方案中添加一個新項目(類庫:JSControl)
2.在新項目中添加要用的JS腳本(JScript1.js)
腳本的內容:
function testAlert() {
alert(“Hello!”);
}
3. 改變JScript1.js的屬性,Build Action為Embedded Resource(嵌入的資源)
4.在JSControl項目的AssemblyInfo.cs文件添加一行:(注意
JSControl.JScript1.js,JSControl是js所在項目的命名空間)
//定義組件內的內嵌資源的元數據屬性
[assembly: System.Web.UI.WebResource(“JSControl.JScript1.js”, “application/x-javascript”)]
注意:這邊要增加個引用:System.Web.dll
5. 項目中增加一個註冊客戶端腳本的類:
6.在網站項目中引用JSControl項目,編譯後生成
JSControl.dll
7.在要調用腳本的頁面註冊JSControl.dll
%@ Register Assembly=”JSControl” Namespace=”JSControl”
TagPrefix=”zhi” %
8.引用腳本
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/280911.html