1
我想寫一個C++ DLL,它使用openSSL來保護到服務器的連接。在VisualC++ DLL中的OpenSSL
我genuinly的事實,該代碼
#include "stdafx.h"
#include <string.h>
#include <iostream>
//SSL stuff
#include <openssl/ssl.h>
#include <openssl/err.h>
#include <openssl/pem.h>
#include <openssl/x509.h>
#include <openssl/x509_vfy.h>
#include <openssl/ossl_typ.h>
#include <openssl/applink.c>
//Winsock stuf
#pragma comment(lib, "ws2_32.lib")
{... Create a method in which we set up the SSL connection ...}
char* tSend = "{\"reqtype\":\"keyexchange\"}";
int sendSize = strlen(tSend);
int net_tSend = htonl(sendSize);
SSL_write(ssl, &net_tSend, 4);
SSL_write(ssl, tSend, sendSize);
工作正常在一個控制檯應用程序,但在我的DLL崩潰不解。 這裏是我的例外:
異常在TestsForPKCSDLL.exe在0x00007FF865207DA0(的libeay32.dll)拋出:0000005:訪問衝突讀取位置0x0000000000000000。
非常感謝您的時間。
調試器告訴你什麼? –
訪問/接近0處的地址時的AccessViolation表示正在訪問NULL指針。在你的代碼中找到NULL指針並修復它。最可能的罪魁禍首是你的'ssl'指針,或者它所鏈接的'SSL_CTX'或'BIO'。 –
究竟是什麼問題(除了你感到困惑之外)? – jww