2013-07-25 2 views
3

마침내 Poco NetSSL을 만들었지 만 이미 첫 번째 예제가 작동하지 않습니다. 다음 스 니펫은 예외를 발생시키고 Debugger.h는 내 IDE에서 열립니다 (Visual Studio 2012). ... 다음 코드는 단지 완벽하게 작동Poco NetSSL 예외

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
NULL pointer: _pInstance [in file "c:\users\domenic\desktop\poco-1.4.6p1-all\util\include\poco\util\application.h", line 446] 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 

#include <Poco/Net/HTTPClientSession.h> 

int main() 
{ 
    Poco::Net::HTTPClientSession clientSession; 
} 

나는 OpenSSL을 함께 할 수있는 뭔가가 가정 :

#include <Poco/Net/HTTPSClientSession.h> 

int main() 
{ 
    Poco::Net::HTTPSClientSession clientSession; 
} 

이 출력됩니다. 누군가가 나를 도울 수 있기를 바랍니다. 정말 프로젝트를 시작하고 싶습니다. :(

+0

OpenSSL과 관련된 이유를 이해할 수 없습니다. OpenSSL은 C 기반 라이브러리이며 C++ 기반 라이브러리를 사용하고 있습니다. – doptimusprime

+0

Poco NetSSL은 OpenSSL을 사용합니다. 물론 C는 다른 언어이지만 다른 선택 사항은 없습니다. 왜냐하면 SSL은 단지 C 언어이기 때문입니다. 나는 예외가 util \ application.h가 발생하고 어떤 SSL 관련 파일에서도 발생하지 않는다는 것에 놀랐다. 여러분 중 누군가가 Poco 도서관에 충분한 지식을 갖고 있습니까? –

답변

4

Poco :: Net :: HTTPSClientSession (또는 Poco :: Net :: Context :: Ptr을 사용하지 않는 다른 생성자)의 기본 생성자를 사용하는 경우, Poco :: Util :: Application 인스턴스뿐만 아니라 기본 Context 객체를 만들고 Poco :: Net :: SSLManager를 초기화하거나 기본 Context를 초기화하기 위해 SSL/TLS 구성을 포함하는 구성 파일 SSLManager 자신

기본 Context와 SSLManager를 초기화하는 것은 인증서 핸들러를 생성하고, 기본 Context 객체를 생성하고, SSLManager를 초기화하는 것을 포함합니다 .Mail을 참조하고 이것이 어떻게 수행되는지 샘플을 다운로드하십시오. this :

Poco::SharedPtr<Poco::Net::InvalidCertificateHandler> pCert = 
    new Poco::Net::ConsoleCertificateHandler(false); 
Poco::Net::Context::Ptr pContext = 
    new Poco::Net::Context(
     Poco::Net::Context::CLIENT_USE, 
     "", 
     "", 
     "rootcert.pem", 
     Poco::Net::Context::VERIFY_RELAXED, 
     9, 
     false, 
     "ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH"); 
SSLManager::instance().initializeClient(0, pCert, pContext); 
+0

고마워, 그게 다야! –