【问题标题】:Importing SSL dll into project将 SSL dll 导入项目
【发布时间】:2014-12-23 23:49:55
【问题描述】:

我有一个从旧系统导入的项目。 这段代码问题最大

PacketGroup = new ArrayList();
Crypto = new GameCrypto(ASCIIEncoding.ASCII.GetBytes(STRING_CRYPTO));
KeyExchance = new OpenSSL.Crypto.DH();
KeyExchance.G = RANDOM_INT;
KeyExchance.P = OpenSSL.Core.BigNumber.FromHexString("KEY__KEY_KEY\0");
KeyExchance.GenerateKeys();
NewServerIV = GenerateIV();
NewClientIV = GenerateIV();

一开始我收到错误:

System.TypeInitializationException: 'OpenSSL.Native' 的类型初始化器 重新例外。 ---> System.Exception: libeay32.dll 的无效版本,期望 0.9.8a 开发,得到:1.0.0 发布

我在项目中导入了最新的 SSL 库并得到了这个错误(在 Crypto = new GameCrypto() 行上)

System.DllNotFoundException: 无法加载 DLL 'libeay32.dll': 应用程序无法启动 因为它的并排配置不正确。请查看应用程序事件日志或使用 命令行 sxstrace.exe 工具了解更多详细信息。 (HRESULT 异常:0x800736B1)

在 PROJECT_NAME.Native.BF_set_key(IntPtr _key, Int32 len, Byte[] 数据) 在 PATH\Main\Blowfish.cs:line 85 中的 PROJECT_NAME.Main.Blowfish.SetKey(Byte[] data) 在 PATH\Main\Blowfish.cs:line 15 中的 PROJECT_NAME.Main.GameCrypto..ctor(Byte[] key) 在 PATH\Main\GameClient.cs:line 48 中的 PROJECT_NAME.Main.GameClient..ctor(Boolean Robot) 处

我能够解决这个问题,但我被困在这个问题上(在 new OpenSSL.Crypto.DH() 线上)

System.TypeInitializationException:“OpenSSL.Core.Native”的类型初始化程序引发了异常。 ---> System.DllNotFoundException: Unable to load DLL 'ssleay32': The operating system cannot run 。 (HRESULT 异常:0x800700B6)

在 OpenSSL.Core.Native.SSL_library_init() 在 OpenSSL.Core.Native..cctor() --- 内部异常堆栈跟踪结束 --- 在 OpenSSL.Core.Native.DH_new() 在 OpenSSL.Crypto.DH..ctor() 在 PATH\Main\GameClient.cs:line 49 中的 PROJECT_NAME.Main.GameClient..ctor(Boolean Robot) System.NullReferenceException:对象引用未设置为对象的实例。 在 PATH\Main\GameWorker.cs:line 33 中的 PROJECT_NAME.Main.GameWorker.ConnectionHandler(StateObj S) 处

【问题讨论】:

    标签: c# c++ .net ssl visual-studio-project


    【解决方案1】:

    您的应用程序目录中需要libeay32.dlllibssl32.dllssleay32.dll 的副本

    1. 将非托管 dll 作为文件或链接文件添加到您的项目中。 (右键单击项目 -> 添加 -> 现有文件,然后添加或添加为链接)。

    2. 在解决方案资源管理器中选择文件。在属性窗口中将构建操作设置为始终复制。

    不要忘记非托管 DLL 本身可能需要其他非托管 DLL。如果你忘记添加这些,你可以得到 完全相同的错误。如果你是,你可以使用依赖walker来帮助你 不确定依赖项是什么。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-27
      • 1970-01-01
      • 1970-01-01
      • 2016-12-12
      • 2011-08-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多