更新:我在编译时收到此警告:找到具有不同属性的多个'.text'部分
您好,
我使用MinGW交叉编译器在Linux中编译了一些库(.a和.dll)。我可以在Visual Studio 2008中成功链接它们(.a)。但是,当它运行时(使用.dll),它会终止,地址指针指向空的内存地址。
是否有办法/列表可以让我在VC08中成功使用这些库?
交叉编译器生成
由于
答案 0 :(得分:7)
答案 1 :(得分:3)
听起来我和双方没有使用相同的调用约定,这意味着导出的dll函数的定义方式存在问题。
到目前为止,最简单的方法是通过定义导出的函数将函数定义为 extern“C”,如下所示:
extern "C"
{
int MyExportedFunction(char *buffer, int length);
void MyOtherFunction();
};