2016-07-10 16 views
-3

私はdllソースファイルを持っていますが、exeファイルを呼び出す関数を作成したいと思います。C++ Start Process/Application

exeはData/Common/PPI.exeにあります。これをC++コードからどのように起動できますか? 私はCreateProcessとShellExecを試してみましたが、誰でもこのパスとこのexe名で、どのように作成するかを知るためのサンプルを作成できます。

私はその変更または何かexeを再構築する必要があるので、完全なディレクトリパスを追加したくない... dllはルートフォルダにあり、dllはこの関数を呼び出し、関数はデータ/ common/PPI.exe、thatsすべてそれ。

+1

あり、ウェブ上でのCreateProcessを使用しての簡単な例のトンがあり、どちらかあなたが検索されませんでしたそれらがあなたのために働かなかった理由を説明する必要があります。 – kfsone

答えて

-1

この

system(".\\Data\\Common\\PPI.exe") 

のようなシステムコマンドを試してみて、あなたはこれを含める必要があります。

#include <windows.h> 
+1

'.'は現在の作業ディレクトリ(https://en.wikipedia.org/wiki/Working_directory#In_operating_systems)であり、' .dll'自体が存在するディレクトリと同じであることは保証されていません。 – dxiv

+0

それはdllがexeパスを取る正しいです、私はdllのパス –

+1

'dllがexeパスを取るレジストリまたはiniからパスを取得する唯一の方法だと思います。例を挙げると、 'C:\ dll \ op.exe'はOPが' system( "。\\ Data \\ Common \\ PPI .exe ");'。さらに、 'op.exe'が別のディレクトリから起動されたとします。コマンドプロンプト 'C:\ temp> C:\ dll \ op.exe'から実行します。次に、 'C:\ temp \ data \ common'に' ppi.exe'を置くために 'system'呼び出しが試みます(そして失敗する)。OPは' C:\ dll \ data \ common'を使用します。 – dxiv