我在ASP.NET中  需要使用一种加密方式    加密方式是由其它公司用C++编写的一个DLL文件给我使用 请问我该怎么使用?引出函数
   int CodePasswd(char *pInputBuffer, int iInputLen, char *pOutputBuffer, int *iOutputLen)
    
调用例子
char szPass[100];
int len = 100;
CodePasswd("babyface", 8, szPass, &len);
返回0表示成功
szPass是加密后的字符串
len是长度。DLL名称:encry.dll100分 在线等~~~~~~~~~~~~~~~~~

解决方案 »

  1.   

    我调用过VB写的DLL。不知道是否跟C++写的DLL一样调用方式,不过给你个参考吧。是这样选择VS。NET里面的“添加引用”,然后点“浏览”找到你的那个DLL文件,加进去后,按“确定”然后在要调用的类上引入命名空间,然后是
    dim xxx as xxx = new xxx
    一般是这样。恩
      

  2.   

    这样添加不行   会提示你:  未能添加对”XXXXXXX/encry.dll“的引用,这不是有效的程序集或COM组件。只有具有
      

  3.   

    我刚说的可能有点疏漏选择VS。NET里面的“添加引用”,然后选择“COM组件”这个选项卡,然后点“浏览”找到你的那个DLL文件,加进去后,按“确定”这样呢,看看
      

  4.   

    用C++写的DLL应该这样引用
    首先将"encry.dll" Copy 到你应该程序的Bin目录下声名:
    [DllImport("encry.dll")]private static extern int CodePasswd(char pInputBuffer, int iInputLen, char pOutputBuffer, int iOutputLen);
      

  5.   

    还是不行   请问能给个实例吗?     找不到命名空间DllImport      而且偶不知道该怎么接受返回的字符串
      

  6.   

    只要看你的dll是什么类型的,如果dll是一个com组件则需要在引用里面添加之,在程序里面可以向使用标准的托管代码一样使用。如果dll是一个标准的dll则需要使用DllImport来导出一个static的函数。想要使用这个Attribute需要引用System.Runtime.InteropServices命名空间。在页面中是使用类似下面的语句:
    using System.Runtime.InteropServices;有关DllImport的详细信息请参考MSDN。
      

  7.   

    [ DllImport ( "kernel32" ) ]
    private static extern int GetPrivateProfileString ( string section ,
    string key , string def , StringBuilder retVal ,
    int size , string filePath ) ;public void test()
    {
    // 像普通函数一样直接调用
    GetPrivateProfileString(...);
    }
      

  8.   

    这种技术叫做ISAPI是asp之前微软出的产品.主要用vc++编.你的速度极快.和asp.net组合,可以解决.net的加密问题
    也是asp.net 的扩展.
    可是编起麻烦.对程序员的功底要求很高.网上有一个论坛是用isapi编的.
    网上很少有这方面的资料
    主要是动态生成网页.
      

  9.   

    这其实是在.net中用托管代码调用非托管代码[ DllImport ( "encry.dll" ) ]
    private static extern int CodePasswd(string pInputBuffer, int iInputLen, string pOutputBuffer, int *iOutputLen);这个要用指针,把编译选项设为不安全代码。