'3rdparty.exe '(win32): разгрузка' c: \ my_dll.dll '< /p >
< /blockquote>
Теперь, если я добавлю этот код: < /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);
Код: Выделить всё
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)
< /code>
Но ничего не помогает. < /p>
Я не знаю точно, как третья сторона делает остановку моего DLL, и у меня нет доступа к этому Code.
ssl, который я использую: os: openssl 3.2.1 30 января 2024
i СТИТИЧЕСКАЯ ССЫЛКА С libcrypto.lib Подробнее здесь: https://stackoverflow.com/questions/793 ... ad-win-dll
Мобильная версия