使用AnsiString,当程序退出的时候出现访问内存错误,各位高手帮我看看吧
bool GetImgPath(AnsiString &path)
{
//结构体变量,存储系统版本信息
struct OSVERSIONINFO
{
DWORD dwOSVersionInfoSize;
DWORD dwMajorVersion;
DWORD dwMinorVersion;
DWORD dwBuildNumber;
DWORD dwPlatformId;
TCHAR szCSDVersion[128];
} OSVer;
//得到系统版本信息
OSVer.dwOSVersionInfoSize=sizeof(OSVer);
GetVersionEx((OSVERSIONINFOA *)&OSVer);
for(path="";path="",*_environ;_environ++)
{
//如果环境变量是windir则取出路径
path=*_environ;
if (0!=strcmp(path.SubString(1,7).c_str(),"windir=")) continue;
path=path.SubString(8,path.Length()-7);
break;
}
//如果没找到路径则返回错误
if (0==path.Length()) return false;
//如果是Win98系统
if (4==OSVer.dwMajorVersion || 0!=OSVer.dwMinorVersion)
{
path+="\\KodakImg.exe";
return true;
}
if (0==OSVer.dwMinorVersion)
{
path=path.SubString(1,3);
path+="Program Files\\Windows NT\\Accessories\\ImageVue";
//如果是WinNT系统
if (4==OSVer.dwMajorVersion)
{
path+="\\WangImg.exe";
return true;
}
//如果是Win2K系统
if (5==OSVer.dwMajorVersion)
{
path+="\\KodakImg.exe";
return true;
}
}
return false;
}