很麻烦的问题(100分)

Z

zhcym

Unregistered / Unconfirmed
GUEST, unregistred user!
有一段程序,是需要建立OLE对象,程序是写在Unit 的 initialization 部分,
FobjOraSession := createOleObject( 'OracleInProcServer.XOraSession' );

这个程序在Delphi3的环境下编译运行,没有任何错误

但是在 delphi5 的环境下运行则会出现出现OLE的系统错误,但是,如果在
FobjOraSession := createOleObject( 'OracleInProcServer.XOraSession' );
语句前加入一句
CoInitialize(nil) 之后,程序运行就正常了?(当然还需要引入单元ComObj)

请问各位大虾为何?


 
com控件在初始化时需要调用CoInitialize
其实在退出前还需要调用CoUninitialize;
 
对应用程序而言,调用Application.Initialize时会自动调用CoInitialize,而ComObj
单元的finialization部分会自动调用CoUnInitialize。在in-process库中不需要调用
这两个函数,因为由客户应用程序作这件事
 
接受答案了.
 
顶部