各位高手,我在做一个有关CDMA通信的ActiveX控件,控件中包含一个方法,它的主要功能是将编码后的CDMA指令发送出去,然后由调用该控件的程序读出,并经过串口发送给CDMA模块。 在我编码的指令中存在着(0x00,0x31)(代表“1”的unicode码),当我把“方法”的返回类型选为BSTR时,0x00会被当成CString的结束符而被舍弃,可问题是,在这个指令中,0x00是必须要传的,否则CDMA接收时,会无法翻译成“1”。 请问我该怎么解决这个问题呢,已经困扰我很久了,比如ACtiveX的方法类型中,有类似char[]型的类型吗,或是有其它不影响0x00的传输类型呢,谢谢了。 焦急等待中……
解决方案 »
- 用两个不同维度的数组给一个数组赋值?
- outlook express 导入导出问题
- WSAAccept
- vc,ADO,Access:我把_ConnectionPtr m_pConnection定义为全局变量,Release时怎么编译不过,debug可以
- 要控制投影仪,啥办?
- 有谁知道如何动态的在图标下方添加文字呢?(分数不够可以再加)
- 如何创建一个字符串指定的目录(包括子目录)?
- V2008 如何使用CMFCToolBar类在对话框中添加工具栏
- 有人用过MFC编写NI数据采集卡程序吗,控制台程序有效,但在MFC中就不能使用了。
- 图像DFT压缩设计
- 关于窗口编辑的一个问题,实在没办法了!
- 删除视图的边框
BSTR bstr
); 获取长度
VARIANT CMessageCtrl::Send2()
{
VARIANT vaResult;
VariantInit(&vaResult);
vaResult.vt = VT_UI1|VT_BYREF;
char a[] = "sb";
vaResult.pbVal = (BYTE*)a;
return vaResult;
}但是外部调用控件的函数
void CInsms3Dlg::OnOK()
{
VARIANT vaResult;
VariantInit(&vaResult);
vaResult = m_message.Send2();
}中的vaResult却接收不到传过来的数据,我试过定义个返回值是VARIANT的函数就能传递变量值,ActiveX控件为何就不行呢
{
pOut->vt = VT_UI1|VT_BYREF;
char a[] = "sb";
pOut->pbVal = (BYTE*)a;
return S_OK;
} 外部调用控件的函数
void CInsms3Dlg::OnOK()
{
VARIANT vaResult;
VariantInit(&vaResult);
m_message.Send2(&vaResult);
}
{
pOut->vt = VT_UI1|VT_BYREF;TCHAR szText[] = _T("Test");pOut->pbVal = CoTaskMemAloc(lstrlen(szText)*sizeof(TCHAR));
memcpy(pOut->pbVal, szText, lstrlen(szText)*sizeof(TCHAR));
return S_OK;
}外部调用控件的函数
void CInsms3Dlg::OnOK()
{
VARIANT vaResult;
VariantInit(&vaResult);
m_message.Send2(&vaResult);
}