【1】warning C4150: 删除指向不完整“ssl_ctx_st”类型的指针;没有调用析构函数
SSL_CTX *ctx;
SSL *ssl;
delete ssl;
delete ctx;
ctx 和 ssl 是不能直接用delete释放内存的,析构函数对调用的类是不可见的,必须以如下方式释放内存:
SSL_shutdown(ssl);
SSL_free(ssl);
SSL_CTX_free(ctx);
【2】warning C4251: “CSSLPort::m_clsSSLVec”: class“std::vector<_Ty>”需要有 dll 接口由 class "CSSLPort"的客户端使用
std::vector<CSSLPortMeta *> *m_pclsSSLVec;
其中class CSSLPortMeta 定义如下:
.h
class COMMUNICATION_API CSSLPortMeta
{
public:
SOCKET m_hSocket;
SSL *m_pSSL;
public:
CSSLPortMeta(void);
virtual ~CSSLPortMeta(void);
void SetData(SOCKET socket, SSL *ssl);
};
.cpp
CSSLPortMeta::CSSLPortMeta(void)
{
m_pSSL = NULL;
}
CSSLPortMeta:: ~CSSLPortMeta(void)
{
if(m_pSSL!=NULL)
{
SSL_shutdown(m_pSSL);
SSL_free(m_pSSL);
}
}
void CSSLPortMeta::SetData(SOCKET socket, SSL *ssl)
{
m_hSocket = so