PathQuoteSpaces() の戻り値の型がモノによって異なっていて死亡
// VC6 LWSTDAPI_(void) PathQuoteSpacesA(LPSTR lpsz); LWSTDAPI_(void) PathQuoteSpacesW(LPWSTR lpsz);
// VC2003 LWSTDAPI_(void) PathQuoteSpacesA(LPSTR lpsz); LWSTDAPI_(void) PathQuoteSpacesW(LPWSTR lpsz);
// VC2005 LWSTDAPI_(void) PathQuoteSpacesA(LPSTR lpsz); LWSTDAPI_(void) PathQuoteSpacesW(LPWSTR lpsz);
// VC2010 // "BOOL" …だと…?
LWSTDAPI_(BOOL) PathQuoteSpacesA(__inout_ecount(MAX_PATH) LPSTR lpsz);
LWSTDAPI_(BOOL) PathQuoteSpacesW(__inout_ecount(MAX_PATH) LPWSTR lpsz);
えぇ…? ('A`)
(順に VC6/2003/2005/2010)
ちなみに、Web上のMSDN では 戻り値が BOOL だったりしますが、VC6/2003/2005 の ヘルプでは void となってたりします (↓順に VC6/2003/2005 の MSDN ヘルプ)
で、戻り値の型を環境によって変えちゃって良いんですかね…? 特に void → BOOL で戻り値が「無し」から「なんか4byteある」の状態になるので、スタックぶっ壊れないの? と思ってみたりはしますが、__stdcall → 呼び出し先の関数がスタックの調整を行うので、変わっても問題無い感じなんですかね…? 個人レベルではめっちゃおっかない感いっぱいなんですけど(ぉ
とりあえず何が言いたいかというと、おのれ Micros●ft!!!!