我需要在vb6應用程序和.net應用程序之間傳遞數據。這些數據將每秒寫入或讀取。它大約有30個領域。這兩個應用程序駐留在同一臺計算機上。我目前通過註冊表傳遞這些數據,它工作的很好,但它讓我有點緊張。我會用文本文件來做,但我擔心數據丟失。在VB6應用程序和.net應用程序之間傳遞數據
這樣做的最好方法是什麼?
我需要在vb6應用程序和.net應用程序之間傳遞數據。這些數據將每秒寫入或讀取。它大約有30個領域。這兩個應用程序駐留在同一臺計算機上。我目前通過註冊表傳遞這些數據,它工作的很好,但它讓我有點緊張。我會用文本文件來做,但我擔心數據丟失。在VB6應用程序和.net應用程序之間傳遞數據
這樣做的最好方法是什麼?
常見後端?是的,註冊表工作,文本文件將起作用,但在多用戶環境中,最好用數據庫(例如MS Access或SQL Server)。
+1。 SQL Server在多進程環境中可能會更好。也許[SQL Server Compact](http://stackoverflow.com/questions/416716/would-you-use-sql-server-compact-for-a-desktop-application) – MarkJ 2012-01-27 20:58:44
數據庫可能是最昂貴的IPC形式有。 – Bob77 2012-01-27 21:03:27
好的,很貴,是的,特別是如果你不得不僱用一個DBA,但它會比註冊表或文本文件更好地處理多用戶更新。 – Beth 2012-01-27 21:04:49
選擇你的毒藥:郵筒,內存映射文件,命名管道,套接字。網上有很多幫助和代碼。
同一臺計算機上的進程之間的小消息(包括Windows操作系統):使用MailSlots。
同一臺機器上的進程之間的大塊數據:使用內存映射文件。
在進程(相同或不同機器,Windows操作系統)之間流式處理消息:使用命名管道進行操作。
在進程(相同或不同機器,相同或不同操作系統)之間流式處理消息:使用套接字進行。
由於您現在正在使用註冊表,因此可能會使用Mailslots。
我還沒有使用Mailslots。你能指點我一個很好的例子嗎? – jocoder 2012-01-30 19:34:19
@jocoder:有兩個地方可以簽出。首先,C#項目在http://www.codeproject.com/Articles/19231/Fully-functional-Asynchronous-Mailslot-Control-in – rskar 2012-01-30 22:12:31
@jocoder:第二,這是某人的VB代碼,主要是作品(他有一個問題與它):http://forums.devx.com/archive/index.php/t-160327.html – rskar 2012-01-30 22:13:05
實際上,Mailslots也可以在機器間正常工作。雖然它們對於超過400字節的消息不起作用。
DDE仍然支持,而且速度非常快。可能沒有.Net支持。
當然,簡單的進程外COM只是Windows RPC之上的一個薄層。
非常可怕。這不是註冊表的目的。有沒有聽說過註冊表配置單元碎片? – Bob77 2012-01-27 20:57:47