我正在尝试导出dll并在运行时动态加载它。类的构造函数的dumpbin导出输出给出了以下输出。
1 0 000111B8 ?? 4myclass @nmspace @@ QAEAAV01 @ ABV01 @@ Z = @ ILT + 435(?? 4myclass @nmspace @@ QAEAAV01 @ ABV01 @@ Z)
typedef void(WINAPI * PCTOR)();
我试图使用以下两行来获取虚拟地址。
PCTOR pCtor =(PCTOR)GetProcAddress(hinstLib,(LPCSTR)DWORD(1));
PCTOR pCtor =(PCTOR)GetProcAddress(hinstLib," ?? 4myclass @ nmspace @@ QAEAAV01 @ ABV01 @@ Z");
然后我用下面的行调用构造函数 pCtor();
当我使用DWORD(1)时
pCtor值 - nmspace :: myclass :: operator =(类nmspace :: myclass const&)
pCtor()工作正常。
但对于第二行使用导出函数的实际值 pCtor值 - nmspace :: myclass :: myclass(void)
pCtor()给了我 ESP没有正确保存...... 错误。
在这种情况下,我可以获得一些问题的帮助。