如何将double类型的数封装到COleSafeArray类型的变量中

AzureWR 2017-11-06 08:22:00
比如说有一个double类型的数100,想要传送到COleSafeArray saValues中应该怎么办??
这是我写的一段程序 const int knMaxAtOnce = 1;
int nStartIndex = 19;
int nVarIndex;
nVarIndex = 1;
double dValue;
BOOL bOK = TRUE;
CString strValue;
COleSafeArray saValues;
DWORD dwElements[1];
LPTSTR pStrz;
double *pdValue;

dwElements[0] = knMaxAtOnce;
saValues.Create(VT_VARIANT, 1, dwElements);
saValues.AccessData((void**)&pdValue);
*pdValue =100;
saValues.UnaccessData();
mytrio.SetTable(nStartIndex, nVarIndex, saValues);
在最后一句设置断点,saValues中没有我想要存的100
...全文
399 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zgl7903 2017-11-08
  • 打赏
  • 举报
回复
double f = 100; COleSafeArray ar; ar.CreateOneDim(VT_R8, 1, &f);
zgl7903 2017-11-08
  • 打赏
  • 举报
回复
int iNums = 1; double *pData = new double[iNums]; for(int i=0; i<iNums; i++) { pData[i] = i; } COleSafeArray ar; ar.CreateOneDim(VT_R8, iNums, pData); …… delete [] pData;
AzureWR 2017-11-08
  • 打赏
  • 举报
回复
引用 1 楼 zgl7903 的回复:

  int iNums = 100;

  double *pData = new double[iNums];
  for(int i=0; i<iNums; i++)
  {
    pData[i] = i;
  }

  COleSafeArray ar;
  ar.CreateOneDim(VT_R8, iNums, pData);

  ……

  delete [] pData;
还是不行呢,CreateOneDim是创建一维空间,而iNums是100,是100维的了,pData是每一维存储的个数;
zgl7903 2017-11-07
  • 打赏
  • 举报
回复

  int iNums = 100;

  double *pData = new double[iNums];
  for(int i=0; i<iNums; i++)
  {
    pData[i] = i;
  }

  COleSafeArray ar;
  ar.CreateOneDim(VT_R8, iNums, pData);

  ……

  delete [] pData;

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧