在开发windows服务的时候,想要连接数据库,可是发现在创建的时候就出错了,看看VCL里面的ADO创建的代码,发现是基于COM的调用的:
FConnectionObject := CreateADOObject(CLASS_Connection) as _Connection;
OleCheck(ConnectionPoint.Advise(Self as IUnknown, FConnEventsID));
所以得在服务启动的时候,初始化一下COM:
CoInitialize(nil);
对应的,在服务停止的时候,需要:
CoUninitialize;