VS 2022 MFC 获取本机IP 遇到的错误

7 篇文章 0 订阅
4 篇文章 0 订阅

继续学习MFC的窗体,边百度,边学习。

复制了网络代码。报错,调试下。

严重性    代码    说明    项目    文件    行    禁止显示状态
错误    C4996    'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings    IPX    E:\VSC\IPX\IPXDlg.cpp    189    


百度了,看看大佬们的答案操作了一编。

项目-属性,C++下的预处理

 添加_WINSOCK_DEPRECATED_NO_WARNINGS

 

添加后就木问题了。

 

确定按钮添加事件。

GetDlgItem(IDC_STATIC)->SetWindowText(L"你的内网IP地址"+ cStr);

改变静态文本框IDC_STATIC)的内容。

IPXDlg.cpp代码如下

void CIPXDlg::OnBnClickedOk()
{
    // TODO: 在此添加控件通知处理程序代码
    
    //LPCSTR str = GetLocalIP2.c_str();
    CString cStr;
    cStr = GetLocalIP2();
    GetDlgItem(IDC_STATIC)->SetWindowText(L"你的内网IP地址"+ cStr);
    MessageBox(cStr, L"你的内网IP地址", MB_OK);
    
    CDialogEx::OnOK();
}

CString CIPXDlg::GetLocalIP2()
{
    WSADATA wsaData;
    int err = WSAStartup(MAKEWORD(2, 0), &wsaData);
    if (err != 0)
    {
        return _T("");
    }

    char szHostName[MAX_PATH] = { 0 };
    int nRetCode;
    nRetCode = gethostname(szHostName, sizeof(szHostName));

    char* lpLocalIP;
    PHOSTENT hostinfo;

    if (nRetCode != 0)
    {
        WSACleanup();
        return _T("");
    }

    hostinfo = gethostbyname(szHostName);
    lpLocalIP = inet_ntoa(*(struct in_addr*)*hostinfo->h_addr_list);

    CString aa(lpLocalIP);

    WSACleanup();

    return aa;

}

这个函数GetLocalIP2() 需要添加对话框类的public部分,才可以调用自定义函数

 

对话框的IPXDlg.h头文件里找到 CLASS类。

 

刚学习了下 如何改窗体的标题。

 

SetWindowText(L"学习MFC记录2023.6.4");

运行下

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VS2022 MFC 串口是指在使用Visual Studio 2022开发MFC(Microsoft Foundation Class)应用程序时,通过串口进数据通信的功能。 首先,可以在MFC应用程序中使用串口类来实现对串口的操作。通过该类,可以打开、关闭、配置串口的参数,发送和接收数据等。在Visual Studio 2022中创建MFC应用程序后,可以将串口类添加到项目中。 其次,通过串口类提供的成员函数和属性,可以对串口进各种操作。比如,可以设置串口的波特率、数据位、停止位、校验位等参数,以便与外部设备进正确的通信。可以通过读取串口缓冲区来接收外部设备发送的数据,同时可以使用写入函数将数据发送到串口。 在使用串口进通信时,需要注意一些问题。首先,要确保正确设置串口的参数,以便与外部设备匹配。此外,要在正确的时机打开和关闭串口,以免造成串口忙或无法打开的问题。当接收到数据时,要及时处理接收缓冲区中的数据,以免数据溢出。 在进串口通信时,可以使用事件驱动的方式。通过设置串口类的事件处理函数,可以在接收到数据或其他事件发生时进相应的处理。这样可以提高程序的响应速度,同时减少CPU的资源占用。 总结来说,VS2022 MFC 串口是可以通过串口类实现MFC应用程序与外部设备之间的数据通信。通过合理设置串口参数,处理接收和发送的数据,可以实现与外部设备的稳定通信。在使用过程中需要注意串口的打开和关闭时机,以及对串口事件的处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值