VS-2019 的编译错误

Compilation errors with VS-2019

本文关键字:错误 编译 VS-2019      更新时间:2023-10-16

下面的代码无法编译。我得到两个错误:

_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 专业版
  • Windows SDK 10.0.18362.0(最新至 2019 年 9 月 26 日(
  • 当我按 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,这是正确的。

要恢复,从编辑器中可以访问符号,但预处理器/编译器似乎没有相同的路径。显然,我错过了一些很可能很明显的东西。 您的帮助将不胜感激。

谢谢!

找到了! 我创建了一个小项目,只用感兴趣的代码作为代码示例发布,一切都编译得很好。因此,首先必须有一些显而易见的东西。然后它击中了我!:预编译的标头不是第一个包含。

谢谢大家的帮助!

错误代码:

#include <windows.h>
#include <ws2tcpip.h>
#include <stdlib.h>
#include "pch.h"   <-- this must be the first include!!!!!!

代码:

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