请问下面这个函数的第二个参数的含义是什么?请略微详细点
HRESULT SafeArrayPutElement( 
  SAFEARRAY *  psa,  
  long *  rgIndices, 
  void *  pv         
);
希望能给我一个用上面的函数进行二维数组的写入代码?

解决方案 »

  1.   

    第二个参数是一个long型变量的指针,参考代码:
      Long L; 
        Long* pL = &L;
        *pL = 12;   //向指针所对应的值进行赋值
      

  2.   

    void CWinsock_exampleDlg::OnSend() { SAFEARRAY * psa;//安全数组 SAFEARRAYBOUND rgsabound[1]; rgsabound[0].lLbound = 0;  rgsabound[0].cElements = send_data_len; // SAFEARRAY长度 psa = SafeArrayCreate(VT_UI1, 1, rgsabound);//创建类型为字节的数组 long len; for(len=0;len<send_data_len;len++)   SafeArrayPutElement(psa, &len, &send_data_buf[len]);//缓冲区数据入安全数组 VARIANT send_var; send_var.vt=VT_ARRAY|VT_UI1; send_var.parray=psa; m_slave1.SendData(send_var);//数据发送}系统收到网络数据包,如果数据包IP地址、端口、协议类型与Winsock控件网络参数吻合,将触发消息,通知控件进行处理,即触发Winsock控件的DataArrival事件。本例中将获取的二进制数据转化成ASCII,因此在Winsock控件的DataArrival事件加入以下代码:void  CWinsock_exampleDlg::OnDataArrivalWinsockSlave1(long bytesTotal){ SAFEARRAY * psa_recv; SAFEARRAYBOUND rgsabound[1]; rgsabound[0].lLbound = 0; rgsabound[0].cElements = bytesTotal;// 设置数组的长度 psa_recv = SafeArrayCreate(VT_UI1, 1, rgsabound); VARIANT recv_var; recv_var.vt=VT_ARRAY|VT_UI1;//设置数据类型为字节型数组 recv_var.parray=psa_recv; VARIANT Vtype; Vtype.vt=VT_ERROR; VARIANT Maxlen; Maxlen.vt=VT_I4; Maxlen.lVal=bytesTotal; m_slave1.GetData(&recv_var,Vtype,Maxlen);//接收数据包 psa_recv=recv_var.parray; long len; for(len=0;len< bytesTotal;len++)    SafeArrayGetElement(psa_recv, &len, &recv_data_buf[len]);//数据存入接收缓冲区 BYTE  temp; long ls_len=0; m_edit_input_cs=m_edit_input_cs+"\r\n Receive Packer: "; ls_len=m_edit_input_cs.GetLength(); for(len=0;len< bytesTotal;len++)// 二进制字节数据转换为ASCII码显示。{  temp=' ';  m_edit_input_cs.Insert(ls_len,temp);  ls_len++;  temp=recv_data_buf[len]>>4;  temp=temp&0x0f;  if(temp>=0 && temp<=9)   temp=temp+0x30;// 数字  else     temp=temp+0x37;//字母  m_edit_input_cs.Insert(ls_len,temp);  ls_len++;  temp=recv_data_buf[len];   temp=temp&0x0f;  if(temp>=0 && temp<=9)   temp=temp+0x30;  else   temp=temp+0x37;  m_edit_input_cs.Insert(ls_len,temp);  ls_len++; }UpdateData(FALSE);}
      

  3.   

    to greensofter:
      我想要一个二维数组的写入方法,麻烦你能不能在贴一个