web-dev-qa-db-ja.com

.dllファイルとヘッダーファイルがある場合に.libファイルを作成する方法

Visual Studioで、既存の.dllファイルにアクセスできるアプリケーションを作成しようとしています。ルーチンを呼び出すアプリケーションが必要です。また、既に存在するヘッダーファイルもあります。

私はインターネットで調査してきましたが、.libファイルを作成する必要があることがわかりました。ここで同様の質問を見て、リンクを見つけました: http://support.Microsoft.com/kb/13131 しかし、指示に従うことはできません。

リンク内の情報は、DEFファイルを作成するように言っています(これは、同じ名前でDLLとしてコンパイルする必要があることを別の場所で読んでいますが、 .dllファイル?)。しかし、「Use DUMPBIN/EXPORTS」という最初の方向がわからないので、「スタブアウト」機能を実行する必要があります。ファイルは)です。

上記のリンクのように、簡単に理解できるステップごとの指示はありますか?

40
hde

Microsoft Visual C++ 2010 Express (または他のMSVCコマンドラインツールのソース)、およびDLLが必要になります。

手順:

  1. dumpbin /EXPORTS yourfile.dll > yourfile.exports
  2. 必要な関数の名前をyourfile.exportsから新しいyourfile.defファイルに貼り付けます。このファイルの先頭にWord EXPORTSを含む行を追加します。
  3. VC\binディレクトリ(lib.exeおよびその他のコンパイルツールが存在するディレクトリ)から次のコマンドを実行します。

 vcvars32.bat

 lib /def:yourfile.def /out:yourfile.lib

またはx64ビルドの場合

 lib /def:yourfile.def /machine:x64 /out:yourfile64.lib

yourfile.libyourfile.expの2つのファイルが生成されるはずです。

56
Sany Liew

Digital Marsの [〜#〜] implib [〜#〜] ツールを使用できます。 .defファイルを必要とせずに、dllのみを使用してlibファイルを作成できます。

ダウンロードリンクは http://ftp.digitalmars.com/bup.Zip です。

コマンドラインは次のとおりです。

implib.exe /s mydll.lib mydll.dll
16
Desu_Never_Lies