SnmpExtensionInit未被调用

时间:2011-06-16 19:37:23

标签: winapi dll snmp dllexport

我正在尝试为Windows SNMP代理添加扩展,并遵循可用的粗略文档。已构建dll,并且已将两个条目放入注册表中。重新启动SNMP服务似乎加载DLL。调用DllMain的原因如下:DLL_PROCESS_DETACH,DLL_PROCESS_ATTACH,DLL_THREAD_ATTACH,DLL_PROCESS_DETACH。但SnmpExtensionInit似乎永远不会被调用。有任何想法吗? TIA。

1 个答案:

答案 0 :(得分:2)

您能否发表SnmpExtensionInit的声明。抱歉,这是法语,但请使用slxSNMPInfo工具尝试您的DLL。此工具只是加载您的DLL并尝试调用SnmpExtensionInit


编辑(在您的评论之后)

slwSNMPInfo.exe中的

"Err SNMP DLL not detected !"证明您的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);