仅分配第一个字符,将 LPCTSTR 转换为字符*
Only first character is assigned converting LPCTSTR to char*
我对C++完全陌生。在我的程序中,有一个函数必须将LPCTSTR
作为参数。我想把它转换成char*
.我尝试如下,
char* GetChar(LPCTSTR var){
char* id = (char*)var;
.....
}
但是在调试时,我注意到只有var
的第一个字母分配给id
。
我做错了什么?
(在得到这个解决方案之前,我在 StackOverflow 中尝试了关于将 LPCTSTR 转换为 char* 的各种答案。他们都不适合我。
更新
我想要的是让var
指向的完整字符串被视为char*
只选择一个字符集(wchar_t
或char
),并在您的应用程序中坚持使用它更有用,因为尝试使用TCHAR
时,尝试同时支持两者时,可能会给您带来一些头痛。公平地说,今天,您可以安全地使用wchar_t
(或WCHAR
,因为从您当前使用的类型来看,我怀疑您使用的是 Windows 标头)。
您遇到的问题是,强制转换指针不会对其内容产生任何影响。而且,由于通常wchar_t
的大小为 2 个字节,而char
的大小为 1 个字节,因此存储适合char
的值,以wchar_t
为单位,将wchar_t
的第 2 个字节设置为