Я возвращаюсь в C ++ после 15-летнего перерыва и пытаюсь вспомнить, как сделать переменные / функции из #include доступными для функций void.В настоящее время я использую один .cpp, но экспортирую функцию в отдельный .cpp для вызова по мере необходимости.
У меня есть следующее:
// C++
#include <stdio.h>
#include <iostream>
#include <math.h>
#include <errno.h>
#include <cstring>
// OpenSSL
#include <evp.h>
#include <aes.h>
#include <rand.h>
#include <err.h>
#include <buffer.h>
using namespace std;
typedef struct _cipher_params_t {
unsigned char *key;
unsigned char *iv;
unsigned int encrypt;
const EVP_CIPHER *cipher_type;
}cipher_params_t;
EVP_CIPHER находится вфайл evp.h, но, похоже, он не может его найти.Кажется, мой путь включения работает так, как я вижу / выбираю модули, когда набираю #include <>, и он находит другие переменные в других файлах include (aes.h).
Кроме того, в приведенной ниже функции элементы из evp.h не могут быть не идентифицированы, например EVP_CIPHER_CTX * ctx, даже если они объявлены, в то время как другие элементы разрешены из других включений, таких как err.h.
void file_encrypt_decrypt(cipher_params_t *params, FILE *ifp, FILE *ofp) {
/* Allow enough space in output buffer for additional block */
int cipher_block_size = EVP_CIPHER_block_size(params->cipher_type);
unsigned char in_buf[BUFSIZE], out_buf[in_buf + cipher_block_size];
int num_bytes_read, out_len;
EVP_CIPHER_CTX *ctx;
:
:
Я использую Visual Studio 2017 Enterprise с openSSL.Какие-либо предложения?Неправильный параметр в параметрах конфигурации ссылки?
Любые предложения приветствуются!Спасибо Рита.