无法解析的外部符号 _AllocateAndGetTcpExTableFromStack

永夜星空 2012-05-12 04:45:28
枚举系统中的TCP连接状况,我测试用3个API.想挑选一种最好的.分别是GetTcpTable,GetExtendedTcpTable,AllocateAndGetTcpExTableFromStack
GetTcpTable---不能获取到进程ID
GetExtendedTcpTable---可以获取进程ID,但是Windows版本至少要Windows XP SP2,Windows Server 2003 SP1
AllocateAndGetTcpExTableFromStack---可以获取进程ID,但MSDN解释说Windows Vista和以后版本不支持
所以我想依据Windows版本分别调用GetExtendedTcpTable或AllocateAndGetTcpExTableFromStack.
问题是编译的时候显示了一个错误"无法解析的外部符号 _AllocateAndGetTcpExTableFromStack"
这问题怎么解决呢?
我当前使用Windows是Windows2003 Sp2企业版+VC2008
项目Windows版本定义文件targetver.h如下:

#ifndef WINVER // 指定要求的最低平台是 Windows Vista。
#define WINVER 0x0501 // 将此值更改为相应的值,以适用于 Windows 的其他版本。
#endif

#ifndef _WIN32_WINNT // 指定要求的最低平台是 Windows Vista。
#define _WIN32_WINNT 0x0501 // 将此值更改为相应的值,以适用于 Windows 的其他版本。
#endif

#ifndef _WIN32_WINDOWS // 指定要求的最低平台是 Windows 98。
#define _WIN32_WINDOWS 0x0410 // 将此值更改为适当的值,以适用于 Windows Me 或更高版本。
#endif

#ifndef _WIN32_IE // 指定要求的最低平台是 Internet Explorer 7.0。
#define _WIN32_IE 0x0700 // 将此值更改为相应的值,以适用于 IE 的其他版本。
#endif

尝试修改targetver.h也不行,越修改错误越多

我的代码如下:

#include "Iphlpapi.h"
#pragma comment(lib,"Iphlpapi.lib")
void TestTcpTable() //GetTcpTable,GetExtendedTcpTable,AllocateAndGetTcpExTableFromStack
{
DWORD err;
DWORD sz=1024*1024;
PMIB_TCPTABLE ptt=(MIB_TCPTABLE*)new BYTE[sz];
::memset(ptt,0,sz);

err=::GetTcpTable(ptt,&sz,0);
if(err==NO_ERROR)
{
//....
}
//....
err=::GetExtendedTcpTable(ptt,&sz,1,AF_INET,TCP_TABLE_OWNER_PID_ALL,0);
PMIB_TCPTABLE_OWNER_PID pttp=(PMIB_TCPTABLE_OWNER_PID)ptt;
if(err==NO_ERROR)
{
//....
}

//...

PMIB_TCPTABLE_OWNER_PID pttp2;
PVOID pv;
if(::AllocateAndGetTcpExTableFromStack(&pv,1,::GetProcessHeap(),0,AF_INET)==ERROR_SUCCESS) //这里有个连接错误:error LNK2019: 无法解析的外部符号 _AllocateAndGetTcpExTableFromStack
{
//....
}
}

...全文
143 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
永夜星空 2012-05-22
  • 打赏
  • 举报
回复
似乎这样是最简单的了
zgl7903 2012-05-12
  • 打赏
  • 举报
回复
用LoadLibrary和GetProcAddress

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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