是否可以从C代码中调用C++ DLL中的函数?该函数未声明extern "C"
.一个丑陋的平台依赖黑客,只适用于Visual Studio是好的.
调用约定不应该是一个主要问题,但我如何处理名称修改.例如,对于Visual Studio,带签名的C++函数具有void f()
错位名称?f@@YAXXZ
,并且不是合法的C标识符.
(你不需要告诉我,我应该将C++函数声明为extern "C"
.我已经知道了.但是我遇到了无法更改C++代码的情况.)
将冒犯函数包装在另一个C++函数中,并用它声明它extern "C"
.无需为它创建特殊的DLL,只需在项目中包含一个C++文件即可.