2011-06-16 140 views
0

我正在嘗試向Windows SNMP代理添加擴展,並且遵循了可用的粗略文檔。該DLL已經建成,兩個條目已被放入註冊表。重新啓動SNMP服務似乎加載DLL。由於以下原因調用DllMain:DLL_PROCESS_DETACH,DLL_PROCESS_ATTACH,DLL_THREAD_ATTACH,DLL_PROCESS_DETACH。但是SnmpExtensionInit似乎永遠不會被調用。有任何想法嗎? TIA。SnmpExtensionInit未被調用

回答

2

你可以給你的SnmpExtensionInit的聲明。對不起,這是法文,但嘗試使用slxSNMPInfo工具您的DLL。此工具只是加載您的DLL並嘗試調用SnmpExtensionInit


編輯(您的評論之後)

"Err SNMP DLL not detected !"slwSNMPInfo.exe證明,你的DLL不出口 「SnmpExtensionInit」 功能。您也可以使用Dependency Walker tool進行驗證。

要正確導出功能在Windows DLL,你可以使用這樣的定義文件a .def file):

LIBRARY YOUR-DLL-NAME 

DESCRIPTION 'SNMP Extension Agent for Windows NT.' 

SEGMENTS 
    _TEXT  PRELOAD 
    INIT_TEXT PRELOAD 

HEAPSIZE 1024 

EXPORTS 
    SnmpExtensionInit 
    SnmpExtensionTrap 
    SnmpExtensionQuery 

或者你可以改變你的函數的聲明(全三)

__declspec(dllexport) BOOL SnmpExtensionInit (DWORD dwTimeZeroReference, 
               HANDLE *hPollForTrapEvent, 
               AsnObjectIdentifier *supportedView); 
+0

BOOL WINAPI SnmpExtensionInit( – David 2011-06-16 20:24:13

+0

BOOL WINAPI SnmpExtensionInit(IN DWORD dwTimeZeroReference,OUT HANDLE * hPollForTrapEvent,OUT AsnObjectIdentifier * supportedView) – David 2011-06-16 20:25:24

+0

運行slxSNMPInfo c:\ windows \ system32 \ my.dll會返回「錯誤SNMP DLL未檢測到!」 – David 2011-06-16 20:26:21