BOOL GetModulePathA(char* szFileName, UINT nLen); //ANSI 版本 BOOL GetModulePathW(wchar_t* szFileName, UINT nLen); //UNICODE 版本 BOOL GetModulePathA(char* szFileName, UINT nLen){ long lRet = GetModuleFileNameA(NULL, szFileName, nLen); if(lRet > nLen) return FALSE; std::string strFileName; strFileName.assign(szFileName); std::string::size_type pos=0; std::string::size_type len=strFileName.size(); if( (pos = strFileName.rfind("\\")) != std::string::npos) strFileName.erase(pos, len); // Remove file name strcpy(szFileName, &(*strFileName.begin())); return TRUE; } BOOL GetModulePathW(wchar_t* szFileName, UINT nLen){ long lRet = GetModuleFileNameW(NULL, szFileName, nLen); if(lRet > nLen) return FALSE; std::wstring strFileName; strFileName.assign(szFileName); std::wstring::size_type pos=0; std::wstring::size_type len=strFileName.size(); if( (pos = strFileName.rfind(L"\\")) != std::wstring::npos) strFileName.erase(pos, len); // Remove file name wcscpy(szFileName, &(*strFileName.begin())); return TRUE; }

评论