CStringから LPCSTR型への変換orその逆について教えて下さい。
Visal Studio 2005のC++で以下のサンプルを動かしました。
http://www.g-ishihara.com/mfc_nw_01.htm
すると、以下のプログラムを実行させると、IとIIでエラーが発生しました。
I byteCP = static_cast<LPCSTR>(sendStr) +sendSum;
error C2440: 'static_cast' : 'CString' から 'LPCSTR' に変換できません。
II byteP = recvStr.GetBuffer(21);
error C2440: '=' : 'wchar_t *' から 'LPSTR' に変換できません。
学習のため、サンプルに従って進めていきましたが、
そこでつまずいてしまいました。
CStringについては、全く知識がありません。
ご存じの方、教えて下さい。
void CClientSockDlg::OnBnClickedBtnSend()
{
CSocket sock;
unsigned int port = 0;
CString sendStr, recvStr;
int send, recv, sendSum, recvSum;
LPCSTR byteCP = NULL;
LPSTR byteP = NULL;
int err = 0;
UpdateData();
// (1)ソケット作成
if (!err) if (!sock.Create()) err = 1;
// (2)ポート取得
if (!err) if (_stscanf_s(m_xvEditPort, _T("%d"), &port) != 1) err = 1;
// (3)接続
if (!err) if (!sock.Connect(m_xvEditIP, port)) err = 1;
// (4)送信(20バイト固定)
if (!err)
{
sendStr = m_xvEditMes;
while (sendStr.GetLength() < 20) sendStr += _T(" ");
sendStr = sendStr.Left(20);
sendSum = 0;
while (sendSum < 20)
{
byteCP = static_cast<LPCSTR>(sendStr) +sendSum; //------- I
send = sock.Send(byteCP, 20 -sendSum);
if (send == SOCKET_ERROR) {err = 1; break;}
sendSum += send;
}
}
if (!err)
{
m_xvEditLog += _T("Send : ");
m_xvEditLog += sendStr +_T("\r\n");
}
// (5)受信(20バイト固定)
if (!err)
{
byteP = recvStr.GetBuffer(21); //------- II
recvSum = 0;
while (recvSum < 20)
{
recv = sock.Receive(byteP +recvSum, 20 -recvSum);
if (recv == SOCKET_ERROR || recv == 0) {err = 1; break;}
recvSum += recv;
}
byteP[20] = '\0';
recvStr.ReleaseBuffer();
}
if (!err)
{
m_xvEditLog += _T("Recv : ");
m_xvEditLog += recvStr +_T("\r\n");
}
// (6)エラー表示
if (err)
{
LPVOID lpMsgBuf = NULL;
::FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL, sock.GetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR)&lpMsgBuf, 0, NULL);
m_xvEditLog += _T("Error : ");
m_xvEditLog += static_cast<LPTSTR>(lpMsgBuf);
UpdateData(FALSE);
LocalFree(lpMsgBuf);
}
// (7)切断
sock.Close();
UpdateData(FALSE);
return;
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
CString から LPCTSTRの型に変換
C言語・C++・C#
-
DWORDの実際の型は何でしょうか
C言語・C++・C#
-
charからLPTSTRへの変換方法
C言語・C++・C#
-
-
4
error C2664: 'LPCTSTR' に変換できません。
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ダブルクォーテーションのrepla...
-
Path型をString型へ変換する(Java)
-
javaで質問です。 文字列2023/2...
-
Visual Basic でのコードをASCI...
-
WideCharToMultiByte関数で変換...
-
スマホでテキストボックスの随...
-
TEXTAREAからのデータを改行入...
-
javascriptで文字列のsjis利用...
-
エクセルVBAで「〜」が表現でき...
-
UTF-8とUnicodeの互換性
-
substring バイト単位でやりたい
-
phpでの文字コード変換について
-
InputStream型のキャスト
-
文字コード変換
-
オラクルで、半角文字を全角に...
-
Windows-31Jからutf-8への変換...
-
javaで「全角が含まれているか...
-
C言語32bitから64bitの移行につ...
-
文字列の比較
-
DBから取得したデータの文字化け
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ダブルクォーテーションのrepla...
-
Path型をString型へ変換する(Java)
-
javaで質問です。 文字列2023/2...
-
javascriptで文字列のsjis利用...
-
カタカナをローマジに変換する。
-
int型のゼロ埋め
-
JavaのStringクラスに「外字」...
-
C言語32bitから64bitの移行につ...
-
Visual Basic でのコードをASCI...
-
phpでの文字コード変換について
-
COBOLで半角カナを全角カナに変換
-
substring バイト単位でやりたい
-
エクセルVBAで「〜」が表現でき...
-
UTF-8とUnicodeの互換性
-
文字列の比較
-
javaの初歩的な質問です。
-
cookie から取り出すと文字化け
-
Windows-31Jからutf-8への変換...
-
IBM漢字コード⇒SJIS変換方法
-
error C2440: 'static_cast' : ...
おすすめ情報