1

この質問は当たり前のように思えるかもしれませんが、私はこれに多くの問題を抱えており、多くの検索の後にここに投稿する必要がありました.

現在、Visual Studio のウィンドウを 2 つ開いています。1 つは、クラスをエクスポートする Win32 Console->DLL プロジェクトで、出力ディレクトリには次のものがあります。

  • .dll ファイル
  • .exp ファイル
  • .pdb ファイル
  • .lib ファイル

すべての DLL と同様に、DLL ファイルを他のプロジェクトの出力ディレクトリにドロップしましたが、通常は正常に動作します。次に、ディレクトリをリンカーのライブラリ ディレクトリに追加しました。

しかし、私が使用するほとんどのライブラリとは異なり、何か間違ったことをしたか、これがどのように機能するかを誤解していると思います.h [pp]ファイルがないため、関数をコードに含める方法がわかりません. Windows 専用のハックはしたくありません (簡単に移植できるように、それを DLL プロジェクトだけに制限したいのです)。

私が間違っていることについて誰かが私を啓発できますか?

4

3 に答える 3

1

他のプロジェクトで .h ファイルを使用できるようにすることについて、「ハッキー」または「Windows」固有のものは何もありません。.lib ファイルは、ビルドを完了するために必要な情報を提供します。参照: Visual Studio C++ でサード パーティの dll を使用するにはどうすればよいですか?

于 2012-12-13T19:42:05.950 に答える
0

.dllに対応する.libファイルを他のプロジェクトのディレクトリに追加しましたか?

DLLではなくリンカによって消費されるのは.libファイルです(実行時にローダーによって消費されます)。

于 2012-12-13T19:40:03.827 に答える
0

.dll は共有ライブラリであり、スタティック ライブラリ (Windows では .lib) とは対照的です。

プロジェクトをコンパイルするときは、静的ライブラリを常にリンクする必要があり、ヘッダー (.h/.hpp) ファイルを使用してそれらの関数を簡単に呼び出すことができますが、共有ライブラリには 2 つのオプションがあります。

  • 静的リンク (コンパイル時ですが、その方法は静的ライブラリの場合とは異なります)
  • 動的リンク (実行時)

この詳細な記事を読むことをお勧めします: http://www.codeproject.com/Articles/85391/Microsoft-Visual-C-Static-and-Dynamic-Libraries

ウィキペディアの記事も参照してください: https://en.wikipedia.org/wiki/Dynamic-link_library

于 2012-12-13T19:47:47.403 に答える