我实施含有DLL 共享ADO连接通过使用ConnectionObject
的属性TADOConnection
并使其跨DLL边界到的其他实例TADOConnection
。 我需要确保COM被初始化,所以我需要调用CoInitialize
/ CoUninitialize
。 目前,它在一个VCL主线程的上下文,但可以在另一个线程,当然这是在其他地方都需要自己的COM的实例 。 我目前没有实现多线程。
哪里是合适的地方来调用这些; 所述DLL(装载/卸载期间),DLL(呼叫处理)的外部,或二者内? 考虑到这只是一个线程,它不应该在原有过程中的DLL外只有一次?
我假设原来的调用线程应该为此承担全部责任,因为COM在一个线程的上下文中运行。 当然,他们呼吁双方应该不会伤害任何,但它也将创建多个COM实例。
长话短说...是否有“安全是安全的”,在这种情况下? 或者是重要的只保留一个COM实例?