无法在Windows上运行OpenSSL(相同的代码在Linux上运行正常)

时间:2014-04-18 13:30:24

标签: windows openssl

我最近为Linux(VirtualBox)编写了一个使用openSSL的桌面应用程序。我只是使用这些库来加密和解密文件(没有网络),而且效果很好。现在,我正在尝试创建一个Windows版本,这是我做过的最令人沮丧的事情之一。

在线社区没有太多帮助(许多提议的解决方案,完全不同,并且它们都不适合我)。

具体细节:

应用程序编译并运行,但是当我到达这一行时:

EVP_EncryptInit(&ctxE, EVP_aes_256_cbc(), constKey, constIv);

它因分段错误而崩溃。

这是一场噩梦般的追逐。任何帮助将不胜感激。感谢。

1 个答案:

答案 0 :(得分:2)

您没有发布任何代码,所以我只能猜测,但如果您的程序在Linux上工作正常并且在Windows上完全相同的代码段错误,那么您应该查看这些最常见的问题:

  • 您的应用程序必须链接与您的openssl链接的相同版本的C运行时库和/或您需要包含OpenSSL_Applink。还有关于此主题的常见问题解答条目:I've compiled a program under Windows and it crashes: why?
  • 64位Windows和64位Linux是两个不同的平台,因此它们需要在C / C ++代码中正确处理,即64位Linux上需要8个字节,而64位Windows上只需要4个字节没有sizeof(long)的错误malloc会导致严重的问题等。