2 chunxiao 0220 chunxiao_0220 于 2014.12.08 11:31 提问

C++代码看不懂,求大神指点

FormatMessage(

FORMAT_MESSAGE_ALLOCATE_BUFFER |

FORMAT_MESSAGE_FROM_SYSTEM |

FORMAT_MESSAGE_IGNORE_INSERTS,

NULL,
GetLastError(),
0,
(LPTSTR) &lpMsgBuf,
0,
NULL
);
这段代码不太清楚什么意思,尤其是 (LPTSTR) &lpMsgBuf这句,请大神们指点指点

2个回答

eagleyan
eagleyan   Rxr 2014.12.08 11:41
已采纳

把错误转换成到lpMsgBuf里啊,(LPTSTR) &lpMsgBuf,你使用了FORMAT_MESSAGE_ALLOCATE_BUFFER,会自动生成buffer,把buffer的指针放到lpMsgBuf里,LPTSTR = 表示一个tchar的指针。

chunxiao_0220
chunxiao_0220 回复eagleyan: 恩,好的,谢谢您的回答
3 年多之前 回复
eagleyan
eagleyan 回复chunxiao_0220: 对
3 年多之前 回复
chunxiao_0220
chunxiao_0220 那(LPTSTR) &lpMsgBuf这句中的(LPTSTR) 是强制类型转换吗
3 年多之前 回复
mao0514
mao0514   Rxr 2014.12.08 11:54

LP:长指针(long pointer)。
T:win32环境中有一个_T宏,用来标识字符是否采用Unicode编码(两字节表示一个字符),若程序中定义了Unicode,该字符/字符串被作为Unicode字符串,否则就是标准的ANSI(单字节表示一个字符)字符串。
STR:表示这个变量是一个字符串。

chunxiao_0220
chunxiao_0220 恩,谢谢您的帮助
3 年多之前 回复
chunxiao_0220
chunxiao_0220 恩,谢谢您的帮助
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!