假设,如果我包含 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。
引用自WinINet vs. WinHTTP在 MSDN 上:
With a few exceptions, WinINet is a superset of WinHTTP. When selecting between the two, you should use WinINet, unless you plan to run within a service or service-like process that requires impersonation and session isolation.
简而言之,这两个接口(interface)是不兼容的,因为它们不必兼容。两者是互斥的。
如果出于某种原因你需要两者,要么将实现分成单独的模块,要么按照 Harry Johnston 和 IInspectable 的评论中的建议,使用 #pragma push_macro
保存宏。然后 #undef
它。
关于c++ - INTERNET_SCHEME_HTTPS 在两个头文件中的定义如何不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32726887/