Bootstrap

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>
;