簡體   English   中英

使用Visual Basic / Visual Studio 12的Windows窗體EXE中的COM

[英]COM in a Windows form EXE using Visual Basic/Visual Studio 12

我通常不使用.NET框架進行編程,但是我需要使用它來創建一個簡單的exe應用程序,該應用程序記錄一些測量設備中的數據。 我希望該應用程序具有一個具有兩種方法的自動化接口。 我在使用Delphi / Pascal之前就已經做到了這一點,它非常簡單,我可以在Visual Studio中創建一個類庫,該類庫可以注冊其自身和方法,並且可以輕松地與之交互,但是在Windows窗體應用程序中添加ComClass卻沒有工作,有人能指出我正確的方向嗎?

這開始只是一個評論,但一直在增長,希望我不會偏離軌道...

您只能注冊一個dll。 因此,簡短的答案是在您的項目中添加一個類庫,並將com類放入其中。 這將允許您共享類的功能,但不能共享該類的相同實例

我認為您的問題是您正在嘗試建立進程間通信 我的直接建議是至少在一開始就不要這樣做。

首先,您可以將com應用程序界面與.net類庫一起使用,該類庫將記錄數據。 然后,您可以使用另一個具有.net可執行文件的項目來顯示日志並定期更新。 現在,您在籬笆的兩邊都有.net代碼,可以開始研究使它們彼此交談的方法。

困難的部分是調用方法和返回值。 如果您確實需要響應系統,則可以調查命名管道的進程間通信,或在兩個系統之間使用帶有回調的WCF服務。 問題在於,無論哪種情況,您都不會被.net托管的類庫所困擾,因此功能有限(沒有配置文件等)。 如果您可以忍受一段時間,那么我建議您僅從將消息寫入本地數據存儲開始,然后每隔30秒左右從每個客戶端輪詢一次。 例如,該應用程序將創建一條消息,說“給我測量A”,然后每秒開始輪詢。 DLL將具有一個計時器,並且在30秒內將讀取該消息,並將其自身的消息與測量值一起寫入,EXE將讀取該消息然后顯示。 一旦該系統啟動並運行,您就可以決定是否需要處理進程間通信,這實際上只是一個不同的界面。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM