我正在开发一个项目来生成一个用于离线测试的虚拟 DLL。我们有真正的 DLL 及其头文件,尽管它们看起来不兼容。DLL 中的名称未被破坏,但函数前向声明声明被调用为__stdcall
:
例子.h
DWORD __stdcall DoSomething(byte aByte);
Dependency Walker 中的 example.dll:
2 (0x0002) 2 (0x0002) DoSomething 0x000831C0
据我所知,如果可以在__stdcall
约定中导出一个函数,它的名称应该在依赖 walker 中读取为:
2 (0x0002) 2 (0x0002) _DoSomething@1 0x000831C0
这是否意味着我们的头文件与编译的 DLL 不对应,还是我遗漏了什么?
最终,我如何形成虚拟函数的导出,使其行为方式与我正在模拟的真实 DLL 相同?