生成SNMP的DLL(动态链接库)

本文介绍如何将SNMPlib转换为SNMPDLL,以便在C#/WPF环境中调用。详细步骤包括下载SNMP库、创建DLL工程、添加源文件和头文件、设置工程路径及链接器配置,以及解决编译警告和错误的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于C#/WPF不可以直接调用lib,只能调用dll;所以将之前的SNMP lib要改成 SNMP DLL

1.下载SNMP库

下载地址:http://www.agentpp.com/

LIBDES-l-4.01a 解压后为libdes文件夹

SNMP++v3.2.25 解压后为snmp++文件夹

2.新建DLL工程

将上述两个文件夹复制到工程目录下,将两个文件夹中有的.c、.cpp文件全部添加到工程的源文件中,将两个文件夹中有的.h文件全部添加到工程头文件中

在工程包含目录中添加两个文件夹中.h的目录

在工程源目录中添加两个文件夹中源文件的目录

在链接器-输入-附加依赖项中添加ws2_32.lib

在“工程->属性->配置属性->C/C++->预处理器->预处理器定义添加以下定义解决sprintf函数相关的waring或者error

_CRT_SECURE_NO_DEPRECATE

_SCL_SECURE_NO_DEPRECATE

在dllname.cpp中声明要导出的函数(注:DLL导出类只可以给相同编译器的c++调用,不能给c#调用,所以考虑自己写几个函数,将类的使用写在函数里面,在外层只调函数)

3.重新生成

ok

4.说明

Ws2_32.lib的作用:参考:https://blog.youkuaiyun.com/u011385799/article/details/49365675

该库对应ws2_32.dll,提供了对以下网络相关API的支持,若使用其中的API,则应该将ws2_32.lib加入工程(否则需要动态载入ws2_32.dll)。如果没有连接该库会出现许多下列函数中的链接错误

 

accept

bind

closesocket

connect

getpeername

getsockname

getsockopt

htonl

htons

ioctlsocket

inet_addr

inet_ntoa

listen

ntohl

ntohs

recv

recvfrom

select

send

sendto

setsockopt

shutdown

socket

GetAddrInfoW

GetNameInfoW

WSApSetPostRoutine

FreeAddrInfoW

WPUCompleteOverlappedRequest

WSAAccept

WSAAddressToStringA

WSAAddressToStringW

WSACloseEvent

WSAConnect

WSACreateEvent

WSADuplicateSocketA

WSADuplicateSocketW

WSAEnumNameSpaceProvidersA

WSAEnumNameSpaceProvidersW

WSAEnumNetworkEvents

WSAEnumProtocolsA

WSAEnumProtocolsW

WSAEventSelect

WSAGetOverlappedResult

WSAGetQOSByName

WSAGetServiceClassInfoA

WSAGetServiceClassInfoW

WSAGetServiceClassNameByClassIdA

WSAGetServiceClassNameByClassIdW

WSAHtonl

WSAHtons

gethostbyaddr

gethostbyname

getprotobyname

getprotobynumber

getservbyname

getservbyport

gethostname

WSAInstallServiceClassA

WSAInstallServiceClassW

WSAIoctl

WSAJoinLeaf

WSALookupServiceBeginA

WSALookupServiceBeginW

WSALookupServiceEnd

WSALookupServiceNextA

WSALookupServiceNextW

WSANSPIoctl

WSANtohl

WSANtohs

WSAProviderConfigChange

WSARecv

WSARecvDisconnect

WSARecvFrom

WSARemoveServiceClass

WSAResetEvent

WSASend

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值