画像のファイル名の取得
Re: 画像のファイル名の取得
という形でmain関数を書いてエントリーポイントにすれば、argcに引数の数
(argvの最初に入る自分のプログラムファイルを含む)が、argvに引数が1個ずつ入ります。
詳しくは、このコードで実験してみてください。
WinMain関数から入るプログラムの場合、main関数以外で参照したくてかつ引数で渡せない場合などは、
WindowsならGetCommandLine関数でコマンドライン全体を取得できますが、分割は自分でやらないといけません。
ただし、UNICODEを使う場合(GetCommandLineW関数で取得した場合)は、
CommandLineToArgvW関数でargc/argv形式に分解できるらしいです。
(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;
}
WindowsならGetCommandLine関数でコマンドライン全体を取得できますが、分割は自分でやらないといけません。
ただし、UNICODEを使う場合(GetCommandLineW関数で取得した場合)は、
CommandLineToArgvW関数でargc/argv形式に分解できるらしいです。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: 画像のファイル名の取得
すみません、画像のファイル名を受け取りたいのではなく渡したいのでしたね。
exeファイルということなので、
(Linuxの実行ファイルに.exeという拡張子をつけても実行できると思いますが)環境はWindowsと仮定します。
方法の一例です。
1.エクスプローラを起動し、目的のexeファイル(以下、対象exe)があるフォルダを表示します。
2.(必要があればエクスプローラをもう一枚起動し、)ドロップしてファイル名を渡したい画像(以下、対象画像)があるフォルダを表示します。
3.対象画像のファイル名の上にマウスカーソルを移動させます。
4.その状態でマウスの左ボタンを押しっぱなしにします。
5.マウスの左ボタンを押し続けたまま、マウスカーソルを対象exeのファイル名の上に移動させます。
6.その状態でマウスの左ボタンを放します。
exeファイルということなので、
(Linuxの実行ファイルに.exeという拡張子をつけても実行できると思いますが)環境はWindowsと仮定します。
方法の一例です。
1.エクスプローラを起動し、目的のexeファイル(以下、対象exe)があるフォルダを表示します。
2.(必要があればエクスプローラをもう一枚起動し、)ドロップしてファイル名を渡したい画像(以下、対象画像)があるフォルダを表示します。
3.対象画像のファイル名の上にマウスカーソルを移動させます。
4.その状態でマウスの左ボタンを押しっぱなしにします。
5.マウスの左ボタンを押し続けたまま、マウスカーソルを対象exeのファイル名の上に移動させます。
6.その状態でマウスの左ボタンを放します。
対象exeと対象画像の位置を取得するのが難しそうですが、基本的にmouse_event関数を使えばできると思います。wolf さんが書きました:忘れていました。使用言語はC/C++です。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)