HANDLE hFile=CreateFile(sFileName,GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
DWORD fileSize = FileData.nFileSizeLow;
char *pBuf=new char[fileSize];
DWORD dwReads;
ReadFile(hFile,pBuf,fileSize,&dwReads,NULL);
CloseHandle(hFile);
VARIANT var;
var.vt=VT_ARRAY | VT_UI1 ;   
var.parray  =   (SAFEARRAY*)pBuf;
sFIleName是别人保存好的文件(其存储的是一维二进制字节数组)
我想把他读取出来并赋值给var可是好象结果不对
var.parray  =   (SAFEARRAY*)pBuf;我想应该是这句不对请教各位大大应该怎么改

解决方案 »

  1.   

    safearray 不能直接转换,它是一个结构.........
    http://blog.csdn.net/absurd/archive/2006/06/10/786822.aspx
      

  2.   

    那人家怎么可以把var存到文件里去的呢....二进制文件....
    可以存难道不可以读??
    我想还原var.....把原来存的var读到内存来
      

  3.   

    这个网址我没提问前就搜索到过了....看不懂才来问的;
    var.vt=VT_ARRAY | VT_UI1 ; 这句肯定是没错的(调试得出是保存sFileName的vt是8209)
    但不会还原保存的文件.....
    var.parray  =   (SAFEARRAY*)pBuf;这句执行过后var值不对....看来应该不是用var.parray....请教各位大大应该用什么呢