- 294 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 09:21:55 ]
- 1.sizeof(fullpath) → sizeof fullpath / sizeof *fullpath
2._tcsrchr(fullpath, '\\')→ _T('\\') 3._tcsrchr(fullpath, '\\') _UNICDEかMBCSが定義されてないとShift-JISは問題起こす(たぶん) 4.dest[0] = '\0'→_T('\0') 5.return -1→return static_cast<size_t>(-1)とか ↓ これで我慢しろ。(UNCパスだと問題あるかも) std::basic_string<TCHAR> getExePath() { TCHAR exe_path[MAX_PATH]; DWORD r = ::GetModuleFileName(NULL, exe_path, sizeof exe_path / sizeof *exe_path); if( r == 0 || r == sizeof exe_path / sizeof *exe_path ) throw std::runtime_error("うぎゃあ"); TCHAR drive[_MAX_DRIVE], path[_MAX_PATH]; _tsplitpath(exe_path, drive, path, NULL, NULL); return std::basic_string<TCHAR>(drive) + path; }
|

|