アプリ版:「スタンプのみでお礼する」機能のリリースについて

すみません、
VC++6.0で作成したDLLについて教えていただきたいのですが。

TEST_A.DLLというDLLと、TEST_B.DLLというDLLファイルを作成したとして
これをC:\TEST\DLL\に格納してるとします。
このとき、TEST_B.DLLからはTEST_A.DLLの関数を呼び出しています。

次に、TEST_B.DLLの関数を使用しているTEST.EXEという実行ファイルを
VB6.0で作成します。
このファイルをC:\TEST\EXE\に格納します。

そして、TEST.EXEを実行すると、
「TEST_B.EDLLが見付かりません」と言って怒られてしまいます。
VBでは、TEST_B.DLLをフルパスで指定しております。
しかし、TEST_A.DLLをEXEと同じ場所に置いてあげると
正常に動きます。
これは、TEST_B.DLLからTEST_A.DLLが見えていないということなのでしょうか?
TEST_B.DLLの設定がおかしいのでしょうか?
それとも、TEST.EXEでもTEST_A.DLLをフルパス指定してあげないといけないのでしょうか?

ちなみに今回、プロジェクトマネージャーから「環境変数(PATH)の設定はしたくない」と言われていますので、PATHの指定はしてません。

すみませんが、どなたか教えていただけますでしょうか?

A 回答 (2件)

DLLも実行ファイルの一つですから、環境変数'PATH'で指定されているディレクトリにコピーされていることが前提です。



環境変数を設定したくないということであれば、実行環境ではEXEとDLLを同じフォルダに格納するしかありません。
カレントフォルダにEXE、DLLが同居していればPATHの通っていないフォルダでも問題ありません。

私なら、C:\TEST\BIN にEXE、DLL及びBATを格納します。
    • good
    • 0
この回答へのお礼

やはりEXE,DLLの同居するしかないですね。
ありがとうございます!!

お礼日時:2006/06/20 09:18

> これは、TEST_B.DLLからTEST_A.DLLが見えていないということなのでしょうか?



その通りです。
参照先のルールは、MSDNでLoadLibraryを探して参考にしてください。

基本的には、PATHが通っていないと、探せません。

あらかじめ、明示的にLoadLibraryを行っておくことで
回避できませんか。(管理は面倒になるかもしれませんが…
    • good
    • 0
この回答へのお礼

なるほどですね。
どうもありがとうございます!

お礼日時:2006/06/20 09:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!