【发布时间】:2014-08-15 19:26:05
【问题描述】:
我正在开发一个项目来生成一个用于离线测试的虚拟 DLL。我们有真正的 DLL 及其头文件,尽管它们看起来不兼容。 DLL 中的名称未被破坏,但函数前向声明声明被调用为__stdcall:
example.h
DWORD __stdcall DoSomething(byte aByte);
Dependency Walker 中的example.dll:
2 (0x0002) 2 (0x0002) DoSomething 0x000831C0
据我所知,如果可以在__stdcall 约定中导出一个函数,那么它的名称应该在dependency walker 中读取为:
2 (0x0002) 2 (0x0002) _DoSomething@1 0x000831C0
这是否意味着我们的头文件与编译后的 DLL 不对应,还是我遗漏了什么?
最终,我如何形成虚拟函数的导出,使其行为方式与我正在模拟的真实 DLL 相同?
【问题讨论】:
标签: c++ dll dllexport stdcall cdecl