我需要读取用户输入的数据并将其写入.txt文件。对于阅读,我使用GetDlgItemText,它返回LPTSTR的类型,然后我需要将其写入.txt文件,最好使用fprintf函数(与项目的其余部分保持一致)。我应该按哪个顺序进行类型转换?
.txt
GetDlgItemText
LPTSTR
fprintf
ws51t4hk1#
不要使用GetDlgItemText,因为它需要LPTSTR,而是使用GetDlgItemTextA,它需要LPSTR。LPTSTR可以是char*或wchar_t*,这取决于编译器的设置,但LPSTR始终是char*,因此不需要强制转换或转换。
LPSTR
char*
wchar_t*
i7uq4tfw2#
我猜项目是Unicode(否则LPTSTR是char *)。使用WideCharToMultiByte()函数将Unicode转换为ANSI。但你也可以将其存储在Unicode文本文件中而不进行转换。
char *
WideCharToMultiByte()
2条答案
按热度按时间ws51t4hk1#
不要使用
GetDlgItemText
,因为它需要LPTSTR
,而是使用GetDlgItemTextA,它需要LPSTR
。LPTSTR
可以是char*
或wchar_t*
,这取决于编译器的设置,但LPSTR
始终是char*
,因此不需要强制转换或转换。i7uq4tfw2#
我猜项目是Unicode(否则
LPTSTR
是char *
)。使用WideCharToMultiByte()
函数将Unicode转换为ANSI。但你也可以将其存储在Unicode文本文件中而不进行转换。