diode@newsmth 指出 FTerm 在普通用户帐号下面第一次启动会报错,怀疑是注册 COM 组件的问题,跟踪了一下还真是 在 ComServ.pas 里面有这么一段 procedure TComServer.Initialize; begin try UpdateRegistry(FStartMode <> smUnregServer); except on E: EOleRegistrationError do // User may not have write access to the registry. // Squelch the exception unless we were explicitly told to register. if FStartMode = smRegServer then raise; end; if FStartMode in [smRegServer, smUnregServer] then Halt; ComClassManager.ForEachFactory(Self, FactoryRegisterClassObject); end; UpdateRegistry 的时候就抛异常了,但是看注释里面 Delphi 应该可以避免这个问题啊?仔细一看,原来抛出……
阅读全文