搞不懂的链接错,vc。net一个查看tcp网络连接的程序

freevanx freevanx 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
部分源码为:

#include "stdafx.h"
#include "HttpServer.h"
#include "TcplinkDlg.h"
#include <iphlpapi.h>


// CTcplinkDlg 对话框

IMPLEMENT_DYNAMIC(CTcplinkDlg, CDialog)
CTcplinkDlg::CTcplinkDlg(CWnd* pParent /*=NULL*/)
: CDialog(CTcplinkDlg::IDD, pParent)
{
}

CTcplinkDlg::~CTcplinkDlg()
{
}

void CTcplinkDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_TCP_LIST, m_list);
}


BEGIN_MESSAGE_MAP(CTcplinkDlg, CDialog)
END_MESSAGE_MAP()


// CTcplinkDlg 消息处理程序
BOOL CTcplinkDlg::OnInitDialog()
{
CDialog::OnInitDialog();


RECT rect;
PMIB_TCPTABLE tcpTable = NULL;
BYTE pBuffer[100*20+4];
DWORD dwTableSize = 0;
in_addr addrLoc, addrRem;

// Setup the list box
m_list.ModifyStyle(LVS_TYPEMASK, LVS_REPORT);
ListView_SetExtendedListViewStyle(m_list.m_hWnd, LVS_EX_GRIDLINES |LVS_EX_FULLROWSELECT );

m_list.DeleteAllItems();
m_list.InsertColumn(0, "本地地址");
m_list.InsertColumn(1, "本地端口");
m_list.InsertColumn(2, "远程地址");
m_list.InsertColumn(3, "远程端口");
m_list.InsertColumn(4, "连接状态");

m_list.GetWindowRect(&rect);
int nTotalX = rect.right - rect.left;

m_list.SetColumnWidth(0, nTotalX/5);
m_list.SetColumnWidth(1, nTotalX/5);
m_list.SetColumnWidth(2, nTotalX/5);
m_list.SetColumnWidth(3, nTotalX/5);
m_list.SetColumnWidth(4, nTotalX/5);


dwTableSize = 100*20+4;

// Get the TCP Table
// if the buffer is small this function returns the required size in dwTableSize
DWORD dwRet = GetTcpTable((PMIB_TCPTABLE)pBuffer, &dwTableSize, TRUE);
if(dwRet == NO_ERROR)
{
tcpTable = (PMIB_TCPTABLE)pBuffer;

for(DWORD i=0; i<tcpTable->dwNumEntries; i++)
{
char szTemp[100];
char szLocAddr[100], szRemAddr[100];

DWORD dwRemIP = htonl(tcpTable->table[i].dwRemoteAddr);
unsigned short nRemPort = htons(tcpTable->table[i].dwRemotePort);

DWORD dwLocIP = htonl(tcpTable->table[i].dwLocalAddr);
unsigned short nLocPort = htons(tcpTable->table[i].dwLocalPort);

addrLoc.S_un.S_addr = ntohl(dwLocIP);
addrRem.S_un.S_addr = ntohl(dwRemIP);

strcpy(szLocAddr, inet_ntoa(addrLoc));
strcpy(szRemAddr, inet_ntoa(addrRem));

m_list.InsertItem(i, "");
m_list.SetItemText(i, 0, szLocAddr);

sprintf(szTemp, "%u", nLocPort);
m_list.SetItemText(i, 1, szTemp);

m_list.SetItemText(i, 2, szRemAddr);

sprintf(szTemp, "%u", nRemPort);
m_list.SetItemText(i, 3, szTemp);

switch(tcpTable->table[i].dwState)
{
case MIB_TCP_STATE_CLOSED:
m_list.SetItemText(i, 4, "Closed");
break;
case MIB_TCP_STATE_LISTEN:
m_list.SetItemText(i, 4, "Listening");
break;
case MIB_TCP_STATE_SYN_SENT:
m_list.SetItemText(i, 4, "SYN Sent");
break;
case MIB_TCP_STATE_SYN_RCVD:
m_list.SetItemText(i, 4, "SYN Received");
break;
case MIB_TCP_STATE_ESTAB:
m_list.SetItemText(i, 4, "Established");
break;
case MIB_TCP_STATE_FIN_WAIT1:
m_list.SetItemText(i, 4, "Waiting for FIN");
break;
case MIB_TCP_STATE_FIN_WAIT2:
m_list.SetItemText(i, 4, "Waiting for FIN");
break;
case MIB_TCP_STATE_CLOSE_WAIT:
m_list.SetItemText(i, 4, "Waiting for Close");
break;
case MIB_TCP_STATE_CLOSING:
m_list.SetItemText(i, 4, "Closing");
break;
case MIB_TCP_STATE_LAST_ACK:
m_list.SetItemText(i, 4, "Last ACK");
break;
case MIB_TCP_STATE_TIME_WAIT:
m_list.SetItemText(i, 4, "Time Wait");
break;
case MIB_TCP_STATE_DELETE_TCB:
m_list.SetItemText(i, 4, "TCB deleted");
break;
default:
m_list.SetItemText(i, 4, "Unknown status");

}
}
}
else
{
m_list.SetItemText(0, 0, "Unable to get TCP Connections");
}

UpdateData(FALSE);

return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}

错误提示为:
TcplinkDlg.obj : error LNK2019: 无法解析的外部符号 _GetTcpTable@12 ,该符号在函数 "protected: virtual int __thiscall CTcplinkDlg::OnInitDialog(void)" (?OnInitDialog@CTcplinkDlg@@MAEHXZ) 中被引用

.\Debug/HttpServer.exe : fatal error LNK1120: 1 个无法解析的外部命令

...全文

相关推荐

Vc.net TCP多服务端

Vc.net TCP多服务端 一个端口可以同时接收多个客户端的访问。

sjlaochen

Windows下OpenClaw+飞书生产级接入实战指南

Windows系统中部署本地智能体框架(如OpenClaw)并对接企业协作平台(如飞书),本质是解决进程守护、HTTPS回调验证、网络栈兼容与权限隔离四大基础问题。其核心原理在于绕过公网依赖,利用本地回环(127.0.0.1)+自签名证书+Hosts绑定构建可信内网通信链路;技术价值体现在低延迟(<120ms)、高可用(Windows Service自动恢复)、强安全(专用服务账户沙箱);典型应用于制造业IT告警、金融私有知识库问答、销售线索自动分发等需数据不出域的场景;本文聚焦win环境下的OpenCla

weixin_33725270

PyMongo连接失败的7大根因与10分钟排障指南

MongoDB与Python的连接本质上是TCP网络通信、TLS加密协商、身份认证和权限校验的综合过程。其底层依赖Wire Protocol协议栈,受Python版本、PyMongo驱动版本、MongoDB服务器版本三者兼容性严格约束。技术价值在于:稳定连接是数据应用可信运行的前提,避免CI/CD中‘本地通线上挂’等环境漂移问题。典型应用场景包括Docker微服务间通信、MongoDB Atlas云集群接入、Kubernetes有状态应用初始化及高校IoT数据采集管道搭建。本文聚焦PyMongo同步连接这一

weixin_30851867

VC++构建高性能HTTPSERVER:IOCP模型与Windows原生开发实践

网络编程中的I/O模型是构建高性能服务器的核心技术基础,它决定了程序处理并发连接的能力与效率。在Windows平台下,IOCP(I/O完成端口)机制通过异步非阻塞与线程池调度,实现了高并发网络请求的高效处理,成为开发高性能服务的首选方案。这项技术的核心价值在于能够以少量系统资源支撑上万并发连接,特别适合需要深度集成Windows系统特性的专用服务场景。例如,在开发需要常驻Windows服务器的监控Agent、对实时性要求极高的工业控制软件管理界面时,基于VC++和IOCP构建的原生HTTP服务器,能够实现零

weixin_30621959

Vc.net/CLR TCP通讯客户端

Vc.net/CLR TCP通讯客户端

sjlaochen
评论 3
收藏 已收藏
分享
返回顶部
freevanx
VC.NET 7,538 成员 27,670 内容