小编sam*_*sam的帖子

重新编译MFC扩展DLL会更改导出函数的入口点

我有一个导出C++类的MFC扩展DLL,我需要修改类方法的行为.这些更改不会影响类的方法签名.

我不想重新编译使用此库的先前发布版本的"lib"文件的模块.

如果更改修改了函数的入口点地址会发生什么?

例如,构造函数的地址已更改:

Export   Ordinal      Function    Hint                      Entry Point
[+  ]    3 (0x0003)   2 (0x0002)  ??0CLangManager@@QAE@XZ   0x00009CB0    (OLD DLL)
[+  ]    3 (0x0003)   2 (0x0002)  ??0CLangManager@@QAE@XZ   0x00009760    (NEW DLL)
Run Code Online (Sandbox Code Playgroud)

我应该重新编译使用该库的模块吗?

我测试了重新编译的库 - 使用新的入口点 - 使用已发布的可执行文件,一切正常.我不确定这种情况是否隐藏了一些副作用.

什么时候需要重新编译链接到DLL的可执行文件?

什么时候二进制兼容性被破坏了?

c++ dll mfc

5
推荐指数
1
解决办法
270
查看次数

标签 统计

c++ ×1

dll ×1

mfc ×1