分数大大的200分!!用BCB写的COM服务器用DELPHI调用就不行!!!!!(李维MIDAS 应用篇2-26页)(200分)

  • 主题发起人 主题发起人 Along007
  • 开始时间 开始时间
A

Along007

Unregistered / Unconfirmed
GUEST, unregistred user!
源程序是这们的:
procedure TDynamicSQLDemoServer.GetAllTables(var vTables : OleVariant);
var
tblist:Tstinglist;
icount:integer;
begin
try
tblist:=Tstinglist.create;
adoconnection.gettablenames(tblist);
vTables:=VarArrayCreate(0,tblist.count-1],varVariant);
for icount:=0 to tblist.count-1do
begin
vTables[icount]:=tblist.String[icount];
end;
finally
tblist.free;
end;
end;
我用BCB5中这样写道:
STDMETHODIMP TAlongTestBCBImpl::GetAllTables(TVariant* vTables)
{
TStringList *tablelist=new TStringList();
int icount;
try{
AlongTestBCB->ADOConnection1->GetTableNames(tablelist,false);
int bounds[2]={0,tablelist->Count-1};
vTables=VarArrayCreate(bounds,1,varVariant);
for(icount=0;icount<tablelist->Count;icount++)
{ vTables[icount]=tablelist->Strings[icount];
}
}
__finally
{ tablelist->Free();
}
}
这样写对吗?
可是我在编写客户程序时去不能用
Socketconnection1->Appserver.GetAllTables(tblist);
编译时出错!
但是用DELPHI就没有问题,程序可以通过。
请问是不 是BCB5不可以这样做,
同时我用DELPHI调用BCB写的服务程序时出现什么:
“单一线程模式下试图在一个以上线程上进行呼叫!”
(但是用DELPHI调用DELPHI写的服务程序就没有问题呀!!!!!)
问题就在这里,,,,,
请大家多指教!
(李维《分布系统---应用篇》在2-26的DEMO例子)
 
大家努力呀!!!!
 
在BCB里是不是你的CLASS设置为单线程了!
 
Chenlili, 房客
您好,您是版主吧!!!
我已经发这个消息好几天了,我真的想知道答案呀!
请您多多指教??????
在此多谢了!
Along
Mail: Along@e-pic.com
QQ : 65466700
 
Chenlili, 房客
您好,您是版主吧!!!
我已经发这个消息好几天了,我真的想知道答案呀!
请您多多指教??????
在此多谢了!
Along
Mail: Along@e-pic.com
QQ : 65466700
 
我在用BCB5做多层结构系统时,我在Server端加入了一个取得服务器IP地址的方法:GetServerIP它的参数是vIP:Variant *,IN方式,并在服务端实现了这个方法,
加入的代码如下:
*vIP="192.168.0.01";最后我注册成功。
可是在我开发客户端程序时,我用TSocketConnection
当取得它的服务时我是这样做的:
Variant* vip;
SocketConnection1->AppServer.GetServerIP(vip);
Edit1->Tex=vip;
可 是我在运行程序时出错,没有编译通过。
它说getserverIP不是variant的成员
getserverIP is not a memober of variant
请问?
我该如何去调用这个方法呢?
请各位大侠多多指教?
小生的QQ:65466700(24小时在线恭候)
MAIL: alongsun@sina.com
 
COM服务器创建错误。
 
后退
顶部