工控编程吧
标题:
上位机MFC如何将BSTR类型转换成CString类型
[打印本页]
作者:
qq263946146
时间:
2019-8-21 11:11
标题:
上位机MFC如何将BSTR类型转换成CString类型
BSTR在定义是可以使用宏L""赋值,也可以调用函数SysAllocString赋值。
例如
BSTR bstr = ::SysAllocString(L"Hello world!");
bstr=L"Hello world!";
要转换成CString类型,可以显示地强制转换。
如CString str = (CString)bstr;
可以在对话框工程中运行下面代码,查看效果。
#include <comdef.h>
void CGkbc8Dlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // device context for painting
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CPaintDC dc(this);
BSTR bstr = ::SysAllocString(L"Hello world!");
bstr=L"Hello world!";
//强制转换
CString str = (CString)bstr;
CString strText = _T("");
strText.Format(_T("str = %s"), str);
dc.TextOut(100, 50, strText);
::SysFreeString(bstr);
CDialog::OnPaint();
}
}
复制代码
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4