关于MFC中CString的简单定义问题
CStringStrProc(L"");CStringStrProc=L"";这两种方法都试过了这句话有错吗为什么StrProc总是无法初始化麻烦解释一下谢谢!不知道为什...
CString StrProc(L"");
CString StrProc = L"";
这两种方法都试过了
这句话有错吗 为什么StrProc总是无法初始化 麻烦解释一下 谢谢!
不知道为什么 他就是初始化不了
::CString sstr = CString(L"");
DWORD NumberOfBytesWritten = 0;
char *tmpNewContent = new char[4096];
GetDlgItemText(IDC_EDIT_TEXT, sstr);
if (sstr.GetLength() >= 4096)
{
GetDlgItemText(IDC_EDIT_TEXT, sstr);
sstr.Append(L"发送的数据过长!");
SetDlgItemText(IDC_EDIT_MSG, sstr);
return;
}
::WideCharToMultiByte(CP_ACP, 0, (wchar_t *)sstr.GetString(), -1, tmpNewContent, 4096, NULL, NULL);
if (!WriteFile(hCom, tmpNewContent, 4096, (LPDWORD)&NumberOfBytesWritten, NULL))
{
GetDlgItemText(IDC_EDIT_MSG, sstr);
sstr.Append(L"发送失败!");
SetDlgItemText(IDC_EDIT_MSG, sstr);
return;
}
调试的时候发现他sstr的值永远都是“错误的指针” 不知道哪位高手遇过这种情况 麻烦解释一下 谢谢! 展开
CString StrProc = L"";
这两种方法都试过了
这句话有错吗 为什么StrProc总是无法初始化 麻烦解释一下 谢谢!
不知道为什么 他就是初始化不了
::CString sstr = CString(L"");
DWORD NumberOfBytesWritten = 0;
char *tmpNewContent = new char[4096];
GetDlgItemText(IDC_EDIT_TEXT, sstr);
if (sstr.GetLength() >= 4096)
{
GetDlgItemText(IDC_EDIT_TEXT, sstr);
sstr.Append(L"发送的数据过长!");
SetDlgItemText(IDC_EDIT_MSG, sstr);
return;
}
::WideCharToMultiByte(CP_ACP, 0, (wchar_t *)sstr.GetString(), -1, tmpNewContent, 4096, NULL, NULL);
if (!WriteFile(hCom, tmpNewContent, 4096, (LPDWORD)&NumberOfBytesWritten, NULL))
{
GetDlgItemText(IDC_EDIT_MSG, sstr);
sstr.Append(L"发送失败!");
SetDlgItemText(IDC_EDIT_MSG, sstr);
return;
}
调试的时候发现他sstr的值永远都是“错误的指针” 不知道哪位高手遇过这种情况 麻烦解释一下 谢谢! 展开
7个回答
展开全部
是L还是_T?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这样吧:CString StrProc = _T("");
其实如果定义空字符串的话,就这样就行了:CString StrProc;
其实如果定义空字符串的话,就这样就行了:CString StrProc;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
下面的方法是有效的
初始化 ""之间就要有内容
这个是C++的类 不必担心C语言中的初始值 初始值都是""空串
CString strProc = L"123";
初始化 ""之间就要有内容
这个是C++的类 不必担心C语言中的初始值 初始值都是""空串
CString strProc = L"123";
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
两种方法:
1.加头文件<tchar.h>,然后使用CString StrProc = _T("");形式
2.使用TEXT()函数把字符串包起来,即CString StrProc = TEXT("");形式
因为MSDN定义#define TEXT(quote) L##quote
1.加头文件<tchar.h>,然后使用CString StrProc = _T("");形式
2.使用TEXT()函数把字符串包起来,即CString StrProc = TEXT("");形式
因为MSDN定义#define TEXT(quote) L##quote
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
两种都行的。
L宏后面的字符是unicode字符。如果你没有定义unicode字符CString是用的多字符集。
CStringW strProc = L"";
CStringA strProc = "";
CString strProc = _T("");
以上三种写法在任何字符编码下都可以。
L宏后面的字符是unicode字符。如果你没有定义unicode字符CString是用的多字符集。
CStringW strProc = L"";
CStringA strProc = "";
CString strProc = _T("");
以上三种写法在任何字符编码下都可以。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询