我堅持調試gpgme。 當我將日誌級別升至9時,我會得到發生錯誤的確切位置。gpgme_op_export_keys無效值
GPGME 2017-06-02 16:25:42 <0x3968> gpgme_op_export_keys: enter: ctx=08A19D68, mode=0x10, keydata=089C4578
GPGME 2017-06-02 16:25:42 <0x3968> gpgme_op_export_keys: check: ctx=08A19D68, keys[0] = 089C4190 (9E799EB266729E930BE7A22B7650B73C8AD5436D)
GPGME 2017-06-02 16:25:42 <0x3968> gpgme_op_export_keys: error: Invalid value <GPGME>
我有一個使用gpgme的C++庫。當我在Boost.Test應用程序中使用庫時,錯誤不會發生。當我在C#應用程序中使用庫時,會發生錯誤。
我正在做的是從我的鑰匙圈中導出一個私人的ascii裝甲鑰匙。 它總是相同的指紋。我可以從哪裏出發,是否有需要在gpgme上驗證以找出差異的事情?
編輯: 我有關於該問題的其他信息。 我用我的應用程序重新分配一些gpgme文件。 即:libassuan-0.dll
,libgpg-error-0.dll
,libgpgme-11.dll
。
當我將我的整個安裝複製到同一個文件夾中時,相同的調用運行時沒有錯誤。
這使我相信有一個背景設置運行時,我加載庫。閱讀dokumentation爲gpgme_set_global_flag
我可以看到有一些條目引用gpgconf
。
我需要導出哪些內容才能允許使用繁榮配置運行我的應用程序?
編輯2: gpgme.log與temprorary文件夾創建中失敗運行的成功運行不同。
好:
_gpgme_io_spawn: check: path=00444FB8, CreateProcess ready: hProcess=000005D0, hThread=000005CC, dwProcessID=6184, dwThreadId=16268
不好:
_gpgme_io_spawn: check: path=001850E8, CreateProcess failed: ec=87
兩個文件夾中繞相同的命名方案。 我不確定什麼是失敗的。編輯: 我慢慢地陷入了瘋狂。該設置似乎不確定。偶爾會按預期設置功能。有時它不會。我確信我有最新的庫 - 安裝gpg4win並從那裏複製庫 - 現在調試日誌不顯示調試條目或gpg停止查找所有路徑。它現在在我嘗試使用OpenPGP後的階段失敗。我調查的原因還是一樣的。