C++ C++;基于dumpbin的动态链接库重建

C++ C++;基于dumpbin的动态链接库重建,c++,dll,dumpbin,C++,Dll,Dumpbin,我正在尝试根据现有dll的结果重新创建dll的导出函数。原因是这个DLL被读入了一个非常旧的软件,并且缺少关于如何创建DLL的文档 这是DUMPBIN/exports的结果 文档中规定,函数标题应为: DLLEXPORT long WINAPI User_Write(char *Command, char *Parameter) 但我找不到任何方法来使用该行并复制输出,因此我创建了一个具有以下函数头的DLL: extern "C" __declspec(dllexport

我正在尝试根据现有dll的结果重新创建dll的导出函数。原因是这个DLL被读入了一个非常旧的软件,并且缺少关于如何创建DLL的文档

这是DUMPBIN/exports的结果

文档中规定,函数标题应为:

DLLEXPORT long WINAPI User_Write(char *Command, char *Parameter)
但我找不到任何方法来使用该行并复制输出,因此我创建了一个具有以下函数头的DLL:

extern "C" __declspec(dllexport) long __cdecl User_Write(char *Command, char *Parameter)
当我使用DUMPBIN/exports导出此DLL时,会得到以下结果:


类似但不相同,软件不接受DLL。我真的需要一些帮助

尝试更改呼叫约定
外部“C”\u declspec(dllexport)long\u stdcall用户写入(char*命令,char*参数)

感谢您的回复!这给了我以下结果,而不是真正的目标:
10000001063\u用户_GetErrorMsg@82 1 0000104F_用户_Read@83 2 0000103B_用户_Write@8
“不接受DLL”不是正确的问题描述。最明显的错误是调用约定之间的不匹配(您编写了cdecl,但声明需要stdcall)。而且根本不需要对导出的函数进行修饰。您从未提到使用DEF文件(删除装饰所需),因此您可能构建了一个x64 DLL,而该程序需要一个x86 DLL。该软件实现了加载用户构建的DLL的功能,它应该导出上述3个简单函数。原始DLL不与任何DEF文件配对,它只是一个单独的DLL文件,因此是我构建的DLL。我已经建立的DLL是用微软Visual C++ +6.0制作的,因为我已经得到了它可能是用来创建原始DLL的输入。