js裡怎樣呼叫c#寫的dll
阿新 • • 發佈:2019-01-09
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裡註冊該控制元件並呼叫.
裡面有兩個方法
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>