BCB中使用 ActiveX控件问题(200分)

  • 主题发起人 主题发起人 tuti
  • 开始时间 开始时间
T

tuti

Unregistered / Unconfirmed
GUEST, unregistred user!
1.
先在BCB5中导入Activex控件,生成的public控件属性正常,可读可写。
但用BCB6做相同操作,生成的public控件属性确只可读,不可写。
实在不懂其意。
//bcb5 C++ TLBWRTR : $Revision: 1.134.1.39 $
__property long propFocusPosition[long nCamNo]={ read=Get_propFocusPosition,
write=Set_propFocusPosition };
//bcb6 C++ TLBWRTR : $Revision: 1.151.1.0.1.27 $
__property long propFocusPosition[long nCamNo]={ read=get_propFocusPosition };

2.该函数将取得一个图片文件内容的数组,
但不知道varBuffer 应该如何调用,并取得其中内容?
//bcb5
void __fastcall GetPicture(long nCamNo, long nBuffSize, TVariant varBuffer);
//bcb6
void __fastcall GetPicture(long nCamNo, long nBuffSize, VARIANT varBuffer);
我如此调用,并希望把返回的内容,写入一个文件中。
long nPicSize = Rye1->propPicSize[0]
//当前的文件byte大小
if (nPicSize==0)
{
ShowMessage("无内容");
return;
}
int Bounds[2] = {0,nPicSize-1};
Variant m_pictureBuff=VarArrayCreate(Bounds,1,varByte);
Rye1->GetPicture(0,nPicSize,(m_pictureBuff));
void *Pbuf= VarArrayLock(m_pictureBuff);
AnsiString FilePath=ExtractFilePath( Application->ExeName);
FilePath=FilePath+Rye1->propFileName[0];
TFileStream* File_Pic= new TFileStream(FilePath,fmCreate);
File_Pic->WriteBuffer(Pbuf,nPicSize);
delete File_Pic;
VarArrayUnlock(m_pictureBuff);
但生成的文件用ultraEdit打开,内容都是00,不知道问题出在哪里?

3。Variant ,VARIANT,TVariant之间是什么关系?
 
手工修改访问控制特性试试。
另外,是否提供了写的“方法”
 
可以手工修改添加部分属性的设置方法,
但为什么 BCB5和BCB6有这个区别?哪位遇到过类似情况。
属性的设置还能手工修改,但第2个问题,可是要命。
请哪位大侠伸个援手,请指出具体的问题和改进方法,谢谢。

 
VARIANT,这个家伙应该是个宏吧,你看看他的头文件定义.
还有,好象,Variant和BCB的TVariant有点不同,TVariant是对Variant的封装吧!!!
 
多人接受答案了。
 
后退
顶部