C++ Dll linking Curl
C++ Dll linking Curl
我正在尝试创建一个使用curl库的非常简单的函数的dll。一切都很好,唯一的问题是,curl链接似乎不能正常工作。
我使用相同的链接,预处理器定义和包含目录,就像在我的可执行项目中,它工作得很好,所以我很确定它不是关于我的链接或库的二进制文件。
链接库到dll有什么特殊的属性吗?
我的最小示例代码:
c++ Mainfile:#include "main.h"
#include <Windows.h>
#include <curlpp/cURLpp.hpp>
#include <curlpp/Easy.hpp>
#include <curlpp/Info.hpp>
#include <curlpp/Options.hpp>
#include <curlpp/Exception.hpp>
namespace CurlDll
{
void CallHost::Try()
{
curlpp::Easy request;
request.setOpt(new curlpp::options::UserAgent("Mozilla/4.0"));
request.setOpt(new curlpp::options::AutoReferer(true));
request.setOpt(new curlpp::options::FollowLocation(true));
request.setOpt(new curlpp::options::Url("http://xml.utrace.de"));
request.perform();
MessageBox(0,"lololowwwwwwwwwwwl", "wqgqwwwwwgq", MB_OK |MB_ICONINFORMATION);
}
}
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason)
{return 1;}
头文件:
#ifdef MAIN_EXPORTS
#define MAIN_API __declspec(dllexport)
#else
#define MAIN_API __declspec(dllimport)
#endif
#include <iostream>
namespace CurlDll
{
class CallHost
{
public:
static MAIN_API void Try();
};
}
我得到以下链接错误@drescherjm(我只发几张,我想这应该足够了)
ERROR 2 ERROR LNK2001: unresolved external Symbol"__imp__WSAStartup@8"。
ERROR 11 ERROR LNK2001: unresolved external Symbol"__imp__WSAGetLastError@0"。
ERROR 33 ERROR LNK2001: unresolved external Symbol"__imp__setsockopt@20"。
链接器错误告诉您链接器无法找到这些函数的定义:WSAStartup
, WSAGetLastError
, setsockopt
。这些函数在导入库Ws2_32.lib
中定义。您需要将该导入库提供给链接器。
这些信息在函数的文档中给出。例如,WSAStartup
的文档。在文档主题的底部是一个列出需求的表格。注意所需的库Ws2_32.lib
。
符号WSAStartup, WSAGetLastError和setsocketopt是Ws2_32中Windows API的一部分。库(例如参见http://msdn.microsoft.com/en-gb/library/windows/desktop/ms742213(v=vs.85).aspx)
应该包含ws2_32。lib作为链接DLL时的附加库。如果你使用的是Visual Studio,很可能搜索路径已经找到了;把它作为一个额外的库。
所以实际上,我怀疑你没有使用与。exe 相同的链接器选项如果你正在构建。exe或。dll,链接器需要确保它可以在链接时解析所有已知的符号。
- 在C++中使用cURL和多线程
- 如何检查cURL是否成功登录?c ++
- Linking library C++
- 带有进度表的 curl 多接口程序
- 使用 CURL 上传构建
- 使用 curl_easy_cleanup(curl) 时收到未经处理的 NULL 异常
- Curl with vcpkg
- curl 请求的用户输入
- 如何使用 curl 将 POST 请求从 python 重写为 C++
- Linking DirectX
- Linking SDL2 - CLion - Ubuntu 16.04 - G++
- 在 C++/C 中使用 CURL 发出带有数据文件的 GET HTTP 请求
- 如何将带有 -F 选项的 curl 命令转换为 libcurl
- 从 C++ 调用 cURL 命令会返回意外的错误代码,如 1792 和 6656
- C++:如何通过 curl 调用使用 HTTP post 请求发送二进制数据(protobuf 数据)
- C++ CURL 库链接器错误,但包含正确的库
- C++中的 cURL POST 请求
- c++curl返回413请求实体过大,但是post大小远小于max大小
- 如何在 curl 代码C++设置授权持有者标头?我得到的授权不足,即使它在命令行上工作
- C++ Dll linking Curl