为什么INTERNET_SCHEME_HTTPS在两个头文件中定义不同?
How is it that INTERNET_SCHEME_HTTPS is defined differently in two header files?
说,如果我包括Winhttp.h
, INTERNET_SCHEME_HTTPS
被定义为2
:https://msdn.microsoft.com/en-us/library/windows/desktop/hh707320 (v = vs.85) . aspx
,但如果我包括Wininet.h
,它被定义为4
:https://msdn.microsoft.com/en-us/library/windows/desktop/aa385149 (v = vs.85) . aspx
那么是哪一个呢?
答案是两者都有效。这取决于你使用的是WinINet还是WinHTTP。
在MSDN上引用WinINet与WinHTTP的对比:
除了少数例外,WinINet是WinHTTP的超集。在两者之间进行选择时,应该使用WinINet,除非您计划在需要模拟和会话隔离的服务或类服务进程中运行。
简而言之,这两个接口是不兼容的,因为它们不必兼容。两者是互斥的。
如果你在一个情况下,出于某种原因,你需要两者,要么单独的实现到单独的模块,或在Harry Johnston的评论中建议,和IInspectable,保存宏使用#pragma push_macro
,然后#undef
它。
相关文章:
- C++无法定义虚拟函数 OUTER 类和头文件
- QML:修改在不同QML文件(而非main.QML)中定义的子对象的属性
- 尝试调用 .h 文件中定义的变量时出现变量未定义错误
- 在头文件和 cpp 文件中使用一次 #pragma 时出现结构重定义错误
- C++编程从外部文本文件定义数组大小
- MAKE:找不到包含的用户定义的头文件?
- 定义C++新的环境变量并在 bat 文件中使用它
- 在头文件中定义变量不会出错
- 即使我没有包含多个文件,C++中的多个定义错误
- 如何检查函数是否在LLVM Instrumentation pass的ModulePass的系统头文件中定义?
- 查找定义我的 C/C++ 函数/宏的文件比'grep'更简单的方法
- 将文件复制到自定义位置,存在字符串转换问题
- 如何正确定义C++类析构函数并将其链接到主文件?
- C2011: 'Card':"类"类型重新定义(尽管使用了包含保护并且没有在文件中重新定义.cpp类)
- 从头文件定义嵌套类
- 使用标头文件定义MT19937和normal_distribution
- 为特定文件定义
- 从.h和.cpp文件定义纯虚拟函数会产生链接器错误吗
- C 编程从外部输入文件定义数组大小
- 编译头文件定义了一个模板类,该类还包括其他头文件