「覚え間違い」を教えてください!


SHBrowseForFolder
は同じように動作しますが何が違うのでしょうか?
一般に~Aなる関数が~と同じ動作しますがなぜAを付けるのでしょうか?

A 回答 (2件)

質問が途中というか最初が抜けますが、Windows用のAPIには、ANSI版とUnicode版があります。


ANSI版とUnicode版の違いは文字列の方だけの違いですが。
ANSI版はAPI名の最後にAが付き、Unicode版はWが付きます。
コンパイル時のコンパイルオプションにより、どれが呼び出されるか決定されます。
つまり、質問のAPIには、SHBrowseForFolderAとSHBrowseForFolderWがあり、コンパイルオプションによりどれが、SHBrowseForFolderとして呼び出されるかが決まります。(#ifdef、#defineマクロにより)

という訳で、ANSI版としてコンパイルしている分には、SHBrowseForFolderとSHBrowseForFolderAは同じ動作になります。
    • good
    • 0
この回答へのお礼

ありがとうございました。
どちらでもよいということですね。

お礼日時:2003/08/11 02:49

ヘッダファイルの中には



#ifdef UNICODE
#define SHBrowseForFolder SHBrowseForFolderW
#else
#define SHBrowseForFolder SHBrowseForFolderA
#endif

のような記述があります。UNICODEが定義されていればunicode版が、そうでなければANSI版が呼び出されます。UNICODEの定義に関わらすANSI版を呼び出す場合には
SHBrowseForFolderAを使います。
    • good
    • 0
この回答へのお礼

ありがとうございます。
よくわかりました。

お礼日時:2003/08/11 02:48

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


おすすめ情報