• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:MessageBoxが表示されないのは何で)

MessageBoxが表示されないのは何で

このQ&Aのポイント
  • ファイル名から特定の文字列を除外する際に、MessageBoxが表示されない原因を知りたいです。
  • 以下のコーディングでは、メッセージボックスが表示されず、原因を特定できません。
  • ご教授いただければと思います。

質問者が選んだベストアンサー

  • ベストアンサー
  • akimikayu
  • ベストアンサー率25% (14/55)
回答No.3

> if (w32fd.cFileName == a1 || w32fd.cFileName == a2){ 処理系が分かりませんが、文字列の比較ってこれで出来ましたか。 一般的に文字列の比較はstrcmpなどを使用しませんか。

dido123
質問者

お礼

ありがとうございます。 下記のコードを試しました。期待通りの動作を致しました。 大変ありがとうございます。 #include <stdio.h> #include <string.h> void main () { char a1[] = "aaa"; char a2[] = "aaa"; if ( a1 == a2){ printf ( "TRUE\n"); } else { printf ( "FALSE\n"); } if ( strcmp ( a1,a2 ) == 0 ){ printf ( "TRUE\n"); } else { printf ( "FALSE\n"); } } 結果 FALSE TRUE おおお、できました。

その他の回答 (2)

  • edomin7777
  • ベストアンサー率40% (711/1750)
回答No.2

#1です。 もしかして私が勘違いしてた…。w 比較するものの型が違うよね?

dido123
質問者

補足

WIN32_FIND_DATA w32fd ; HANDLE hfind ; char buf[MAX_PATH] = "C:\\Data\\*"; でFindFirstFileを使用すると必ずファイルが無くても "."と".."がでてきます。 型はWIN32_FIND_DATA typedef struct _WIN32_FIND_DATAA { DWORD dwFileAttributes; FILETIME ftCreationTime; FILETIME ftLastAccessTime; FILETIME ftLastWriteTime; DWORD nFileSizeHigh; DWORD nFileSizeLow; DWORD dwReserved0; DWORD dwReserved1; CHAR cFileName[ MAX_PATH ]; CHAR cAlternateFileName[ 14 ]; #ifdef _MAC DWORD dwFileType; DWORD dwCreatorType; WORD wFinderFlags; #endif } WIN32_FIND_DATAA; なので問題ないと思っているのですが・・・。

  • edomin7777
  • ベストアンサー率40% (711/1750)
回答No.1

「以下の様なコーディングではメッセージボックスが表示されません。」 そりゃ、そうだ…。 「w32fd.cFileName == a1 || w32fd.cFileName == a2」 ファイル名が「.」や「..」だけなら、動くんだろうけど。 find()とか使えば、文字列の中も検索できそうです。 組み直しましょう。 そのときは、「\0」は要らないような気がする…。

関連するQ&A

専門家に質問してみよう