2012-05-07 85 views
2

我正試圖將SNMP代理集成到用本地C++編寫的Windows應用程序中。如何在Windows和主應用程序之間進行通信?

要使此代理成爲Windows SNMP代理的子代理,必須編寫一個DLL,該DLL可導出由Windows SNMP服務調用的某些例程。到目前爲止,事情工作正常。

現在這個DLL需要從應用程序中獲取實際的信息。我的第一個想法是讓應用程序和DLL使用雙方均可訪問的共享內存塊,但這會使信息始終略顯陳舊,並且在SNMP請求進入時運行某些代碼以獲取最新值會更好。雙方將讀寫信息。

該應用程序已經有一個基於TCP的控制檯界面,但連接,查詢,斷開連接對於來自SNMP客戶端的非常頻繁的請求可能有點重。

我的選擇是讓DLL直接與應用程序通信嗎?

回答

2

命名管道很容易處理,不會干擾防火牆,也不需要addtional同步(就像共享內存一樣)。有關更多信息,請參見MSDN

+0

我正試圖收集選項。命名管道和共享內存是您看到的唯一輕量級選項嗎? –

+1

@Gene:是的。如果DLL保持加載到內存中並且數據塊不夠大,並且您有使用COM的經驗,則可以使您的應用程序成爲進程外COM-Server。 –

相關問題