dll中使用boost库,loadlibrary时返回127,查看dll依赖有错误的问题

小鸟向前飞 2016-08-02 09:55:11
在dll中使用了boost的log库,然后load这个dll时出错了,getlasterror返回127.
使用depends查看dll依赖,截图如下:

我的系统是win10,boost使用1.59
请问这是什么原因?如何解决?
...全文
284 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
小鸟向前飞 2016-08-07
  • 打赏
  • 举报
回复
多谢大家,找到原因了,是在dll导出类中使用了模板的原因,多谢大家提供思路
060 2016-08-02
  • 打赏
  • 举报
回复
首先是要 VC工具菜单总的“错误查看”,查询一下127代表什么意思? 与DLL依赖有关的两个错误代码为: 126:找不到指定的模块。 127:找不到指定的程序。 193:%1 不是有效的 Win32 应用程序。 “找不到指定的模块。”的意思就是找不到依赖的DLL,包括直接依赖的和间接依赖的。 “找不到指定的程序。 ”的意思就是,找到了依赖的DLL,但是在对应的DLL中找不到需要的函数。 “不是有效的 Win32 应用程序。 ”的意思是,指定的文件不是DLL或可执行文件;32位、64位程序、DLL互调用错误。 非常重要的一点:截图时,请截完整的图片。操作系统的DLL,不会出现127错误的。你截的图片,没有多少有用的信息。 操作系统的DLL,不会出现127错误的。所以系统DLL的那些显示的错误标记基本可以忽略。问题就出现在你编写、编译的DLL上。依次看看你所依赖的DLL,在depends右上方的那个窗格里,看看有哪个函数的标志为红色,就表示找不到这个函数。 出现127的错误,经常是因为开发DLL的版本混乱,有多个DLL版本,多次修改,导致DLL的导出函数不一致;一个DLL文件导出放,Load的时候,也搞不清楚到底时加载的哪一个;有Debug、Release的区别,并且名字相同,导致加载错误;
小鸟向前飞 2016-08-02
  • 打赏
  • 举报
回复
系统是win10 64位,编译64位程序
赵4老师 2016-08-02
  • 打赏
  • 举报
回复
在64位Windows下: 64位exe和dll在目录c:\windows\system32目录下; 32位exe和dll在目录c:\windows\syswow64目录下; 所以要注意: 在win64位系统下注册32位ocx或dll需要将32位ocx或dll拷贝到c:\windows\syswow64\目录下。 且注册要用c:\windows\syswow64\regsvr32 xxxxxxx.ocx或dll

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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