2011-06-16 96 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