在VB.NET中使用由.NET程序集调用的本机DLL

时间:2014-04-16 10:30:26

标签: .net vb.net dll

我正在尝试在我的VB.NET项目中使用第三方DLL(来自3-Heights的PDFExtract)。该软件包附带2个.NET DLL,我应该根据手册添加为项目中的引用,并且我需要将第三个本机DLL作为现有项添加到项目中。

帮助说:“3-Heights™PDF Extract API不提供纯.NET解决方案。而是由.NET程序集和一个本机DLL组成,后者被添加到项目中。 .NET程序集。在安装和部署工具时必须考虑到这一点。“

我完全按照步骤操作但是当我尝试从DLL初始化对象时出现以下错误: “MyProject.exe中发生了'System.TypeInitializationException'类型的未处理异常 附加信息:'Pdftools.PdfExtract.Document'的类型初始化程序引发了异常。“

根据帮助手册,这表明Windows无法找到本机DLL。

下载的软件包包含示例VB.NET项目,令人惊讶地运行没有问题。我比较了两个项目,找不到与问题有关的任何不同内容。如果我将该示例项目作为起点,然后在其上添加我的文件并调用我的过程,代码将起作用!必须有一些我在项目中缺少的设置或链接。有什么想法吗?

我的问题是我想创建一个DLL,所以我需要一个新的类库项目。因此,我无法从作为Windows窗体项目的示例项目开始。

我的问题是:是否有任何隐藏的设置或DLL的链接可以在示例项目中使用而不是我的?否则,我所看到的原因可能是什么?

1 个答案:

答案 0 :(得分:0)

好吧,受到bansi的启发,我在“编译器”选项卡中查看了工作正常的示例项目与我的项目之间的差异,并且在标有&#34的复选框中找到了差异;首选32位&#34 ;.这在示例中被禁用并显示为灰色但在我的项目中被选中(可能是因为项目设置为使用.NET Framework 4并且默认使用4.5)。

我取消选中"首选32位"复选框和选定的.NET框架4然后一切都很酷!不确定为什么会导致问题,但至少我的项目现在编译并运行没有错误。

再次感谢bansi。