0

我正在尝试构建一个 DLL,它需要从 openssl 包中引用一个名为 libeay32.dll 的库。我似乎无法将其添加为属性页-> 通用属性-> 添加新引用下的引用,因为它给出错误“无法添加对文件 'C:\OpenSSL\libeay32.dll' 的引用,因为它既不是 . NET 程序集或注册的 Active X 控件。当我使用 Linker->Input->Additional Dependencies 并设置静态库“C:\OpenSSL\lib\libeay32.lib”时,我可以编译和运行它。但最终结果是我还需要包含 libeay32.dll。我做错了什么?

4

2 回答 2

4

你做的一切都是正确的。“添加引用”适用于 .NET 程序集(以及通过 .NET COM 互操作使用的 COM 组件)。您尝试的第二种方法是对本机代码执行此操作的正确方法,但libeay32.lib不是静态库;它是 DLL 的导出库。

于 2009-12-01T02:44:26.163 回答
1

正如 Pavel 所提到的,libeay32.lib 不是您的应用程序可以静态链接并运行的完整库。它用于解析对动态库、dll 的引用。因此,您的应用程序仍然需要 dll 才能运行。

http://msdn.microsoft.com/en-us/library/f0z8kac4.aspx

于 2009-12-01T03:10:36.893 回答