C++ 在visualstudio中使用Linux/MinGW编译的libs/dll

C++ 在visualstudio中使用Linux/MinGW编译的libs/dll,c++,visual-c++,gcc,mingw,cross-compiling,C++,Visual C++,Gcc,Mingw,Cross Compiling,更新:我在编译时收到此警告:找到具有不同属性的多个“.text”节 嗨 我已经使用MinGW交叉编译器在Linux中编译了一些库(.a和.dll)。我可以在VisualStudio2008中成功链接它们(.a)。但是,当它运行时(使用.dll),它会以指向空内存地址的地址指针终止 有没有一种方法/一份清单可以让我在VC08中成功地使用这些库 交叉编译器生成 *.dll.a *.dll 谢谢在我看来,双方似乎没有使用相同的调用约定,这意味着导出的dll函数的定义方式存在问题 到目前为止,最简单的方

更新:我在编译时收到此警告:找到具有不同属性的多个“.text”节

我已经使用MinGW交叉编译器在Linux中编译了一些库(.a和.dll)。我可以在VisualStudio2008中成功链接它们(.a)。但是,当它运行时(使用.dll),它会以指向空内存地址的地址指针终止

有没有一种方法/一份清单可以让我在VC08中成功地使用这些库

交叉编译器生成

  • *.dll.a
  • *.dll

  • 谢谢

    在我看来,双方似乎没有使用相同的调用约定,这意味着导出的dll函数的定义方式存在问题

    到目前为止,最简单的方法是通过如下定义导出函数,将函数定义为extern“C”:

    extern "C"
    {
      int  MyExportedFunction(char *buffer, int length);
      void MyOtherFunction();
    };
    
    找到了


    您必须有一个def文件,并使用VC的lib工具生成导入库。

    我在头导入中使用了外部“C”。我刚刚注意到。我在编译时发现多个具有不同属性的“.text”节。