一个关于snmp的初级问题!

skyxu 2000-02-01 10:15:00
我从网上down了一个netstatp的程序,就是实现netstat功能的程序,不过可惜
是console环境的,而GUI的那个没有原程序,为了学习一下 vc想自己写一个,
吧netstatp编程窗口的!
那个程序是用snmp方法来获得消息的,我吧它原来的程序直接copy倒我新写的程序
里,我只是再初始化就报错,而同样的东东,在原来的程序去运行正常,请那为
大虾帮我看看!
在首部定义了:
BOOL (__stdcall *pSnmpExtensionInit)(
IN DWORD dwTimeZeroReference,
OUT HANDLE *hPollForTrapEvent,
OUT AsnObjectIdentifier *supportedView);
程序出错的地方:
if( !(pSnmpExtensionInit = (void * ) GetProcAddress( hInetLib,"SnmpExtensionInit" )) ) {

return FALSE;
}
错误的内容:
D:\myprogram\vc\vnetstat\vnetstat.cpp(171) : error C2440: '=' : cannot convert from 'void *' to 'int (__stdcall *)(unsigned long,void ** ,AsnObjectIdentifier *)'
Conversion from 'void*' to pointer to non-'void' requires an explicit cast

我很奇怪的是同样的东东在原来的环境下一点问题都没有,是不是我需要在什么地方
要设置一下环境?
netstatp我download from http://www.sysinternals.com/
...全文
260 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
aha1973 2000-10-13
  • 打赏
  • 举报
回复
我也是从网上下载的netstatp.zip
运行环境:NT4 + SP5 + VC6.0
第一次编译 4 errors,0 warnning
其中两个是重复定义,两个与你错误差不多。

操作:
屏蔽snmp.h中的定义,编译成果,可以运行。

Good luck!
merryhp 2000-08-31
  • 打赏
  • 举报
回复
你将定义改为:
BOOL (WINAPI *pSnmpExtensionInit)(
DWORD dwTimeZeroReference,
HANDLE *hPollForTrapEvent,
AsnObjectIdentifier *supportedView);
程序中如下使用:
pSnmpExtensionInit = (BOOL (WINAPI *)(DWORD,HANDLE *,AsnObjectIdentifier*)) GetProcAddress( hInetLib,"SnmpExtensionInit" );


netmare 2000-02-28
  • 打赏
  • 举报
回复
抱歉,应该为
if(!(static_cast<FARPROC>(pSnmpExtensionInit) = GetProcAddress(hInetLib,"SnmpExtensionInit" )))
hayoo 2000-02-28
  • 打赏
  • 举报
回复
typedef BOOL (__stdcall *PINITFUNC)(
IN DWORD dwTimeZeroReference,
OUT HANDLE *hPollForTrapEvent,
OUT AsnObjectIdentifier *supportedView);
PINITFUNC pSnmpExtensionInit;

if( !(pSnmpExtensionInit = (PINITFUNC) GetProcAddress( hInetLib,"SnmpExtensionInit" )) ) {

return FALSE;
}
skyxu 2000-02-28
  • 打赏
  • 举报
回复
刚从家里回来!

还是不行按你的方法抱下面的错误
error C2106: '=' : left operand must be l-value
netmare 2000-02-03
  • 打赏
  • 举报
回复
从错误信息看,是类型不匹配,将pSnmpExtensionInit强制为void*即可
改成
if( !(static_cast<void*>(pSnmpExtensionInit) = (void * ) GetProcAddress( hInetLib,"SnmpExtensionInit" )) )
试试
skyxu 2000-02-02
  • 打赏
  • 举报
回复
没有人知道吗?
谁来帮助我啊?
我要回家了,看来要回来后才能知道了!

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧