system

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら

トピックに返信する


答えを正確にご入力ください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: system

Re: system

#6

by asd » 2年前

にこよん さんが書きました:
asd さんが書きました: せめて動くようになったという最終的なソースコードを貼っておくと後から見た人の参考になると思います。
上に貼ったのは仮のサンプルコードで直したのは別のコードになるので解決方法としてのコードを貼ることはできません。
そうですか。それであれば仕方ないですね。

Re: system

#5

by にこよん » 2年前

asd さんが書きました: せめて動くようになったという最終的なソースコードを貼っておくと後から見た人の参考になると思います。
上に貼ったのは仮のサンプルコードで直したのは別のコードになるので解決方法としてのコードを貼ることはできません。

Re: system

#4

by asd » 2年前

にこよん さんが書きました: 他にもいろいろ変えて起動したらやっと動きました。
主だった原因はわらなくなってしまいましたが、動く用にはなりました。
ありがとうございました。
せめて動くようになったという最終的なソースコードを貼っておくと後から見た人の参考になると思います。

Re: system

#3

by にこよん » 2年前

なくてもコンパイルできるのにincludeしないといけないファイルがあるのですか...


>3引数をとるはずなのに2引数しか渡していないのがパット見でやばそうですね。
これ3引数だったんですね...ありがとうございました。修正しました。

他にもいろいろ変えて起動したらやっと動きました。
主だった原因はわらなくなってしまいましたが、動く用にはなりました。
ありがとうございました。

Re: system

#2

by みけCAT » 2年前

昔system関数を使った時に引数が(ダブルクオーテーションで囲っても)上手く渡せなかったような気がしますが、
提示されたコードではそれ以前にstrcat_sを使っているのにstring.hがインクルードされていない上、
strcat_sは(Visual StudioのものN1570 K.3.7.1.3のものともに)3引数をとるはずなのに2引数しか渡していないのがパット見でやばそうですね。
system関数が使われているのにstdlib.hがインクルードされていないという問題もありますね。
さらに、入力された%が渡される可能性があるのにprintf(name);を呼び出しているのも危険ですね。

system

#1

by にこよん » 2年前

ファイルをドロップしたら起動するexeファイルをC言語で
ファイルがドロップされたかのようにパスを渡して起動する方法を教えてください。

↓のは作成したexeファイルにファイルをドロップするとそのままtest.exeにパスを渡して起動しようとしたのですが、
これでは動きません
デバッグするとtest.exeにブレークポイントが発生しましたと出ます

コード:


#include <windows.h>
#include <stdio.h>

char path[512];
char name[512];

int main(int argc, char* argv[]) {
	if (argc != 2) {
		printf("ファイルをドロップして開いてください\n");
		printf("\n\n終了するにはEnterキーを入力してください...\n");
		getchar();
//		return -1;
	}
	strcat_s(path, argv[1]);

	sprintf_s(name, 512, "test.exe %s", path);

	system(name);

	printf(name);
	getchar();

	return 0;
}

ページトップ