相关疑难解决方法(0)

使用extern c和dllexport vs模块定义的stdcall名称修改(msvc ++)

我试图导出一个简单的测试函数,用于处理一个应用程序(fyi:mIRC),它将调用约定指定为:

int __stdcall test_func(HWND mWnd, HWND aWnd, char *data, char *parms, BOOL show, BOOL nopause)
Run Code Online (Sandbox Code Playgroud)

现在,要从应用程序中调用它,我将使用test_func,但我注意到由于名称错误,它并不像我想象的那么简单.

通过类似的主题,我已经了解到将extern"C"__declspec(dllexport)结合使用是一种等效的(某种程度上)方法,可以将重整数据删除到模块定义(.def).但是,当使用extern/dllexport方法时,我的函数(作为示例)始终是_test_func @ numbers,而.def删除了所有需要导出到的应用程序所需的修改.

有人可以解释一下这是为什么吗?我只是对这两种方法感到好奇.谢谢!

c++ name-mangling stdcall dllexport visual-c++

15
推荐指数
2
解决办法
1万
查看次数

标签 统计

c++ ×1

dllexport ×1

name-mangling ×1

stdcall ×1

visual-c++ ×1