タイトル通り、Cを使用してDLLを構築し、C++プロジェクトからリンクしようとしています。私はインターネットでさまざまなチュートリアルを読んでそれに従いましたが、何かが足りないときはいつでも、何がわからないのです。
これが私がしたことです、ステップバイステップ:
名前の付いた新しいWin32プロジェクトを作成testlib
し、ウィザードから「DLL」と「空のプロジェクト」を選択しました。
ヘッダーを追加しました:
//testlib.h
#include <stdio.h>
__declspec(dllexport) void hello();
ソースを追加しました。私が読んだCソースにしたいので、.cの.cppファイルの名前を簡単に変更する必要があります。
//testlib.c
#include "testlib.h"
void hello() {
printf("DLL hello() called\n");
}
ビルドは成功しました。
次に、別のプロジェクトで便利なdllを使用したいと思います。
次に:新しいプロジェクト(testlibUse
)。今回は「空のプロジェクト」を選びました。
ヘッダーを追加する必要はありません。cppソースを作成するだけです。
//main.cpp
#include <testlib.h>
int main() {
hello();
}
それで:
testlib.dll
[プロパティ]->[VC++ディレクトリ]->[実行可能ディレクトリ]にあるフォルダへのパスを追加しましたtestlib.h
[プロパティ]->[VC++ディレクトリ]->[ディレクトリを含める]にあるフォルダへのパスを追加しましたtestlib.lib
[プロパティ]->[リンカー]->[入力]->[追加の依存関係]に(拡張機能を含む)へのパスを追加しました
ビルドしようとしましたが、リンカーエラーが発生しました:
リンク:C:\ path \ testlibUse \ Debug \ testlibUse.exeが見つからないか、最後の増分リンクによってビルドされていません。フルリンクの実行
main.obj:エラーLNK2019:関数_mainで参照される未解決の外部シンボル "void __cdecl hello(void)"(?hello @@ YAXXZ)
C:\ path \ testlibUse \ Debug \ testlibUse.exe:致命的なエラーLNK1120:1未解決の外観
に戻ってtestlib
名前を変更testlib.c
しtestlib.cpp
、dllを再構築すると、ビルドはできtestlibUse
ますが、実行時に「dllが見つかりません」というエラーが発生します。
「リリース」で両方のプロジェクトの構成を変更(必要に応じてパスを変更)しようとしましたが、何も変更されませんでした。
長い投稿で申し訳ありませんが、私がしたことを正確に書き留める必要があったと思います。
助言がありますか?
さらに、Qtプロジェクトでdllを使用する場合に変更する必要のある構成パラメーターはありますか?