如何解决用 WinHttp 替换 WinInet
我有一个旧的 C++Builder 项目,它使用 WinInet.lib
函数来创建 FTP 连接。我现在想用 WinHttp 替换它,因为 Windows Server 2019 不支持 WinInet。
为了替换 WinInet,我在主 cpp 文件中注释掉了 #pragma link "WININET.LIB"
。然后,在我使用这些函数的文件中,添加了我需要的头文件:
#include <vcl.h>
#pragma hdrstop
// Testing 2021-6-14
#include <windows.h>
#include <winhttp.h>
// Testing 2021-6-14
/* Followed by some more #include */
编译后,我收到 E2238/E2344 错误(“Multiple declaration for.../Earlier declaration of...”) - 我什至尝试在此文件中注释掉旧的 WinInet 函数。不知何故,我的项目仍然链接到 WinInet.lib
,“取消链接”它的最简单方法是什么?
编辑 1:构建后的错误消息
[bcc32 Error] winhttp.h(115): E2238 Multiple declaration for 'HTTP_VERSION_INFO'
Full parser context
Export.cpp(32): #include c:\program files (x86)\embarcadero\studio\21.0\include\windows\sdk\winhttp.h
[bcc32 Error] wininet.h(486): E2344 Earlier declaration of 'HTTP_VERSION_INFO'
Full parser context
Export.cpp(32): #include c:\program files (x86)\embarcadero\studio\21.0\include\windows\sdk\winhttp.h
[bcc32 Error] winhttp.h(115): E2238 Multiple declaration for 'LPHTTP_VERSION_INFO'
Full parser context
Export.cpp(32): #include c:\program files (x86)\embarcadero\studio\21.0\include\windows\sdk\winhttp.h
[bcc32 Error] wininet.h(486): E2344 Earlier declaration of 'LPHTTP_VERSION_INFO'
Full parser context
Export.cpp(32): #include c:\program files (x86)\embarcadero\studio\21.0\include\windows\sdk\winhttp.h
[bcc32 Error] winhttp.h(122): E2238 Multiple declaration for 'INTERNET_SCHEME'
Full parser context
Export.cpp(32): #include c:\program files (x86)\embarcadero\studio\21.0\include\windows\sdk\winhttp.h
[bcc32 Error] wininet.h(305): E2344 Earlier declaration of 'INTERNET_SCHEME'
Full parser context
Export.cpp(32): #include c:\program files (x86)\embarcadero\studio\21.0\include\windows\sdk\winhttp.h
[bcc32 Error] winhttp.h(122): E2238 Multiple declaration for 'LPINTERNET_SCHEME'
Full parser context
Export.cpp(32): #include c:\program files (x86)\embarcadero\studio\21.0\include\windows\sdk\winhttp.h
[bcc32 Error] wininet.h(305): E2344 Earlier declaration of 'LPINTERNET_SCHEME'
Full parser context
Export.cpp(32): #include c:\program files (x86)\embarcadero\studio\21.0\include\windows\sdk\winhttp.h
[bcc32 Error] winhttp.h(167): E2238 Multiple declaration for 'URL_COMPONENTS'
Full parser context
Export.cpp(32): #include c:\program files (x86)\embarcadero\studio\21.0\include\windows\sdk\winhttp.h
[bcc32 Error] wininet.h(582): E2344 Earlier declaration of 'URL_COMPONENTS'
Full parser context
Export.cpp(32): #include c:\program files (x86)\embarcadero\studio\21.0\include\windows\sdk\winhttp.h
[bcc32 Error] winhttp.h(167): E2238 Multiple declaration for 'LPURL_COMPONENTS'
Full parser context
Export.cpp(32): #include c:\program files (x86)\embarcadero\studio\21.0\include\windows\sdk\winhttp.h
[bcc32 Error] wininet.h(583): E2344 Earlier declaration of 'LPURL_COMPONENTS'
Full parser context
Export.cpp(32): #include c:\program files (x86)\embarcadero\studio\21.0\include\windows\sdk\winhttp.h
[bcc32 Error] winhttp.h(169): E2015 Ambiguity between 'URL_COMPONENTS' and 'Winapi::Wininet::URL_COMPONENTS'
Full parser context
Export.cpp(32): #include c:\program files (x86)\embarcadero\studio\21.0\include\windows\sdk\winhttp.h
[bcc32 Error] winhttp.h(169): E2238 Multiple declaration for 'URL_COMPONENTSW'
Full parser context
Export.cpp(32): #include c:\program files (x86)\embarcadero\studio\21.0\include\windows\sdk\winhttp.h
[bcc32 Error] wininet.h(577): E2344 Earlier declaration of 'URL_COMPONENTSW'
Full parser context
Export.cpp(32): #include c:\program files (x86)\embarcadero\studio\21.0\include\windows\sdk\winhttp.h
[bcc32 Error] winhttp.h(170): E2238 Multiple declaration for 'LPURL_COMPONENTSW'
Full parser context
Export.cpp(32): #include c:\program files (x86)\embarcadero\studio\21.0\include\windows\sdk\winhttp.h
[bcc32 Error] wininet.h(577): E2344 Earlier declaration of 'LPURL_COMPONENTSW'
Full parser context
Export.cpp(32): #include c:\program files (x86)\embarcadero\studio\21.0\include\windows\sdk\winhttp.h
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。