我正在尝试使用此处推荐的“wrappit”工具制作代理 dll 。工具“wrappit”正确创建为 .cpp:
// ??0CFileFormat@@QAE@XZ
extern "C" __declspec(naked) void __stdcall __E__0__()
{
__asm
{
jmp p[0*4];
}
}
// ?GetSkipListingForSPlanner@EnvironVar@@SAKXZ
extern "C" __declspec(naked) void __stdcall __E__262__()
{
__asm
{
jmp p[262*4];
}
}
作为随附的 .def 文件:
EXPORTS
??0CFileFormat@@QAE@XZ=__E__0__ @1
?GetSkipListingForSPlanner@EnvironVar@@SAKXZ=__E__262__ @263
但是在我构建了生成的库之后,构建的 dll 中所有导出函数的名称似乎都在参数描述开始时被截断了。所以??0CFileFormat@@QAE@XZ
转入??0CFileFormat
,?GetSkipListingForSPlanner@EnvironVar@@SAKXZ
转入?GetSkipListingForSPlanner@EnvironVar
等等。结果,由于缺少必要的导出,我的代理 dll 无法加载。为什么会发生这种情况,我应该怎么做才能解决它?