【问题标题】:error LNK2028 when calling the WinSnmp function SnmpStartup?调用 WinSnmp 函数 SnmpStartup 时出现错误 LNK2028?
【发布时间】:2011-07-08 19:35:40
【问题描述】:

我正在尝试用 C++ 编写一个简单的演示应用程序。我只想查询我网络上的一些打印机并将传入的信息排序到几个数据库表中,但是在编译我的代码时出现此错误:

错误 1 ​​错误 LNK2028:在函数“int __cdecl main(void)”(?main@ @$$HYAHXZ) C:\Users\Ashton\Documents\Visual Studio 2010\Projects\snmpdemo\snmpdemo\Main.obj

我的代码如下:

//#include <Snmp.h>
#include <WinSnmp.h>
#include <stdio.h>

smiLPUINT32 majorVers;
smiLPUINT32 minorVers;
smiLPUINT32 nLevel;
smiLPUINT32 translateMode;
smiLPUINT32 retranslateMode;

int main()
{

    SnmpStartup(majorVers, minorVers, nLevel, translateMode, retranslateMode);

    printf("%imajorVers /n %iminorVers /n "
           "%inLevel /n "
           "%itranslateMode /n "
           "%iretranslateMode");

    SnmpCleanup();
}

【问题讨论】:

    标签: c++ snmp winsnmp


    【解决方案1】:

    SnmpStartup()SnmpCleanup() 没有任何定义,因此链接器抱怨它找不到对它的引用。可能,您正在使用一个定义这些函数的库,但您是否链接到它?

    编辑:

    您应该将您的程序链接到Wsnmp32.libWsnmp32.dll,它应该可以正常工作。
    看看 this

    【讨论】:

    • 如何链接到 DLL 或 LIB 文件?
    • @Ashton:将“snmp32.lib”添加到您的库依赖项(项目属性 > 链接器 > 输入 > 附加依赖项)。这告诉链接器在哪里可以找到函数的代码。
    • 我在 Visual Studio 2010 中,我在项目属性下看不到链接器选项。我做错了吗?
    • @Ashton:我建议你先了解什么是lib,什么是dll,它们之间有什么区别以及如何在visual studio中使用它们,请搜索互联网,你会找到许多解释和教程。除非你知道基本的,否则很难帮助你。
    • 我已经链接了 DLL,但现在它告诉我:错误 1 ​​错误 LNK1104:无法打开文件 'C:\Windows\System32\wsnmp.dll'
    猜你喜欢
    • 1970-01-01
    • 2013-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-08
    • 2020-08-08
    相关资源
    最近更新 更多