这样可以吗??[DllImport("CheckUser.DLL")]
public static  extern int  ValidateUser(string UserName, string Domain, string Password, ref string  ErrInfo, ref bool  retval) ;

解决方案 »

  1.   

    我试了,用你的方法报错,说无法将bool隐式转换为int
    我的试验声明如下
    public static  extern bool  ValidateUser(string UserName, string Domain, string Password, ref string  ErrInfo, ref bool  retval) ;
    但调用时捕获异常信息:
    {"无法在 DLL CheckUser.dll 中找到名为 ValidateUser 的入口点。" }
      

  2.   

    另外我在delphi中调用是这样的,可行,只是C#中不知如何声明
    function ValidateUser(UserName,Domain,Password : PChar ; var ErrInfo:PChar ; var retval: Boolean) ;stdcall,external 'DomainUser.dll;
      

  3.   

    sorry ! 因为你没有给出函数的返回值类型,我根据我的理解加了个int ,因为这种情况一般是返回用户类型。
    ——————
    关于 "无法在 DLL CheckUser.dll 中找到名为 ValidateUser 的入口点。" :你要确认DLL的路径是否正确 , 另外一个是 函数名没有错,要大小写完全匹配!
      

  4.   

    [DllImport("CheckUser.DLL", EntryPoint="ValidateUser ")]
    另外查一下数据类型(C#&VC)的对应关系!
      

  5.   

    如果声明的函数名称跟DLL EXPORT的函数名称一样时,可以省略 EntryPoint 的
      

  6.   

    无法将bool隐式转换为int的提示是我的错,经过试验,int 和bool是同样的信息
    dll是放在bin目录下的,函数名是拷贝过来的,大小写检查过,没有问题。我查了一下
    ‘不同语言的数据类型比较’,没有找到BSTR,而且在C#中指针也不太会用。
    [DllImport("CheckUser.DLL", EntryPoint="ValidateUser ")]
    我按照这个方法做了,还是同样的错误提示
      

  7.   

    使用create函数不可以吗,难道非要用Import这样在Java中用到的方法吗!
    应该可以吧!没有试,对不起。