VS2008做的DLL重新编译后,如何使调用它的EXE不需要重新编译?

mmm1024 2010-12-05 12:37:25
我用#define DllExport _declspec(dllexport) extern "C" DllExport int Check(char * p1, char * p2, char * p3)做了个DLL,别人做的EXE可以成功调用。但我在修改函数体内部(接口和入口参数未变)并重新编译后,覆盖原来的DLL,却不能成功调用新的DLL。

哪位能提示下从哪些方面入手?最好具有实际操作性。
...全文
186 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
还没想好 2010-12-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 nodiebirdcomeback 的回复:]

动态加载不要静态加载
[/Quote]

++
xuting0 2010-12-09
  • 打赏
  • 举报
回复
静态加载一般都要重新编译。因为链接的lib改变了。
如果想不编译的话,用动态加载的方式。不过这样相关的接口不要修改,接口修改的话一样要重新编译
Allen_zhang 2010-12-09
  • 打赏
  • 举报
回复
静态加载一般都要重新编译。因为链接的lib改变了。

如果想不编译的话,用动态加载的方式。不过这样相关的接口不要修改,接口修改的话一样要重新编译
xhzxlqt 2010-12-07
  • 打赏
  • 举报
回复
可能是GUID问题
yeah2000 2010-12-05
  • 打赏
  • 举报
回复
如果只是对函数体修改,则不需要重新编译exe
haogeai123 2010-12-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 cranium 的回复:]

接口没改变就不会引起其他EXE的重新编译 。

如果更改函数实现后有错误发生,可能是你的实现出了问题。
[/Quote]++
wltg2001 2010-12-05
  • 打赏
  • 举报
回复
但我在修改函数体内部(接口和入口参数未变)并重新编译后,覆盖原来的DLL,却不能成功调用新的DLL。
=====================
如果没有改变接口,只改变内部实现,EXE是不用重新编译的。
nodiebirdcomeback 2010-12-05
  • 打赏
  • 举报
回复
动态加载不要静态加载
cranium 2010-12-05
  • 打赏
  • 举报
回复
接口没改变就不会引起其他EXE的重新编译 。

如果更改函数实现后有错误发生,可能是你的实现出了问题。

15,471

社区成员

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

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