GetProcessAddress返回NULL的问题

MMSC 2010-04-19 11:27:01
我在一台WindowsXP的系统用VS2005下开发一个Win32的DLL, 在本机用测试程序LoadLibrary后,用GetProcessAddress可以正确返回函数地址并正常调用。后将此DLL部署到一台Win2003 server的机器上,在该机器上LoadLibrary成功,但是用GetProcessAddress获取的函数地址始终为NULL。在该机器上用DUMPBIN -EXPORT看到输出的函数符号确实和GetProcessAddress调用时的字符串相同。请问这会是什么问题?
...全文
526 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
petera 2010-04-20
  • 打赏
  • 举报
回复
错误号127,我以前也有这情况,你虽然用DUMPBIN -EXPORT看导出函数没有@@这些特殊符号

在你DLL内的导出函数前加上
#ifdef __cplusplus
extern "C"
MMSC 2010-04-20
  • 打赏
  • 举报
回复
问题找到,原来在服务器上LoadLibrary返回的HInstance为空…… 因为测试程序和DLL路径始终在一起所以没注意,返回错误是This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem.

可能是缺少了DLL所需的别的DLL引起的,谢谢大家回帖
wltg2001 2010-04-20
  • 打赏
  • 举报
回复
ERROR_PROC_NOT_FOUND
=========
这个很怪的,等大牛来吧
MMSC 2010-04-20
  • 打赏
  • 举报
回复
GetLastError 返回127,也就是ERROR_PROC_NOT_FOUND

至于权限,我就是用Administrator登录的

同一个测试程序和DLL,拷贝到我的机器上就正常,在服务器或别人的机器上运行就获取不到函数地址
尹成 2010-04-20
  • 打赏
  • 举报
回复
肯定是权限问题,建议以管理员身份运行一下试试
wltg2001 2010-04-19
  • 打赏
  • 举报
回复
调用一下GetLastError看看失败原因
Eleven 2010-04-19
  • 打赏
  • 举报
回复
权限问题???
wltg2001 2010-04-19
  • 打赏
  • 举报
回复
没见过这种问题

15,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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