2
我正試圖將SNMP代理集成到用本地C++編寫的Windows應用程序中。如何在Windows和主應用程序之間進行通信?
要使此代理成爲Windows SNMP代理的子代理,必須編寫一個DLL,該DLL可導出由Windows SNMP服務調用的某些例程。到目前爲止,事情工作正常。
現在這個DLL需要從應用程序中獲取實際的信息。我的第一個想法是讓應用程序和DLL使用雙方均可訪問的共享內存塊,但這會使信息始終略顯陳舊,並且在SNMP請求進入時運行某些代碼以獲取最新值會更好。雙方將讀寫信息。
該應用程序已經有一個基於TCP的控制檯界面,但連接,查詢,斷開連接對於來自SNMP客戶端的非常頻繁的請求可能有點重。
我的選擇是讓DLL直接與應用程序通信嗎?
我正試圖收集選項。命名管道和共享內存是您看到的唯一輕量級選項嗎? –
@Gene:是的。如果DLL保持加載到內存中並且數據塊不夠大,並且您有使用COM的經驗,則可以使您的應用程序成爲進程外COM-Server。 –