今天用Delphi2007新建了一个TRemoteDataModule的多层服务端,编译后发现不能自动完成注册。在网上找到了答案希望对大家有用。
我们新建一个TRemoteDataModule时会自动添加以下代码:
如果注册后无法确认是否注册成功,可以用C:"WINNT"Regedit.exe检查(没查过)。
class procedure TRDM.UpdateRegistry(Register: Boolean; const ClassID, ProgID: string); begin if Register then begin inherited UpdateRegistry(Register, ClassID, ProgID); EnableSocketTransport(ClassID); EnableWebTransport(ClassID); end else begin DisableSocketTransport(ClassID); DisableWebTransport(ClassID); inherited UpdateRegistry(Register, ClassID, ProgID); end; end; initialization TComponentFactory.Create(ComServer, TRDM, Class_RDM, ciMultiInstance, tmApartment); end.
以上代码Delphi7编译后可以完成注册,但是Delphi2007不会自动注册,需要手动添加代码ComServer.UpdateRegistry(true);完成注册。将单元的Initialization改为以下代码即可。
initialization TComponentFactory.Create(ComServer, TSuperRed, Class_SuperRed, ciMultiInstance, tmApartment); ComServer.UpdateRegistry(true);//添加该行语句完成注册