最近在学习使用RemObject开发,经验不足,碰到很多问题,在此列出来:
对于如何使用RemObject Hydra创建RemObject SDK Service Plugin我这里就不多介绍了,具体可以看:
http://www.remobjects.com/devcenter/articles/?id={36786066-BBCB-437B-9B51-6951464A2D79}
创建方法类似
附:服务使用的 THYXXXServer,THYXXMessage 都是放在模块插件主程序那边,千万别放在插件里面,我就犯过这样的错误。呵呵。
在调试运行主程序后,调用:http://localhost:8099/soap 会发现异常:尚未调用 CoInitialize 错误,该错误需要在主工程单元(也就是Project单元)下面的Uses引用
uROCOMInit单元,如果出现没有 uROCOMInit.dcu,那么你可以把它添加到工程里面,该单元你可以在你安装RemObject SDK目录下的 RemObjects SDK for Delphi/Source/uROCOMInit.pas 找到;
如果出现什么 Cannot a TStringList Assign a TStringList 错误,则你需要带包编译工程。这样就可以。
还有,如果你喜欢把RemObjects SDK Service做成Plugin方式,那么记得在模块插件主程序上添加THYRODLReader组件,并把它与其他如Message的关系设置好。
如果你想在MEMO中显示接口信息,可以使用以下代码:
var
lib : TRODLLibrary;
i, x : integer;
defaultintf : TRODLServiceInterface;
begin
Memo.Lines.Clear;
HYRODLReader1.ReadFullRODL(lib);
try
for i := 0 to (lib.ServiceCount-1) do begin
Memo.Lines.Add(lib.Services[i].Info.Name);
defaultintf := lib.Services[i].Items[0];
for x := 0 to (defaultintf.Count-1) do
Memo.Lines.Add('----> '+defaultintf.Items[x].Info.Name);
end;
finally
lib.Free;
end;
end;
注:TRODLLibrary 在单元:uRODL 中
这是今天的学习感悟。