读书人

请教:C++Builder如何设置成Unideod?

发布时间: 2012-03-01 10:25:46 作者: rapoo

请问: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的.

探讨
如果是BCB6
在程序的头上加
#define UNICODE
或直接调用
CreateProcessW
如果是BCB2010,它缺省就应该是unicode版本的

读书人网 >C++ Builder

热点推荐