【发布时间】:2011-06-19 06:46:40
【问题描述】:
叹息
我正在使用 Microsoft Visual Express C++ IDE。我最近从 DevC++ 过渡到了这个 IDE。
我有一个在 DevC++ 中完美运行的函数,但在 MSVC++ 中它不会因为 Unicode 而编译(我认为?)。我需要更改什么才能编译我的函数?
查看我得到的编译器错误的注释代码行
map <string, string> GetEvironmentVariablesEx()
{
map <string, string> envVariables;
char* environVar = GetEnvironmentStrings(); // Compile error: error C2440: 'initializing' : cannot convert from 'LPWCH' to 'char *'
char* pos = strchr( environVar, '\0' );
// Skip over the "=::=::\0" of the environVar string
if ( pos != NULL ) { environVar = ++pos; pos = strchr( environVar, '\0' ); }
else return envVariables;
while ( true )
{
char* delim = strchr( environVar, '=' );
if ( delim == NULL )
break;
string variable = string( environVar, strlen(environVar)-strlen(delim) );
string value = string( ++delim );
envVariables.insert( pair<string, string>(variable, value) );
environVar = ++pos;
// find the "\0\0" that identifies the end of environVar
if ( pos != NULL && *pos == 0 ) { break; }
pos = strchr( environVar, '\0' );
}
FreeEnvironmentStrings( environVar );
return envVariables;
}
PS:因为这个应用程序是用 Unicode 编译的,这是否意味着它可以在 ANSII 计算机和 UNICODE 计算机上运行 - 所以我的应用程序可以在国际上运行?
【问题讨论】:
标签: c++ visual-c++ compiler-errors