现需要调用BCB写的dll动态库,该函数参数类型为LPTSTR SendPic(LPTSTR,TMemoryStream*,int);
在VC中应如何声明该函数?我用LPTSTR SendPic(LPTSTR,BYTE*,int);函数调用失败。请问TMemoryStream在VC里该如何声明?高分急救!!!!!!!!

解决方案 »

  1.   

    这是Delphi里面的吧
    不太清楚TMemoryStream的具体实现,想法是如果没有对应数据结构的话,直接自定义数据结构,然后给它来个内存对拷
      

  2.   

    TMemoryStream类是做什么的???
      

  3.   

    你还是用BCB吧,这个是BCB独有的,VC没有
      

  4.   

    这个TMemoryStream* 是传出的参数还是要传入操作的?
    如果要传入的那基本上没办法,如果只是传出的,你分配一块足够大的空间,传入应该就可以.
    参数类型用void* 就可.
      

  5.   

    用IStream可以达到类似效果。它有Read,Write等方法用于实现读写功能。
    下面以前写的一段代码。
    MSXML2::IXMLDOMDocumentPtr pDoc; 
    CComPtr<IStream> pStream; if(SUCCEEDED(pDoc.CreateInstance(__uuidof(DOMDocument30))) == FALSE) 

      MessageBox(NULL, TEXT( "不能加载MSXML组件。"), TEXT( "提示 "), MB_OK); 
      return; 
    } if(SUCCEEDED(CreateStreamOnHGlobal(NULL, TRUE , &pStream)) == FALSE) 

      MessageBox(NULL, TEXT( "不能建立流对象。 ")   ,   TEXT( "提示 "),   MB_OK); 
      return; 
    } _variant_t varStream(pStream); 
    pDoc-> save(varStream); 
      

  6.   

    调用的dll动态库是别人写的,TMemoryStream*需要传入照片信息,不是传出参数,找不到TMemoryStream的结构资料,不好办了
      

  7.   

    应该是DELPHI的吧,VC要直接传TMemoryStream应该不可能吧,如果可以的话你自己写一个BCB的DLL,实现一个函数,参数用指针,指向你的二进制数据的地址,然后DLL中用LoadFromStream加载你的数据流,再在你的DLL中调用那个DLL就可以了
      

  8.   

    如果要传TMemoryStream到dll,你可以用BCB再封装一个dll,用BCB来调Delphi写的dll。BCB里面已经包含了TMemoryStream类,并且可以与Delphi公用。
      

  9.   

    应该是DELPHI的吧,VC要直接传TMemoryStream应该不可能吧,如果可以的话你自己写一个BCB的DLL,实现一个函数,参数用指针,指向你的……
    [/Quote]
    这个想法不错。