Excel64ビット-dbghelp-c/c++ comアドインは、loadlibraryメソッドで例外をスローします
みなさん、こんにちは
Office Excel 64BIT(現在のversionはOffice365 MSO 64BIT)で使用したいC++で開発されたcomアドインがあります.このcomでは、LoadLibraryを呼び出して、ビジネスロジックを含むライブラリをロードしています.
これを行うと、次の例外がデバッガーでスローされます:
4534:7058 @ 159255234-LdrpGetProcedureAddress-情報:プロシージャ「RtlInterlockedFlushSList」を名前で検索しています
4534:7058 @ 159255234-LdrpNameToOrdinal-警告:プロシージャ"SymSetDiaSession"がDLLのベース0x00007FFF56040000に見つかりませんでした.
4534:7058 @ 159255234-LdrpReportError-エラー:エクスポートの検索 "SymSetDiaSession"for DLL"C:\WINDOWS\SYSTEM32\dbgeng.dll
"はステータス0xc0000139で失敗しました.
4534:7058 @ 159255234-LdrpGenericExceptionFilter-エラー:関数LdrpSnapModuleで例外0xc0000139が発生しました
例外レコード:.exr 00000076C64F9AB0
コンテキストレコード:.cxr 00000076C64F95C0
Excel.EXEの0x00007FFFB51BBEB8(ntdll.dll)で例外がスローされました:0xC0000139:エントリポイントが見つかりません.
'Excel.EXE'(Win32):アンロードされた'C:\Windows\System32\wsock32.dll'
DLLのロードプロセスで検索すると、dbgeng.dllはから取得されますC:\WINDOWS\SYSTEM32:
4534:7058 @ 159255000-LdrpSearchPath-ENTER:DLL名:dbgeng.dll
4534:7058 @ 159255000-LdrpResolveDllName-ENTER:DLL名:C:\Program Files\Microsoft Office\root\Office16\dbgeng.dll
4534:7058 @ 159255000-LdrpResolveDllName-戻り値:ステータス:0xc0000135
4534:7058 @ 159255000-LdrpResolveDllName-ENTER:DLL名:C:\WINDOWS\SYSTEM32\dbgeng.dll
4534:7058 @ 159255000-LdrpResolveDllName-戻り値:ステータス:0x00000000
4534:7058 @ 159255000-LdrpSearchPath-戻り値:ステータス:0x00000000
4534:7058 @ 159255000-LdrpMinimalMapModule-ENTER:DLL名:C:\WINDOWS\SYSTEM32\dbgeng.dll
'Excel.EXE'(Win32):ロードされた'C:\Windows\System32\dbgeng.dll'.包含/除外設定によりシンボルのロードが無効になります.
4534:7058 @ 159255000-LdrpMinimalMapModule-戻り値:ステータス:0x00000000
4534:7058 @ 159255000-LdrpFindDllActivationContext-情報:DLLのマニフェストをプローブしています "C:\WINDOWS\SYSTEM32\dbgeng.dll
"はステータス0xc000008aで失敗しました
dbghelp.dllはから取得されますC:\Program Files\Microsoft Office\root\Office16:
4534:7058 @ 159255187-LdrpSearchPath-ENTER:DLL名:dbghelp.dll
4534:7058 @ 159255187-LdrpResolveDllName-ENTER:DLL名:C:\Program Files\Microsoft Office\root\Office16\dbghelp.dll
4534:7058 @ 159255187-LdrpResolveDllName-戻り値:ステータス:0x00000000
4534:7058 @ 159255187-LdrpSearchPath-戻り値:ステータス:0x00000000
4534:7058 @ 159255187-LdrpMinimalMapModule-ENTER:DLL名:C:\Program Files\Microsoft Office\root\Office16\dbghelp.dll
'Excel.EXE'(Win32):ロードされた'C:\Program Files\Microsoft Office\root\Office16\DBGHELP.DLL'.包含/除外設定によりシンボルのロードが無効になります.
4534:7058 @ 159255187-LdrpMinimalMapModule-戻り値:ステータス:0x00000000
4534:7058 @ 159255187-LdrpFindDllActivationContext-情報:DLLのマニフェストをプローブしています"C:\Program Files\Microsoft Office\root\Office16\dbghelp.dll"
ステータス0xc000008bで失敗しました
これは、Excel.exeの検索パスが次のとおりであるためです.
4534:7058 @ 159254625-LdrpcomputeLazyDllPath-情報:DLL検索パスが計算されました:C:\Program Files\Microsoft Office\root\Office16;C:\WINDOWS\SYSTEM32
;C:\WINDOWS\system;C:\WINDOWS;...
Officeインストールのdbghelp.dllversion部分に不一致があるようです(C:\Program Files\Microsoft Office\root\Office16\dbghelp.dll
)およびシステムで使用されるもの(C:\Windows\system32\dbghelp.dll
).後者には、が必要としているsymbolSymSetDiaSessionが含まれていますC:\WINDOWS\SYSTEM32\dbgeng.dll
しかし、Officeversionはそうではありません.
これを修正する方法を教えてください.私が考えている解決策の1つは、Officeのインストールからdbghelp.dllを削除することですが、インストールフォルダーを変更できないため(管理者権限のため)、残念ながら仕事用アカウントのインストールでは削除できません.
ありがとうございます.
返信リスト(回答:2)
こんにちはLiviuCitu、
このコミュニティに投稿していただきありがとうございます.
申し訳ありませんが、この問題のデバッグ方法については専門家ではありません.私の調査によると、次の記事を参照して提案を試すことができます:
Officeアドインのテストとデバッグ-Officeアドイン| Microsoft Docs
この問題はC/c++ comアドインに関連しているため、誤った情報を共有しないように、 ExcelTechコミュニティ より良いヘルプのために.
お手数をおかけしますが、何卒よろしくお願い申し上げます.
よろしくお願いいたします.
5月
応答2# ->にスキップ1 #LiviuCiこんにちは5月
ご回答有難うございます.問題は実際には私のアドインではなく、OfficeパッケージのDBGHELPlibraryにあります.
アドインは正常で、正しくロードされています.問題は、LoadLibraryシステムコールによって参照されるDBGHELPlibraryにあります.これは、ライブラリを動的にロードしようとする任意のアドインで複製できます.
確かに、DBGHELPDLLのversion(Officeと
Windows 10
の最新の更新)の間に不一致があります.あなたが言及したコミュニティに投稿しようと思います.
ありがとう、
Liviu