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

シェルコマンドの実行は

system("***.exe");

で行えますけど、system関数は実行したexeファイルが閉じられるまで処理がとまってしまいますよね?

system関数を呼んだ後すぐに処理を返したい時はどうしたらいいのでしょうか。

また、2つ連続で実行ファイルを実行したいときにはどうしたらいいでしょうか。

system("1.exe");
system("2.exe");

これでは1.exeが終了しないと2.exeが起動しません。
バッチファイルでも同じ事になりますよね。

同時に起動したいのです。どうしたらいいのでしょうか、systemで躓いたので、
spawnで試してみました。

#include <process.h>
#include <stdio.h>

int main(){

spawn(P_NOWAIT,"notepad");
printf("notepadが起動しました。");
return 0;

}

こうすればnotepadを閉じなくてもprintf文が実行されると思ったのですが、コンパイルすると

未解決の_spawnが_main内で参照されました。
外部参照1が未解決です。

とでます・・。
どなたか解決策を教えてください><

OS:XPです。

A 回答 (3件)

方法にはこだわらないようなので


別アプローチ。

windows.h をインクルードして
shellapi.h もインクルードして
shell32.lib をリンク。

ShellExecute(NULL, "open", "notepad.exe", NULL, NULL, SW_SHOWNORMAL);

参考URL:http://msdn.microsoft.com/library/ja/default.asp …
    • good
    • 0

_spawn関数はそのままでは使えません。


使い方に応じて必要なサフィックスを付加する必要があります。

参考URL:http://www.microsoft.com/japan/developer/library …
    • good
    • 0

未解決の~


というのは、外部宣言だけされていて実体が見つからない場合です。
多くの場合は必要なDLLとリンクしていないのが原因です。
必要なものを調べてリンクしてください。
    • good
    • 0

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