トップ «前の日記(2009-04-03) 最新 次の日記(2009-04-05)» 編集

(゚Д゚)ウボァー日記


2009-04-04

_ [Mozilla]

updaterのエントリポイントの部分がうまくないので、パッチを書く。

gccでのエントリポイントはmain()であって、wmain()は使えない。-e wmainCRTStartupも通用しない。

XP_WINかつ__GNUC__のときはmain()を定義して、文字コードを変換した上でwmain()に渡すようにした。

具体的にはこうなる。

#if defined( XP_WIN ) && defined( WIN32 ) && defined(__GNUC__)
int main(int argc, char **argv){
wchar_t **argv_ = static_cast<wchar_t**>(malloc(argc * sizeof(wchar_t*)));
for(int i = 0; i < argc; i++){
int ws = MultiByteToWideChar(0, 0, argv[i], -1, NULL, 0);
argv_[i] = static_cast<wchar_t*>(malloc(ws * sizeof(wchar_t)));
MultiByteToWideChar(0, 0, argv[i], -1, argv_[i], ws);
}
return wmain(argc, argv_);
}
#endif