一个小问题,关于DLL的编译警告

HJHJ001 2003-08-20 04:24:05
LINK : warning LNK4089: all references to "SHELL32.dll" discarded by /OPT:REF


不知道它的这句警告是什么意思。链接库工作倒是正常,只是有这个警告看着闹心。

还有一个没搞明白的问题,这个链接库在我的机子上工作正常,在另外一台98的机子上也正常,但是在其他的2000机子上链接库无法加载(我是用的动态加载(loadlibrary),返回值为NULL)。

希望各位大侠能给小弟解释一下,不胜感激。

...全文
51 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
HJHJ001 2003-08-20
  • 打赏
  • 举报
回复
哦,这样我就放心了。

那么,第二个问题是怎么回事?我用getlasterror输出了错误信息,说是“找不到指定的模块”。
我的语句是这样的,在.EXE文件中
m_hHinstance = LoadLibrary("JY1710.dll");
把.DLL跟.EXE文件放到了一个目录下。

记得记得加载链接库的搜索顺序首先就是这个目录的,不知道到底是什么原因。


DDHuang 2003-08-20
  • 打赏
  • 举报
回复
那么怎样避免引入无用的dll呢
bluestar 2003-08-20
  • 打赏
  • 举报
回复
这个警告只是简单的意味你错误的连接一个库(library),编译器查到你并没有使用其中的函数.这个
警告在你做发布版(release builds)的时候是很平常的,因为/OPT:REF的连接器选项在发布版本
(release builds)被设置成为命令连接器修正你的最终代码尽可能的避免连接无用的dlls.(这使得可执行代码的import地址表尽量的小).
如果你不担心这个警告,你可以通过在Project->Settings对话框中加上/IGNORE:4089选项来消除它.


DDHuang 2003-08-20
  • 打赏
  • 举报
回复
(意思我明白,但不知道为什么回出来这个警告)强烈要求知道答案,,,,,我也遇到了,,啊,顶
duqiang2050 2003-08-20
  • 打赏
  • 举报
回复
SHELL32.dll引用了但并没被使用

15,471

社区成员

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

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