如何在VC++中将COPYDATASTRUCT的数据转换为可理解的字符串?

How to convert COPYDATASTRUCT's Data to a understandable string in VC++?

本文关键字:转换 可理解 字符串 数据 VC++ 中将 COPYDATASTRUCT      更新时间:2023-10-16

我正在尝试将poCopyDataPCOPYDATASTRUCT)更改为字符串,也是一种将字符串变回字符串的方法。所以我可以发送它,poCopyData程序将消息从另一个程序复制到的地方。

PCOPYDATASTRUCT poCopyData = (PCOPYDATASTRUCT)ulParam;
// Note this is just outputs the message i don't how it converts it.
printf("Message (%u): %.*sn", poCopyData->dwData, poCopyData->cbData, poCopyData->lpData);
inline LRESULT CopyData( HWND hwnd, DWORD message, const char* str )
{
  COPYDATASTRUCT copy_data = { message, strlen( str ) + 1, str };
  return SendMessage( hwnd, WM_COPYDATA, 0, reinterpret_cast< LPARAM >( &copy_data ) );
}
LRESULT WINAPI WndProc( HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam )
{
  if( message == WM_COPYDATA )
  {
    COPYDATASTRUCT* copy_data = reinterpret_cast< COPYDATASTRUCT* >( lparam );
    const char* str = reinterpret_cast< const char* >( copy_data.lpData );
    printf( "Message (%u): %.*sn", copy_data->dwData, str );
}