16

更新: コンパイル時にこの警告が表示されます: 複数の '.text' セクションが異なる属性で見つかりました

やあ、

MinGW Cross Compiler を使用して、Linux でいくつかのライブラリ (.a および .dll) をコンパイルしました。Visual Studio 2008 でそれら (.a) に対して正常にリンクできます。ただし、(.dll を使用して) 実行すると、空のメモリ アドレスを指すアドレス ポインターで終了します。

これらのライブラリを VC08 で正常に使用できるようにする方法/リストはありますか?

クロスコンパイラが生成する

  1. *.dll.a
  2. *.dll

ありがとう

4

2 に答える 2

7

それを見つけた。

http://www.mingw.org/wiki/MSVC_and_MinGW_DLLs

def ファイルを用意し、VC の lib ツールを使用してインポート ライブラリを生成する必要があります。

于 2009-08-18T18:59:20.747 に答える
3

2 つの当事者が同じ呼び出し規則を使用していないように思えます。つまり、エクスポートされた dll 関数が定義されている方法に問題があるということです。

最も簡単な方法は、エクスポートされた関数を次のように定義して、関数をextern "C"として定義することです。

extern "C"
{
  int  MyExportedFunction(char *buffer, int length);
  void MyOtherFunction();
};
于 2009-08-18T03:24:55.757 に答える