[ 在线 ] C# 使用 DllImport 机制调用标准 Win32 DLL 出现问题,谢谢。

大熊猫侯佩
iOS开发领域优质创作者
博客专家认证
2008-03-08 05:28:14
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用户下出现
同样错误。
...全文
217 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
shrinerain 2008-03-11
  • 打赏
  • 举报
回复
用runas命令使用user调用你的exe, 异常信息是什么?
大熊猫侯佩 2008-03-11
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 leixueqiyi 的回复:]
调用dll时,要把dll,拷到\WINDOWS\system32下,如果你是user权限的话,在调用时会有问题,你可以试试直接用admin权限
[/Quote]

我已经说了admin可以。
leixueqiyi 2008-03-11
  • 打赏
  • 举报
回复
调用dll时,要把dll,拷到\WINDOWS\system32下,如果你是user权限的话,在调用时会有问题,你可以试试直接用admin权限
shuiyezi 2008-03-11
  • 打赏
  • 举报
回复
看看是不是DLL中的功能 对USER身份有特殊要求之类的。
wenbin 2008-03-10
  • 打赏
  • 举报
回复
VC6.0下?效果怎么样?
没用过,用的都C写的DLL,然后用C/C#调用
身份管理员,没出过问题
miting1314520 2008-03-10
  • 打赏
  • 举报
回复
虽然做不来,不过我还是给你顶上去。
hui717 2008-03-09
  • 打赏
  • 举报
回复
奇怪了哒,没遇到过这个问题。顶
gwhzh 2008-03-09
  • 打赏
  • 举报
回复
权限不够.
starlessnt 2008-03-09
  • 打赏
  • 举报
回复
将 user 加入 admin 试过吗?
  • 打赏
  • 举报
回复
是不是dll中的操作有需要权限的?
大熊猫侯佩 2008-03-08
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 shinaterry 的回复:]
ref: http://topic.csdn.net/u/20080222/13/c2e8fcce-52f4-4246-81e3-1c3e85224c75.html
[/Quote]

我已经说了,在admin用户下运行程序没有错误,也完成了功能。
湖中仙人 2008-03-08
  • 打赏
  • 举报
回复
up
大熊猫侯佩 2008-03-08
  • 打赏
  • 举报
回复
//使用C# 编写的 Call_v.exe 来调用。v.dll 和 Call_exe 放在同一目录下,

后面那个 Call_exe 更正为 :Call_v.exe

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧