VS-2019的编译错误

问题描述 投票:0回答:1

以下代码无法编译。我收到两个错误:

    _TCHAR* pStrAddress;
    ... some stuff here...
    IN_ADDR  sa;
    InetPton(AF_INET, pStrAddress, &sa);
    *pIP = sa.S_un.S_addr;

1)IN_ADDR->错误C2065:“ AF_INET”:未声明的标识符

2)InetPton(...)-> C3861:'InetPton':找不到标识符

我的配置如下:

  • VS-2019 pro
  • Windows SDK 10.0.18362.0(最新于9/26/2019)
  • 当我按下F12(转到定义)时,以下文件在编辑器中打开(C:\ Program Files(x86)\ Windows Kits \ 10 \ Include \ 10.0.18362.0 \ shared \ inaddr.h和C:\ Program Files (x86)\ Windows Kits \ 10 \ Include \ 10.0.18362.0 \ um \ WS2tcpip.h)。
  • 项目设置“ C / C ++ |常规|其他包含目录”已选中“从父项或项目默认值继承”复选框。
  • Ws2_32.lib存在于“链接器|其他依赖项”中(但我的问题不是关于链接的问题,还是现在不存在)
  • 我的程序使用unicode,并且InetPton(...)扩展为InetPtonW,这是正确的。

要从编辑器中恢复,可以访问这些符号,但是预检/编译器似乎没有相同的路径。显然,我缺少了一些最明显的东西。您的帮助将不胜感激。

谢谢!

c++ compiler-errors visual-studio-2019 in-addr
1个回答
0
投票

找到了!我创建了一个仅包含所需代码的小项目,作为代码示例,一切都可以正常编译。因此,首先必须显而易见。然后就打给我!:预编译的标头不是第一个include。

谢谢大家的帮助!

BAD代码:

    #include <windows.h>
    #include <ws2tcpip.h>
    #include <stdlib.h>

    #include "pch.h"   <-- this must be the first include!!!!!!

GOOD代码:

    #include "pch.h"   <-- ok, happy compiler and developer  ;)

    #include <windows.h>
    #include <ws2tcpip.h>
    #include <stdlib.h>
© www.soinside.com 2019 - 2024. All rights reserved.