質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

DLL

DLL(Dynamic Link Library)とは、他のモジュールからも使用する事が出来る、関数とデータが格納されているモジュールのことです。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Q&A

2回答

3527閲覧

参照モジュールのパスを明示的に指定する方法

KTMEI

総合スコア44

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

DLL

DLL(Dynamic Link Library)とは、他のモジュールからも使用する事が出来る、関数とデータが格納されているモジュールのことです。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

0グッド

0クリップ

投稿2017/03/23 03:06

参照するモジュールのパスを明示的に指定するにはどのように
すればいいのでしょうか?

以下に詳細を記載いたします。


■C:\AAA\配下
・ツール.exe(C#)
・log4net.dll
・log4net.config
・logフォルダ

■D:\BBB\配下
・IF.dll(C++)
・meth.dll(C#)
・log4net.dll
・log4net.config
・logフォルダ


上記構成でツール.exeを実行しIF.dllを代えして、
meth.dllの処理を実行するという構成です。

この時、ツール.exeのログはC:\AAA\logフォルダ配下に、
meth.dllのログはD:\BBB\logフォルダ配下に出力をしたいと
考えています。

しかし、ツール.exeのログもmeth.dllのログもC:\AAA\log
フォルダ配下に出力されてしいます。

切り分けに、D:\BBB\配下のlog4net.dllとlog4net.configを
削除してみましたが、動作は変わらずmeth.dllのログは
C:\AAA\logフォルダ配下に出力されています。

このため、実行ファイル(ツール.exe)配下のlog4net.dllおよび
log4net.configを参照してログ出力が行われていると考え
られるのですが、ツール.exeではC:\AAA\配下のlog4netを使用し
meth.dllではD:\BBB\配下のlog4net.dllを使用するように
明示するにはどのようにすれば良いのでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

DLL は動的に実行ファイルとリンクして動作します。つまり実行環境は DLL ではなく実行ファイルに依存します。
従って、C:\AAA\log4net.dll を ツール.exe が読んでいる以上、D:\BBB\log4net.config に何が書かれていようとも、その情報を使いません。(使われるのは C:\AAA\log4net.config です)

meth.dll にログレベルを一つ占有で割り当てない限り、無理かと思います。

投稿2017/03/23 15:29

tacsheaven

総合スコア13703

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

切り分け作業が1つ足りないため前提が誤っている可能性があります。

このため、実行ファイル(ツール.exe)配下のlog4net.dllおよび

log4net.configを参照してログ出力が行われていると考え

「D:\AAA\配下のlog4net.dllとlog4net.configを削除」して実行して初めてそう言えるのではないでしょうか。

おそらく、そうしてもログは同じ場所に出力されそうですが。

投稿2017/03/23 04:11

workaholist

総合スコア559

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KTMEI

2017/03/23 04:14

コメントありがとうございます。 記載が漏れておりましたが、「D:\AAA\配下のlog4net.dllとlog4net.configを削除」した場合、 実行ファイル(ツール.exe)がlog4net.dllを読み込めず、起動出来ない作りになっています。
workaholist

2017/03/23 04:52

申し訳ありません、完全に読み違えておりました。 meth.dll ではなく meth.exe と勘違いしておりました。 今回の書き込みは無視していただけますでしょうか。
KTMEI

2017/03/23 08:29

記載内容の見直しや切り分けも出来ましたので良かったです。 何か方法がありましたらお待ちしております。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問