コンソールアプリケーションのデバッグ環境について

[戻る]
よしもり [E-Mail] 2005/01/15(土) 18:25:13
はじめまして。
初歩的なことだと思いますが、コンソールアプリケーションのデバッグ環境に関して、
教えていただけないでしょうか。

現在、VCを使い、自分で使用するためにCAD用のコンソールアプリケーションを作っ
ております。
CAD用のアプリケーションを起動する時に、CAD用のDLLのロードとCAD本体の
APIにアクセスするため、バッチファイルで環境変数を幾つか設定してやらなければい
けないのです。(プログラムの内容は非常に単純です)

そこで質問ですが、VSのデバッガでデバッグする時に、バッチファイルで設定すると同
様の環境変数をデバッガ上で一時的に設定し、アプリケーションのデバッグを行うという
ことは可能でしょうか。

ちなみに、今はバッチファイルで設定する環境変数をPCに設定し、デバッグを行ってお
ります。

そのほかには、まだ試しておりませんが、_putenv関数で環境変数を設定し、_execl系の
関数でデバッグ対象を起動すると良いのかと思いますが、いかがなものでしょうか。

よろしくお願いいたします。

わたしの環境です。
WindowsXP SP2
Microsoft Visual Studio .NET 2003

RAPT 2005/01/17(月) 12:15:09
デバッグ時のみ、関数の先頭に、system()関数を使用して、環境変数を
設定する処理を埋め込むと言うのはいかがでしょうか。

int main()
{
#ifdef _DEBUG
  system("set hoge=HOGE");
#endif
  //以下普通の処理
}

よしもり [E-Mail] 2005/01/17(月) 20:41:18
RAPTさん回答ありがとうございました。

提示していただいた方法を試してみましたが、うまくいきませんでした。

system()関数にたどり着く以前に、といいますか、デバッグターゲットのアプリケーショ
ンをロードする時点で、動作に必要なDLLファイルのあるフォルダーにPATHが通っ
ていないとだめなようです。
実行時のエラーメッセージは「***.dll見つからなかったため、このアプリケーションを
開始できませんでした・・・・・」と出てきます。これはOSからのメッセージのようで
す。

OSに環境変数を設定しておいてから、モジュールウインドウを開いておいてデバッグを
行うと、必要はDLLファイルをロードしてから、main()関数に入っていくようです。
(プログラミングが本職ではないもので詳しいことはわかりませんが)

設定しなければいけない環境変数は、他のアプリケーションとバッティングしないと思わ
れますので、OSに設定しておくことにします。
もしバッティングするようであれば、デバッグ用のユーザーを作ってやることにします。

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

よしもり [E-Mail] 2005/01/17(月) 20:45:50
[[解決]]
解決ではありませんが、回避策がありますので、[解決]にチェックを入れさせていただき
ました。
もし他にも方法があるという方がおられましたら、お聞かせ願えればありがたいです。

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