4

我想使用 Metro Style App c# 中的 gsdll32.dll。我加载dll如下:

[DllImport("gsdll32.dll", EntryPoint = "gsapi_delete_instance")]
private static extern void gsapi_delete_instance(IntPtr instance);

[DllImport("gsdll32.dll", EntryPoint = "gsapi_revision")]
private static extern int gsapi_revision(ref GS_Revision pGSRevisionInfo, int intLen);        

[DllImport("gsdll32.dll", EntryPoint = "gsapi_set_stdio")]
private static extern int gsapi_set_stdio(IntPtr lngGSInstance, StdioCallBack gsdll_stdin, StdioCallBack gsdll_stdout, StdioCallBack gsdll_stderr);

但是当我尝试加载 dll 时未找到异常发生。我已经把它放在调试文件中。但它确实有效。

我从这个链接引用。

4

2 回答 2

2

这是可能的,但是:

  • gsdll32.dll 是否针对 WinRT SDK 编译?
  • gsdll32.dll是否通过App认证?
  • 你是否在你的包中包含了dll?

如果任何这些问题的答案是“否”,那么您的代码将无法正常工作。

于 2012-10-02T14:16:43.260 回答
0

从源代码构建 Ghostscript(PC 版)
Microsoft Environment for WinRT

Ghostscript 可以以 win32 DLL 的形式构建,以在 Windows 运行时应用程序或 Windows 运行时组件中使用。为 WinRT 构建需要使用 Microsoft Visual Studio 2012。在目录 winrt 中有一个可以加载到 VS 2012 的解决方案文件

WinRT 应用程序或组件应包含来自 gs/psi 的 iapi.h 并与来自 gs/debugbin 或 gs/releasebin 的 gsdll32metro.lib 链接。此外,任何直接或通过组件使用 ghostscript 的应用程序都应将 gsdll32metro.dll 添加为“内容”。包含 dll 是必要的,以便将其与应用程序打包在一起。如果希望能够在 ghostscript 上运行调试器,那么 gsdll32metro.pdb 也应该作为内容添加。

来自GhostScript 9.21 文档

是的,我确实意识到这个问题已经有五年历史了。

于 2017-07-12T17:16:17.373 回答