VC++ で *.dll を生成しました。使用したい場合は、*.lib が必要です。しかし、私はそれを見つけることができません。*.lib を取得するには? ありがとう。
質問する
261 次
3 に答える
2
これはプロジェクトの設定に大きく依存します。
*.vcprojx を見てください
同様のパターンを検索します。
<link>
<ImportLibrary>.\Release/yourlibrary.lib</ImportLibrary>
</link>
于 2013-04-12T15:25:51.900 に答える
1
通常、Visual Studio は .lib を .dll ファイルのすぐ隣に配置します。あなたのケースでは、.lib がまったく生成されないように思えます。ライブラリを dll としてビルドする場合、(dllopen などを使用するのではなく) 別のプロジェクトでそのライブラリにリンクする場合は、どの関数を lib にエクスポートするかを指定する必要があります。このためには、エクスポートするすべてのクラスまたは関数の前に、ライブラリをビルドするときに __declspec(dllexport) を追加し、リンクするときに __declspec(dllimport) を追加する必要があります。
よくあるのは、次のようなマクロです。
#ifdef WIN32
#ifdef MYLIB_EXPORTS
#define MYLIBAPI __declspec(dllexport)
#else
#define MYLIBAPI __declspec(dllimport)
#endif
#else
#define MYLIBAPI
#endif
次に、lib をビルドするときに、MYLIB_EXPORTS プリプロセッサを定義して、エクスポートし、リンクするとインポートするようにします。独自のコードは次のようになります
class MYLIBAPI MyClass
{
public:
void SomeFunction()
}
MYLIBAPI void SomeGlobalFunction();
現在、MyClass と SomeGLobalFunction はビルド時にエクスポートされ、lib ファイルに含まれています。
于 2013-04-12T15:27:37.123 に答える