1

.dll を使用するようにアプリケーションを変換していますが、次のようなリンカー エラーが表示されます。

未解決の外部シンボル "__declspec(dllimport) public: void __thiscall Rail::SetNextrail(class Rail *)"

このエラー メッセージの最後には、さらに意味不明な内容があります。なぜこれが発生する必要があり、どのように修正しますか? __declspec(dllimport) は、次のように定義されたマクロで配置されています。

#ifdef LUDOAI_EXPORT
#define DECLSPECAI __declspec(dllexport)
#else
#define DECLSPECAI __declspec(dllimport)
#endif
4

2 に答える 2

2

Railsの「インポートライブラリ」をリンカーに指定する必要があると思います。GUI を使用すると、これはプロジェクト設定の [リンカー] タブの [追加ライブラリ] の下にあります。

「インポート ライブラリ」は、対応するライブラリのインポートに解決されるシンボルを含む .LIB ファイルです。.LIB ファイルのシンボルには、インポートに対応するインポート テーブルのアドレスへの無条件ジャンプがあります。コードがインポートを呼び出すと、実際にはインポート ライブラリ内のこのスタブが呼び出され、インポートにジャンプします。

于 2009-10-14T19:04:14.477 に答える
0

Qt Creatorを使用している場合、このエラーはプロジェクト (.pro) ファイルに適切なインポート ライブラリを追加する必要があることを意味します。

例:
LIBS += $$quote(C:/Qt/4.7.3/lib/QtXml4.lib)デバッグ バージョンとリリース バージョンの場合。

于 2011-09-21T16:34:11.717 に答える