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

ファイルを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

A 回答 (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++;
    • good
    • 0
この回答へのお礼

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

お礼日時:2002/02/06 22:12

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