win32 汇编写的一个标准 win32 DLL : v.dll使用C# 编写的 Call_v.exe 来调用。v.dll 和 Call_exe 放在同一目录下,它们和父目录的windows访问权限为: admin用户和user用户 完全访问。v.dll 中有一个导出 api : _ShowMsg在 C# 中有:private const string szDllPath = @"v.dll";
[DllImport(szDllPath, EntryPoint = "_ShowMsg")]
        static extern void ShowMsg(StringBuilder szMsg);问题:
在 admin用户下运行 Call_v.exe 正常,在user用户下运行 Call_v.exe 出错:
dll加载失败 - "v.dll"如果将 v.dll 名称改为全路径 : @"c:\test_Call_v\v.dll" 在user用户下出现
同样错误。

解决方案 »

  1.   

    //使用C# 编写的 Call_v.exe 来调用。v.dll 和 Call_exe 放在同一目录下,后面那个 Call_exe 更正为 :Call_v.exe
      

  2.   

    ref: http://topic.csdn.net/u/20080222/13/c2e8fcce-52f4-4246-81e3-1c3e85224c75.html
      

  3.   


    我已经说了,在admin用户下运行程序没有错误,也完成了功能。
      

  4.   

    是不是dll中的操作有需要权限的?
      

  5.   

    将 user 加入 admin 试过吗?
      

  6.   

    VC6.0下?效果怎么样?
    没用过,用的都C写的DLL,然后用C/C#调用
    身份管理员,没出过问题
      

  7.   

    看看是不是DLL中的功能 对USER身份有特殊要求之类的。
      

  8.   

    调用dll时,要把dll,拷到\WINDOWS\system32下,如果你是user权限的话,在调用时会有问题,你可以试试直接用admin权限
      

  9.   

    用runas命令使用user调用你的exe, 异常信息是什么?