• 締切済み

ドロップで起動するけどパスは?

ファイルをEXEにドロップして起動させます。 ドロップしたファイルのパスを GetCommandLine( ) から 取り出すために、" の位置を調べます。 "EXEのパス" ドロップファイルのパス となっているから、2番目の " の位置を調べました。 でも、for でのループが1回で終わってしまいます。 おかしいところを教えてください。 LRESULT CALLBACK WndProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam) {  char *p = GetCommandLine();  char str[200];  switch(msg){  case WM_CREATE:   int i;   for(i = 1; p[i] == '"'; i++);{    wsprintf(str, "%d", p[i]);    MessageBox(hWnd, chStr, "", MB_OK);   }   wsprintf(chStr, "%d", i);   MessageBox(hWnd, str, "", MB_OK); //結果は1   wsprintf(chStr, "%#x", p[0]);   MessageBox(hWnd, str, "1文字目", MB_OK); //結果は34   wsprintf(chStr, "%#x", p[1]);   MessageBox(hWnd, str, "2文字目", MB_OK); //結果は67   wsprintf(chStr, "%#x", p[2]);   MessageBox(hWnd, str, "3文字目", MB_OK); //結果は58

みんなの回答

  • tgb
  • ベストアンサー率78% (32/41)
回答No.1

  int i;   for(i = 1; p[i] == '"'; i++);{ このループは   iをカウントアップしながらp[i]=='"'となるまで となっています。即ち1回目のp[i]=='"'を見つけたらそこで ループが終わるようになっています。  次のようにしたらいかがでしょうか。   int i,j;   j=0;   for(i = 1;j<2 ; i++);{    if(p[i] == '"')j++;

A__
質問者

お礼

i = 1 からカウントアップしているから 1回目の p[i]=='"' を見つけたら、そこでループが 終わっていいんだけど、素の他の部分で間違いに気づきました。 ありがとうございました。

関連するQ&A