调用外部函数,无法指定类型 C++/MVS

Calling external function, unable to specify types C++/MVS

本文关键字:类型 C++ MVS 外部 函数 调用      更新时间:2023-10-16

我正在按照本教程访问存储在第三方.dll中的函数。(为了充分披露,我不是想破解视频游戏,我只需要使用相同的工具(。

我正在使用Visual Studio 2017(v141(,我当前的代码如下所示:

if (HMODULE const hLib = LoadLibraryA(PATH_TO_LIB)) {
typedef IServer(__cdecl * _Create)(char* version);
_Create Create_addr = (_Create)GetProcAddress(hLib, "Create");
}

我正在尝试调用存储在.dll中的函数IServer Create(char* version)IServer类型也在.dll中定义。运行dumpbin后,我可以确认函数已正确导出。

我还导入了包含IServer定义的头文件。

问题是,根据Visual Studio的说法:

  • 代替__cdecl *它"expected a type specifier">
  • (char* GameServerInterfaceVersion),它声称"a function returning function is not allowed">
  • 在最后一行,_CreateGameServer显然是一个"unidentified identifier

我相信我已经按照教程做了,看不到我做错了什么。

如何让 VS 识别这些类型?

你必须先定义IServer,然后错误就会消失