我正在实现一个包含共享ADO连接的DLL,使用
在哪里调用这些方法才是合适的?是在DLL内部(加载/卸载期间)、DLL外部(调用进程)还是两者都要?考虑到只有一个线程,不应该在原始进程中只调用一次吗?
我假设原始调用线程应该独自负责这个,因为COM在线程的上下文中运行。当然,在两侧都调用它们不会有任何问题,但这也会创建多个COM实例。
长话短说...在这种情况下,是“安全保险”吗?还是只保留一个COM实例很重要?
TADOConnection
的ConnectionObject
属性,并将其跨越DLL边界传递到其他TADOConnection
实例中。我需要确保初始化COM,因此需要调用CoInitialize
/ CoUninitialize
。目前它在VCL主线程的上下文中,但可能在另一个线程的其他地方,这当然需要自己的COM实例。我目前没有实现多线程。在哪里调用这些方法才是合适的?是在DLL内部(加载/卸载期间)、DLL外部(调用进程)还是两者都要?考虑到只有一个线程,不应该在原始进程中只调用一次吗?
我假设原始调用线程应该独自负责这个,因为COM在线程的上下文中运行。当然,在两侧都调用它们不会有任何问题,但这也会创建多个COM实例。
长话短说...在这种情况下,是“安全保险”吗?还是只保留一个COM实例很重要?
CoInitialize
。 - acelent