2017-01-20 7 views
-1

私はcreateprocessの魔女を持っていますlpCurrentDirectoryNULLに設定されています。私は自分の作業ディレクトリをプロパティウィンドウの..\Debugに変更しました。 enter image description here作業ディレクトリwin32ビジュアルスタジオ

プロセスを作成すると、.exeファイルが見つかり、問題なくプログラムが動作します。それから私はgitでサーバーにプログラムをプッシュします。その後、私はそのプログラムをサーバーからフォルダとクローンを作成します。問題は、私または他の人のクローンが作業ディレクトリーをデフォルトに変更するプログラムである場合です。 enter image description here

次に、createprocessが.exeファイルを見つけることができません。ここで最も重要なことは、プログラムを変更せずに他のコンピュータで実行する必要があることです。したがって、私の質問は次のようになります:

  • 私の作業ディレクトリを永久にするにはどうすればいいですか?
  • もし私が持っているこの問題の他のどのようなオプションを行うことができないのですか?そしてそれらを実装する方法は?それは小さな変更を加えることなく、他のディレクトリまたは他のコンピュータからは動作しませんので、 :

最も重要なことは、パスは、このL「\ CppProjects ConsoleApplication1 \ G」のように書くことができないということです。どんなアイデアもうまいです。

+0

実行可能ファイルの完全パスをCreateProcessに渡します。 –

+0

しかし、それを渡す方法は?他の人がそのファイルをどこにクローンするかによって変わります。ソリューションには2つのプログラムが存在するためです。 1つは、.exe otherがその.exeにコントローラであることを作成します。あるコンピュータから別のパスには異なるものがあります。 – andrius

+0

実行ファイルが存在するディレクトリを探し、それを使って完全なパスを作成します。 –

答えて

2

Visual Studioプロジェクトのデバッグ設定は、プロジェクト固有ではなく、ユーザー固有のものとみなされます。これは、これらの設定にはワークステーションに存在することが保証されているパスしか含まれていないことが多いためです。設計上および既定では、これらの設定はソース管理にコミットされていません。

whatever.vcxproj.userファイル(whatever.vcxprojと同じディレクトリ)をソース管理に入れることで、これらのことを共有できます。ただし、このファイルにはデバッグ設定だけでなく、共有するのに問題がある可能性のある他のワークステーション/ユーザー固有の設定が含まれているため、これを行うことはお勧めしません。

+0

*デバッグ*の設定は実際にユーザーごとの構成と見なされます。しかし、あなたのチームのすべてのユーザーにこれを設定するクリーンな方法があります:事前に設定されたVisual Studioマクロ(例えば '$(SolutionDir)')に対する相対パスを指定します。これは、ソリューションがどこにあるかにかかわらず、すべての開発者にとって有効です。私は彼らがプロパティシートを使って展開できると信じています。これがどのように機能するかは、[プロジェクトプロパティの操作](https://msdn.microsoft.com/en-us/library/669zx6zc.aspx)を参照してください。これらのプロパティシートは、* Property Manager *を使用して.vcxproj設定にマージすることができます。 – IInspectable

関連する問題