掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
文字列の取り出しについて (ID:72347)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
お世話になります。 VS2005 MFCダイアログベースのアプリを作成作成しています。 文字列データの受け渡しを行っているのですが 受け取り側で文字列が上手くとれず困っています。 何方か御教え頂けないでしょうか。1バイト文字列で行うと上手くいきます。 やりたいことは"テストデータ"の2バイト文字列を別のプロセスで取り出す事です。 HWND sendWinClass; HWND recvWinClass; WPARAM wParam; LPARAM lParam; COPYDATASTRUCT cds; CString strSendData; strSendData = _T( "テストデータ" ); //2バイト文字作成 TCHAR* sendData = new TCHAR[strSendData.GetLength() + 1]; _tcscpy_s( sendData, strSendData.GetLength() + 1, strSendData ); //1バイト文字列 //char *sendData = new char[strSendData.GetLength() + 1 ]; //strcpy_s( sendData, strSendData.GetLength() + 1, CStringA( strSendData ) ); cds.dwData = 1; cds.cbData = strSendData.GetLength() + 1; cds.lpData = ( LPVOID )sendData; //送受信ウィンドウハンドル取得 sendWinClass = ::FindWindow(_T("SFiceGuiSim"), NULL); recvWinClass = ::FindWindow(_T("NCCEAnalysisTool"), NULL); if ( ( sendWinClass == NULL ) || ( recvWinClass == NULL ) ) { delete sendData; return FALSE; } wParam = (WPARAM)sendWinClass; //送信側のウィンドウハンドル設定 lParam = (LPARAM)&cds; //送信するデータ設定 //メッセージ送信 ::SendMessage( recvWinClass, WM_COPYDATA, wParam, lParam ); delete sendData; return TRUE; 文字列取り出し側 BOOL CNCE_Analysis_ToolDlg::OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCopyDataStruct) { // TODO: ここにメッセージ ハンドラ コードを追加するか、既定の処理を呼び出します。 CString strRcvData; strRcvData = pStr; //2バイト文字列取得 strRcvData = (TCHAR)(pCopyDataStruct->lpData); //1バイト文字列取得 //LPCSTR pStr = (LPCSTR)(pCopyDataStruct->lpData); return CDialog::OnCopyData(pWnd, pCopyDataStruct); } 宜しくお願いいたします。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.