OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
締切り
済み

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

  • 暇なときにでも
  • 質問No.212417
  • 閲覧数44
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 59% (194/328)

ファイルを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
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全1件)

  • 回答No.1
レベル9

ベストアンサー率 75% (28/37)

  int i;   for(i = 1; p[i] == '"'; i++);{ このループは   iをカウントアップしながらp[i]=='"'となるまで となっています。即ち1回目のp[i]=='"'を見つけたらそこで ループが終わるようになっています。  次のようにしたらいかがでしょうか。 ...続きを読む
  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__

お礼率 59% (194/328)

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


このQ&Aで解決しましたか?
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ