1
(标题更新,以指示问题是与_wgetenv)Unicode字符(日语)_wgetenv获得??标记值时,值包含
以下程序失败error 123当变量具有包含日语的文本路径。当与Visual Studio 2005
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
int main (int argc, char **argv) {
wchar_t *wcharVarName= L"TEMP_PATH";
wchar_t *longTempPath= _wgetenv(wcharVarName);
MessageBoxW(NULL, longTempPath, longTempPath, MB_OK | MB_ICONERROR);
int wlength = GetShortPathNameW(longTempPath,0,0);
int error= GetLastError();
if (wlength == 0) {
char buf[1000];
sprintf (buf, "error code %d",error);
MessageBox(NULL, "FAIL", buf, MB_OK | MB_ICONERROR);
}
else {
MessageBoxW(NULL, longTempPath, wcharVarName, MB_OK | MB_ICONERROR);
}
}
编译相同的程序工作正常,有没有办法让上面的程序与Visual Studio 6的作品?
编辑: TEMP_PATH是C:\ tmp \汉字。该_wgetenv显示...
你可以显示什么'longTempPath'包含? –
@ David Heffernan:看起来像getenv失败了? – Jayan
尝试调用['GetEnvironmentVariable'](http://msdn.microsoft.com/en-us/library/windows/desktop/ms683188(v = vs.85).aspx),而不是 –