libファイルによるリンク

[戻る]
common 2009/05/08(金) 10:28:13
VC++ 2005で作成したMFC DLLプロジェクトの
libファイルについて質問があります。

ビルド後にlibファイルとDLLファイルが作成されますが、
DLLファイルを参照せず、
libファイルのみをリンクする場合はどうすればいいですか?

現状→
以下のコードを記述し、
DLLプロジェクトのメソッドを呼び出した場合

#pragma comment(lib, "Common.lib")
#include "Common.h"

「アプリケーション起動時に
Common.dllが見つからなかったため、
このアプリケーションを開始できませんでした。
アプリケーションをインストールし直すとこの問題は解決される場合があります。」

と表示されます。

この設定だとexeファイル直下のフォルダに
dllファイルをコピーすると動作可能かと思いますが、、、、

Blue 2009/05/08(金) 10:31:10
ダイナミックリンクライブラリとして作成しているのであれば、DLLは必要です。
(DLL = ダイナミック リンク ライブラリ)

スタティックリンクライブラリとして作成していれば、*.libが取り込まれますので、
*.exeのみで実行できます。
(同じ*.libでも違う)

επιστημη [E-Mail] [HomePage] 2009/05/08(金) 10:33:53
> libファイルのみをリンクする場合はどうすればいいですか?

リンク時にはDLLは必要ありません(リンクされません)よ。
libファイルのみがリンクされています。

common 2009/05/08(金) 11:02:04
[[解決]]
Blueさん、επιστημηさん

早速の書き込みありがとうございます。

スタティックリンクライブラリとして作成する事で解決出来ました。

また、MFCの使用に以下の項目がありますが、

・スタティックライブラリでMFCを使用する
・標準Windowsライブラリを使用する
・共通DLLでMFCを使う

これについては、統一させるべきなのでしょうか?

現状、統一しないとエラーが発生してしまうので。。。

PATIO 2009/05/08(金) 15:07:29
解決のチェックが入っているのに質問が続くとはこれ如何に。

あわせておかないと駄目だと思いますよ。
ライブラリを含めてプロジェクトの設定はきちんと合わせる様に
最初から決めておくべきだと思います。

まあ、エラーが出るでしょうから合わせざる得ないと思いますけれど。

common 2009/05/13(水) 16:57:21
どうもすみません。
本題は解決したのですが、すこし気になったもので。。。

PATIOさんのおっしゃるとおりでした。

一応、プロジェクト構成を増やし、
両者の指定が可能にする事で解決しました。

ありがとうございました。

古いスレッドには追加発言できません。