画像のファイル名の取得

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

画像のファイル名の取得

#1

投稿記事 by wolf » 12年前

exeファイルに画像をドロップして、画像のファイル名を渡したいのですがどのようにすればいいのでしょうか?

wolf

画像のファイル名の取得

#2

投稿記事 by wolf » 12年前

忘れていました。使用言語はC/C++です。

アバター
みけCAT
記事: 6734
登録日時: 15年前
住所: 千葉県
連絡を取る:

Re: 画像のファイル名の取得

#3

投稿記事 by みけCAT » 12年前

コード:

int main(int argc,char* argv[]) {
    処理
}
という形でmain関数を書いてエントリーポイントにすれば、argcに引数の数
(argvの最初に入る自分のプログラムファイルを含む)が、argvに引数が1個ずつ入ります。
詳しくは、このコードで実験してみてください。

コード:

#include <windows.h>

char buffer[10000000];

int main(int argc,char* argv[]) {
	int i;
	for(i=0;i<argc;i++) {
		char smallbuffer[1028];
		wsprintf(smallbuffer,"argv[%d]=",i);
		lstrcat(buffer,smallbuffer);
		lstrcat(buffer,argv[i]);
		lstrcat(buffer,"\n");
	}
	MessageBox(NULL,buffer,"CommandLine Test",MB_OK | MB_TOPMOST);
	return 0;
}
WinMain関数から入るプログラムの場合、main関数以外で参照したくてかつ引数で渡せない場合などは、
WindowsならGetCommandLine関数でコマンドライン全体を取得できますが、分割は自分でやらないといけません。
ただし、UNICODEを使う場合(GetCommandLineW関数で取得した場合)は、
CommandLineToArgvW関数でargc/argv形式に分解できるらしいです。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

アバター
みけCAT
記事: 6734
登録日時: 15年前
住所: 千葉県
連絡を取る:

Re: 画像のファイル名の取得

#4

投稿記事 by みけCAT » 12年前

すみません、画像のファイル名を受け取りたいのではなく渡したいのでしたね。
exeファイルということなので、
(Linuxの実行ファイルに.exeという拡張子をつけても実行できると思いますが)環境はWindowsと仮定します。

方法の一例です。
1.エクスプローラを起動し、目的のexeファイル(以下、対象exe)があるフォルダを表示します。
2.(必要があればエクスプローラをもう一枚起動し、)ドロップしてファイル名を渡したい画像(以下、対象画像)があるフォルダを表示します。
3.対象画像のファイル名の上にマウスカーソルを移動させます。
4.その状態でマウスの左ボタンを押しっぱなしにします。
5.マウスの左ボタンを押し続けたまま、マウスカーソルを対象exeのファイル名の上に移動させます。
6.その状態でマウスの左ボタンを放します。
wolf さんが書きました:忘れていました。使用言語はC/C++です。
対象exeと対象画像の位置を取得するのが難しそうですが、基本的にmouse_event関数を使えばできると思います。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

wolf

Re: 画像のファイル名の取得

#5

投稿記事 by wolf » 12年前

ありがとうございます。参考にさせていただきます。

閉鎖

“C言語何でも質問掲示板” へ戻る