我正在尝试翻译这个 qpdf 命令:qpdf --qdf --object-streams=disable input.pdf editable.pdf进入使用 qpdf dll 时所需的等效方法调用(可从此处获得:https ://sourceforge.net/projects/qpdf/ )。我通过 dumpbin 运行 qpdf dll 以获取函数名称,通过查看包含在 c++ 项目中的头文件,我可以看到函数的参数。例如,传递上面的 --object-streams 选项所需的函数(据我所知)是这个函数:void setObjectStreamMode(qpdf_object_stream_e);从 C++ 头文件变成:[DllImport("qpdf21.dll")]static extern void _ZN10QPDFWriter19setObjectStreamModeE20qpdf_object_stream_e(int stateEnum);在 C# 文件中。问题是当我使用上述功能时,我得到一个AccessViolationException: 试图读取或写入受保护的内存错误,这让我觉得我需要以某种方式创建一个 QPDF 对象,但我从未使用过面向对象的 pinvokes,所以我不知道如何在 c# 中访问该对象。如果有人已经熟悉在 C# 中使用 dll,甚至在 C++ 中,并且可以告诉我调用以复制命令的正确函数,我将不胜感激!
2 回答
- 2 回答
- 0 关注
- 266 浏览
添加回答
举报
0/150
提交
取消