0

VC++ で *.dll を生成しました。使用したい場合は、*.lib が必要です。しかし、私はそれを見つけることができません。*.lib を取得するには? ありがとう。

4

3 に答える 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 に答える