将问题与Poco库联系起来

时间:2014-04-17 07:07:45

标签: c++ dll linker poco

我使用Visual Studio 2012并且开始使用poco库时遇到了问题。 以下代码:

#include "stdafx.h"
#include "Poco/StreamCopier.h"
#include "Poco/Net/SocketAddress.h"
#include "Poco/Net/StreamSocket.h"
#include "Poco/Net/SocketStream.h"
#include <iostream>
int main(int argc, char** argv)
{
Poco::Net::SocketAddress sa("www.appinf.com", 80);
Poco::Net::StreamSocket socket(sa);
Poco::Net::SocketStream str(socket);
str << "GET / HTTP/1.1\r\n"
"Host: www.appinf.com\r\n"
"\r\n";

str.flush();
Poco::StreamCopier::copyStream(str, std::cout);
return 0;
}

引发以下错误:

C:\Users\christof\Documents\Visual Studio 2012\Projects\FTP\poco-1.4.6p3\poco-1.4.6p3\bin\PocoNet.dll : fatal error LNK1107: Invalid or broken file: Reading 0x2C0 not possible.

PocoNet.dll恰好位于正确的位置。我在附加依赖项和lib位置中添加了dll。但我仍然得到同样的错误。 我认为这是一个绝对的初学者失败,因为我是一个绝对的初学者,使用c ++和Visual Studio。我认为我没有正确联系,但我不知道更好。 我希望有一个人可以帮助我。提前致谢,祝你有个愉快的一天。

1 个答案:

答案 0 :(得分:0)

首先,您的调用应用程序必须加载PocoFoundation.dll,之后您可以使用课程Poco::SharedLibrary加载PocoNet.dllPoco::ClassLoader 实例化您需要的对象。 如果定义PocoXxxx.dll,则可以静态加载每个POCO_STATIC,如果定义POCO_DLL,则可以动态加载{{1}}。 有关更多信息,请参阅PocoSharedLibraries.pdf