我正在尝试创建一个dll pdfium.我正在使用Visual Studio 2013(C++)我试过按照https://github.com/pvginkel/PdfiumViewer的说明但是没有用.(我试图获得一个不是PdfiumViewer的项目的pdfium dll ).我收到以下错误:
2>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppBuild.targets(1193,5): warning MSB8012: TargetPath(\build\Debug\lib\pdfium.dll) does not match the Linker's OutputFile property value (C:\build\Debug\pdfium.dll). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile).
2> Creating library \build\Debug\pdfium.lib and object \build\Debug\pdfium.exp
2>fpdfdoc.lib(doc_form.obj) : error LNK2019: unresolved external symbol __imp_CreateFontA referenced in function "public: static class CPDF_Font * __cdecl CPDF_InterForm::AddSystemFont(class CPDF_Document const *,class CFX_ByteString,unsigned …Run Code Online (Sandbox Code Playgroud) 我在使用C#使用pdfium显示pdf时遇到了一些麻烦。我读了另一个问题:
我下载了pdfiumViewer程序包,但是在编译时,它说找不到pdfium库。因此,我下载了软件包“ pdfium.net SDK”,它可以运行,但不是免费的,它是受限版本。我想知道的是:我们必须拥有软件包“ pdfium.net SDK”才能使“ pdfiumViewer”正常工作吗?
我正在为 Pdfium 库 (pdfium.dll) 构建一个 UWP 查看器。pdfium.dll 是一个 C++ 类库。在我的 Visual Studio 解决方案中,我有两个 UWP 项目。First Project(PdfiumViewer) 是一个 UWP 类库,它从 pdfium.dll 导入函数并创建用户控件。例如:
[DllImport("pdfium.dll")]
public static extern void FPDF_AddRef();
Run Code Online (Sandbox Code Playgroud)
第二个项目(PdfiumViewer.Demo)是一个 UWP Blank App,我在这里引用了第一个项目,以便我可以在这个项目中使用它的用户控件。我将 pdfium.dll 包含到我的第二个项目的 bin 文件夹中。但是当我运行程序时,我收到一个异常,说“无法加载 pdfium.dll”。
有为 .Net Windows 窗体和 WPF 应用程序开发的现有类似查看器。
我尝试通过右键单击引用 ->“添加引用”来添加 pdfium.dll 作为引用。在所有这些情况下(.Net WinForm、.Net WPF、UWP),添加它给了我一个错误。(错误:无法添加对 ....\pdfium.dll 的引用。请确保该文件可访问,并且它是有效的程序集或 COM 组件)
我以类似的方式(到 bin 文件夹)将 pdfium.dll 添加到 .Net WinForm 和 .Net WPF 中并运行它们。两种类型的应用程序查看器都运行良好。
我的问题: 由于 UWP 应用程序在沙箱中运行,是否有特殊位置可以添加此 dll(pdfium.dll)?
注意:我尝试将文件添加到不同的位置。(APPX 文件夹内、bin\Debug 文件夹内、bin\Debug\x64 内等)
我已经构建了一个WinForms应用程序,该应用程序使用PDFium打印PDF文档。我从NuGet安装了PDFium,并按预期在我的项目中创建了两个子文件夹x86和x64,每个子文件夹中都包含相关版本的pdfium.dll。我的应用程序的目标平台设置为Any CPU。
当我在Windows 10 64位计算机上以调试方式运行应用程序时,它可以完美运行。但是,当我发布该应用程序并将其真正安装在同一台计算机上时,PDFium抛出异常:
System.BadImageFormatException:试图加载格式错误的程序。(来自HRESULT的异常:0x8007000B)
经过研究后,我将应用程序的目标平台更改为x86,并从项目中删除了x64子文件夹。现在,该应用程序在发行后可以正常运行,因此问题得以解决。
但是,我想知道是否有一种方法可以使我的应用程序正常工作,以便使用适用于目标计算机的PDFium版本来支持x86和x64。如果能在支持它的机器上安装64位版本(这是我们组织中的大多数人,但我觉得如果必须选择32位版本,则我应该使用32位版本)会很好。其他,以确保兼容性)。