请问:C++Builder怎么设置成Unideod?? - C++ Builder / Windows SDK/API
请问:C++Builder怎么设置成Unideod??
就是把w_char作为t_char.
具体问题:
比如WinDows内核函数
BOOL CreateProcess(
LPCTSTR lpApplicationName,
// pointer to name of executable module
LPTSTR lpCommandLine, // pointer to command line string
LPSECURITY_ATTRIBUTES lpProcessAttributes, // process security attributes
LPSECURITY_ATTRIBUTES lpThreadAttributes, // thread security attributes
BOOL bInheritHandles, // handle inheritance flag
DWORD dwCreationFlags, // creation flags
LPVOID lpEnvironment, // pointer to new environment block
LPCTSTR lpCurrentDirectory, // pointer to current directory name
LPSTARTUPINFO lpStartupInfo, // pointer to STARTUPINFO
LPPROCESS_INFORMATION lpProcessInformation // pointer to PROCESS_INFORMATION
);
里面的LPTSTR,LPCTSTR都是t_char字符串,但是在程序里面只能接受char字符串,不能接受w_char字符串。
CreateProcess(NULL,CmdLine.c_str(),&sa,&sa,TRUE,CREATE_NO_WINDOW ,NULL,Dir.c_str(), &si, &pi);
编译通过。
CreateProcess(NULL,CmdLine.w_str(),&sa,&sa,TRUE,CREATE_NO_WINDOW ,NULL,Dir.w_str(), &si, &pi);
编译出错。
怎么让CreateProcess函数接受w_char参数??
[解决办法]
Unicode?
使用t_str()
或使用AnsiString类型转换,然后t_str()
[解决办法]
Unicode?
使用t_str()
或使用AnsiString类型转换,然后c_str() //改正
[解决办法]
让那个CreateProcess接受w_char参数?
关注
[解决办法]
如果是BCB6
在程序的头上加
#define UNICODE
或直接调用
CreateProcessW
如果是BCB2010,它缺省就应该是unicode版本的
[解决办法]
呵呵,来晚了.
[解决办法]
不过不是在程序头,是在它的工程项目的工程directory哪个地方,有个预编.就在那里加UNICODE的.