我正在考虑一些构建DLL的一些常见的东西我做的想法。有一件事我想检查一下是否可能在DLL中运行一个线程。我确信我至少可以启动它,并在终止时自动释放它(并强制终止它的自我) - 我可以看到它不会有什么问题。但是一旦我启动它,我就不会看到如何继续与它沟通(特别是阻止它),主要是因为每次调用DLL都是唯一的(据我所知),但我也知道很少学科。是否可以启动(并停止)DLL中的线程?
我已经看到,在某些场合,一个DLL可以在开始装载,并在当不需要的话了年底发布。我对这种方法没有什么知识或经验,除了看到与之相关的东西外,甚至不能告诉你什么或怎样,我不记得。但这甚至可能吗?
我知道有关ActiveX/COM,但是这不是我想要的东西 - 我想只是一个可以跨语言(特别是C#)一同使用的基本DLL。
此外,如果可能的话,那么我将如何去从DLL做回调到应用程序?例如,当我启动线程时,我很可能会分配一个函数(在EXE内部)作为事件的处理程序(由DLL触发)。
所以我猜我问的是 - 如何加载连续工作一个DLL,并释放它,当我做完了 - 而不是根据需要调用DLL中的各个功能的简单方法。在相同的情况下 - 我可以在DLL中分配变量或创建对象。我如何确保一旦我分配了该变量(或创建对象),我如何确保在下次调用DLL时变量或对象仍然可用?显然,它需要一种机制来初始化/完成DLL(I.E.在加载DLL时创建DLL中的对象,并在卸载DLL时释放对象)。最后,我会将DLL包装到一个组件中,所以当组件的一个实例被创建时,DLL将被加载并在DLL中创建一个对应的线程,然后当组件被释放,DLL被卸载。还需要确保如果有这些组件的示例2,那么将为每个组件加载2个DLL实例。
这是以任何方式与使用IInterface有关吗?因为我也有这方面的经验。
无需直接与示例源代码回答吧 - 给一个很好的教程链接将是巨大的。
在最后一个音符在那里,我的意思是,我不希望任何人花时间,并详细回答这个问题,我知道这是一个大课题,我需要的是有人向我展示了一个教程,做到这一点,没有使用ActiveX。 –
启动线程,您无法通信和控制是一个坏主意。 –
事实上,这就是为什么我想知道如何在他们开始后与他们沟通。 –