类型初始化使用 OpenSsl.net 异常
TypeInitializationException using OpenSsl.net
我正在尝试使用 OpenSsl.net 但是我得到了一个TypeInitializationException,这让我感到困惑。设置为:
- 我有一个控制台应用程序,它有一个对 openssl.net 的项目引用(实际上我正在使用这里的叉子:https://github.com/marcominetti/openssl-net)
- 我已经在我的机器上编译了openssl(用于32位窗口),并将libeay32.dll和ssleay32.dll复制到控制台应用程序的bin/Debug文件夹中。
- bin/调试文件夹还包含 libcrypto.so
- 我的机器是 64 位的(openssl 的 64 位构建失败,但这是另一个问题)
- 控制台应用程序设置为 x86 的平台目标
但是,在运行时,我得到一个包含详细信息的TypeInitializationException:
无法加载 DLL 'librypto':找不到指定的模块。(HRESULT的例外:0x8007007E)
我做错了什么?
所以我终于想通了。
在更仔细地查看了 fork 中的代码后,它看起来似乎更适合 Linux 环境而不是 Windows(这是我正在使用的操作系统 - 可能应该提到......
在本机中.cs它将DLLNAME指定为libcrypto而不是libbeay32。看起来这可能是针对linux系统而不是Windows的。
托管开放 ssl 的 app.config 确实包括一些 dllmap 部分,这些部分似乎试图将 libcrypto 的请求重定向到 libeay32.dll但这似乎不起作用(我不知道这是否仅适用于单声道?
我已将 DLLNAME 设置为 libeay32,一切似乎都按预期工作。
相关文章:
- 处理多个异常集合的C++方法
- 我在c++代码中生成了一个运行时#3异常
- 孤立代码块在结构中引发异常
- C++中的赋值发生,尽管右侧出现异常
- 从构造函数抛出异常时如何克服内存泄漏
- 异常属于C++中的线程还是进程
- 当类定义不可见时捕获异常
- 引发异常:读取访问冲突**dynamicArray**为0x1118235.发生
- 为什么异常不退出程序?
- 为什么我应该在异常处理中使用std::cerr而不是std::cout
- 加载与引用 .NET DLL 位于同一文件夹中的引用的 .NET DLL 时"Not found"异常
- 使用 .NET 4.5 和混合程序集时出现未知异常
- 在 .Net 应用程序中调用 C++ DLL 时出现系统访问冲突异常
- 类型初始化使用 OpenSsl.net 异常
- .NET 4.0在XP上出现未知异常,但在Windows 7上运行良好
- C#.Net 4.0应用程序中托管的C++ActiveX控件中出现Xml.Serializer非法强制转换异常
- 在.net外部组件中使用c++本地dll抛出异常
- C++是否等效于 .NET 的未实现异常?
- . net异常处理程序导致Visual c++ 6.0异常上的堆栈溢出
- 调试.net web应用程序中的bad_alloc异常