'3rdparty.exe '(win32): разгрузка' c: \ my_dll.dll '< /p>
Теперь, если я добавлю этот код: < /p>
Код: Выделить всё
const std::string& public_key = my_public_key;
auto bio = BIO_new(BIO_s_mem());
if (!BIO_write(bio, public_key.c_str(), static_cast(public_key.size())))
{
error();
}
EVP_PKEY* pkey = nullptr;
if (!PEM_read_bio_PUBKEY(bio, &pkey, nullptr, nullptr) || pkey == nullptr)
{
error();
}
if (pkey)
{
EVP_PKEY_free(pkey);
}
if (bio)
BIO_free_all(bio);
< /code>
Остановка моего DLL, разгрузка больше не происходит.
Пробовал несколько вещей, используя пользовательский контекст: < /p>
OSSL_LIB_CTX* lib_ctx = OSSL_LIB_CTX_new();
if (!PEM_read_bio_PUBKEY_ex(bio, &pkey, nullptr, nullptr, lib_ctx, nullptr) || pkey == nullptr)
{
error();
}
...
OSSL_LIB_CTX_free(lib_ctx);
< /code>
Также различные методы очистки: < /p>
EVP_cleanup(); // Clean up EVP layer (legacy compatibility)
CRYPTO_cleanup_all_ex_data(); // Clean up extra data
ERR_free_strings(); // Free error strings
SSL_COMP_free_compression_methods(); // Free compression methods (if SSL is used)
Как именно третья сторона останавливает мою dll, я не знаю, и у меня нет доступа к этому коду.< /p>
Я использую SSL: OpenSSL 3.2.1, 30 января 2024 г.
Я статически связываюсь с библиотеками libcrypto.lib и libssl.lib.
Я использую следующий протокол SSL: OpenSSL 3.2.1, 30 января 2024 г.
Я статически связываюсь с библиотеками libcrypto.lib и libssl.lib.
п>
Подробнее здесь: https://stackoverflow.com/questions/793 ... ad-win-dll
Мобильная версия