首页
社区
课程
招聘
[原创]FormatMessage函数 的参数 LPTSTR lpBuffer 问题
发表于: 2013-7-28 12:37 2837

[原创]FormatMessage函数 的参数 LPTSTR lpBuffer 问题

2013-7-28 12:37
2837

msdn中函数定义
DWORD FormatMessage(
  DWORD dwFlags,      // source and processing options
  LPCVOID lpSource,   // message source
  DWORD dwMessageId,  // message identifier
  DWORD dwLanguageId, // language identifier
  LPTSTR lpBuffer,    // message buffer
  DWORD nSize,        // maximum size of message buffer
  va_list *Arguments  // array of message inserts
);
 
 
 
 
 
 
但是msdn中的例子中调用时用的却是(LPTSTR) &lpMsgBuf(lpMsgBuf不是已经是个指针了吗)
而不是(LPTSTR) lpMsgBuf,请问这是为什么???
像下面的MessageBox就是(LPCTSTR)lpMsgBuf
 
LPVOID lpMsgBuf; // lpBuffer是一个指针
FormatMessage( 
    FORMAT_MESSAGE_ALLOCATE_BUFFER | 
    FORMAT_MESSAGE_FROM_SYSTEM | 
    FORMAT_MESSAGE_IGNORE_INSERTS,
    NULL,
    GetLastError(),
    MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
    (LPTSTR) &lpMsgBuf,
    0,
    NULL 
);
// Process any inserts in lpMsgBuf.
// ...
// Display the string.
MessageBox( NULL, (LPCTSTR)lpMsgBuf, "Error", MB_OK | MB_ICONINFORMATION );
// Free the buffer.
LocalFree( lpMsgBuf );

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 5
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//