喂,
我有一个动态库加载器,它是用 C++ 编写的,但提供了与 C 兼容的 API。
该加载器可以加载用任何编程语言编写的模块。它们排列在一个命名列表中,可以请求其他模块的函数指针。现在,用 C 编写并使用 C 编译器编译的模块获取任何其他用 C++ 编写和编译的模块的函数指针。
所以我的问题是:函数指针交叉编译器有效吗?我想我很久以前就听说过类似 __cdecl
的东西。我使用 Linux 64 位。
T.I.A.
最佳答案
// my C++ code ...
extern "C" {
void thisFunctionWillBeCallableFromC();
}
void butThisOneMayNot();
struct S
{
void thisDefinitelyWontBeCallableFromC(std::map<int, S>);
};
C++ 代码应使用 extern "C"
链接声明接口(interface),以便从 C 调用。
或者您的意思是不同编译器生成的 C++ 代码?
关于c++ - 两个动态库,一个在 C 中,另一个在 C++ 中,彼此使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10228110/