我正在嘗試翻譯這個 qpdf 命令:qpdf --qdf --object-streams=disable input.pdf editable.pdf進(jìn)入使用 qpdf dll 時所需的等效方法調(diào)用(可從此處獲得:https ://sourceforge.net/projects/qpdf/ )。我通過 dumpbin 運(yùn)行 qpdf dll 以獲取函數(shù)名稱,通過查看包含在 c++ 項(xiàng)目中的頭文件,我可以看到函數(shù)的參數(shù)。例如,傳遞上面的 --object-streams 選項(xiàng)所需的函數(shù)(據(jù)我所知)是這個函數(shù):void setObjectStreamMode(qpdf_object_stream_e);從 C++ 頭文件變成:[DllImport("qpdf21.dll")]static extern void _ZN10QPDFWriter19setObjectStreamModeE20qpdf_object_stream_e(int stateEnum);在 C# 文件中。問題是當(dāng)我使用上述功能時,我得到一個AccessViolationException: 試圖讀取或?qū)懭胧鼙Wo(hù)的內(nèi)存錯誤,這讓我覺得我需要以某種方式創(chuàng)建一個 QPDF 對象,但我從未使用過面向?qū)ο蟮?pinvokes,所以我不知道如何在 c# 中訪問該對象。如果有人已經(jīng)熟悉在 C# 中使用 dll,甚至在 C++ 中,并且可以告訴我調(diào)用以復(fù)制命令的正確函數(shù),我將不勝感激!
- 2 回答
- 0 關(guān)注
- 284 瀏覽
添加回答
舉報(bào)
0/150
提交
取消