shell32.dll は、ANSI と UNICODE の 2 種類の関数をエクスポートすることを知っています。(わかりやすくするために、CHAR*/WCHAR* 引数を取る関数についてのみ説明します。)
たとえば、ShellMessageBoxAは ANSI バージョンで、ShellMessageBoxWは Unicode バージョンです。ShellMessageBoxヘッダー ファイルで定義されているマクロです。
#ifdef UNICODE
#define ShellMessageBox ShellMessageBoxW
#else
#define ShellMessageBox ShellMessageBoxA
#endif // !UNICODE
したがってShellMessageBox、Shell32.dll からエクスポートされる関数としては存在しません。
しかし今、私はそれSHGetPathFromIDListが3回エクスポートされていることを発見しました:
- オーディナル 312 -
SHGetPathFromIDList - オーディナル 313 -
SHGetPathFromIDListA - オーディナル 314 -
SHGetPathFromIDListW
これの目的は何ですか?