C#添加引用不成功,提示: 
未能添加对HD.dll的引用。请确保此文件可访问并且是一个有效的程序集或COM组件我需要用到这个Dll文件中的接口函数 

解决方案 »

  1.   

    估计这个Dll和Net不能直接兼容吧、、、
      

  2.   

    C#添加引用需要这个dll本身是.net的程序集,或者是一个COM组件。如果是一个标准的C导出Dll,那么需要用DllImport导入函数,参考互操作内容实际调用类似于这样的代码 public class MPwdMngAPI
        {
            [DllImport("PwdMng.dll", CharSet = CharSet.Ansi, EntryPoint = "SetUserFirstLogin")]
            public extern static bool ResetUserToFirstUse(String username);        [DllImport("PwdMng.dll", CharSet = CharSet.Ansi, EntryPoint = "ChangePassword")]
            public extern static int ChangePassword(String userName, String oldPwd, String newPwd);
      

  3.   

    这个恐怕要用DllImport导出了。
      

  4.   

    补充一点:SetUserFirstLogin和ChangePassword是C++ dll的导出API#ifdef PWDMNG_EXPORTS
    #define PWDMNG_API __declspec(dllexport)
    #else
    #define PWDMNG_API __declspec(dllimport)
    #endif#ifdef __cplusplus
    extern "C" {
    #endifPWDMNG_API BOOL SetUserFirstLogin(const char* username, BOOL isFirstLogin);
    PWDMNG_API int ChangePassword(const char* username, const char* oldPwd, const char* newPwd);#ifdef __cplusplus
    }
    #endif
      

  5.   

    楼主检查一下HD.dll这个文件的位置,可以放在与主程序同一文件夹中,或者system32中
    调试的时候可以放在debug文件中
      

  6.   

    看看这个http://www.byywee.com/page/M0/S450/450154.html
      

  7.   

    怎么知道.dll里面的API函数呢、??
      

  8.   

    在命令窗口下执行 regsvr32 HD.dll,注册下试试