我正在考慮一些構建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。 –
啓動線程,您無法通信和控制是一個壞主意。 –
事實上,這就是爲什麼我想知道如何在他們開始後與他們溝通。 –