WindowsXPにて
visualC++9.0のWin32APIアプリケーションでDLLプロジェクトを選択し、シンボルをエクスポートを選択してプログラムを作成しました。
プロジェクトはMyDLLです。
すると自動的にいくつかファイルが出来ます。
その中のMyDll.cppへ適当に関数を追加し、リリースビルドでMyDLL.dllとMyDLL.libを作成しました。
そのdllを呼び出すプログラムをUseDLL.cpp(コンソールアプリケーション)として作成し、こちらもリリースビルドを行いUseDLL.exeを作成しました。
exeとMyDLL.dllを同一フォルダに入れ、実行したところ開発PCでは、OKでした。
しかし、他PCで実行したところ、アプリケーションの初期化に失敗しましたとエラーが出ました。
ふと思いつき、.NetFramwork3.5を他PCへインストールしたところ、実行できました。
質問ですが、DLLを利用するプログラムを、VisualC++で作成した場合、何か.NetFramworkのライブラリを利用しているのでしょうか?
長くてすみませんが、よろしくお願いします。
追加発言
ちなみに、MyDLLプロジェクトのほうは、プロパティ→C/C++→コード生成→ランタイムライブラリが、マルチスレッド DLL (/MD)になっていました。
これの影響はありますでしょうか?
VC++ 2008 のランタイムが入ってないのではないでしょうか。
.NET Framework も開発環境もインストールしていないクリーンなマシンが用意できるなら、それにこれ
http://www.microsoft.com/downloads/details.aspx?familyid=9B2DA534-3E03-4391-8A4D-074B9F2BC1BF&displaylang=ja
を入れて動くかどうか試してみてください。
ツイート | ![]() |