调用SafeArray传入BYTE数组到OCX为什么不成功?只有25分了,大侠救救呀!!!
以下为我的代码:
long CTESTCtrl::CvtData(const VARIANT FAR& sArray)
{
char* buff; //unsigned char* buff;
//unsigned char m_abBinaryData[512];
if (sArray.vt == (VT_ARRAY | VT_UI1)) {
long Dims = SafeArrayGetDim(sArray.parray);
long UpperBounds;
long LowerBounds; if (Dims == 1) {
SafeArrayGetLBound(sArray.parray, 1, &LowerBounds);
SafeArrayGetUBound(sArray.parray, 1, &UpperBounds);
SafeArrayAccessData (sArray.parray, (void**)&buff);
/*for (int i = 0; i < UpperBounds; i++) {
m_abBinaryData[i] = buff[i];
buff[i] = 0;
}*/ SafeArrayUnaccessData(sArray.parray);
return 1;
}
}
}
以下为我的代码:
long CTESTCtrl::CvtData(const VARIANT FAR& sArray)
{
char* buff; //unsigned char* buff;
//unsigned char m_abBinaryData[512];
if (sArray.vt == (VT_ARRAY | VT_UI1)) {
long Dims = SafeArrayGetDim(sArray.parray);
long UpperBounds;
long LowerBounds; if (Dims == 1) {
SafeArrayGetLBound(sArray.parray, 1, &LowerBounds);
SafeArrayGetUBound(sArray.parray, 1, &UpperBounds);
SafeArrayAccessData (sArray.parray, (void**)&buff);
/*for (int i = 0; i < UpperBounds; i++) {
m_abBinaryData[i] = buff[i];
buff[i] = 0;
}*/ SafeArrayUnaccessData(sArray.parray);
return 1;
}
}
}
解决方案 »
- mfc下载管理控件
- 请教,画直线后,判断鼠标点的是否在直线范围内,如果是则选中直线
- vc active控件问题
- 初学者,列表框显示图片问题,急.
- gethostbyname函数为什么会在ServiceMain中堵塞呢,在DllMain中都是可以顺利得到结果的
- 怎么把工具条上的每一项和菜单上的相应项挂勾!
- 搜索引擎项目合作
- 散分100--请稍微回复一下我的问题:)
- 为什么MSDN上可以找到的函数在头文件中找不到?up有分
- (MFC)VS2010下文件位图的显示,小弟初学,求大神指导。
- VS2010新建对话框项目A弹出对话框B后用任务管理器关闭A项目B仍存在的问题
- 请教关于VS2008 MFC CHttpFile输出乱码问题(WIN7 64)
意思就表示你只提问不回答,人家回答之后你也不结帖