Установка точки останова на API OLE32 в Windows 10 - PullRequest
0 голосов
/ 12 сентября 2018

Я пытаюсь установить точку останова на CLSIDFromProgID при отладке Excel (32-разрядная версия), когда я смотрю на проблему с надстройкой.До сих пор я не понял, как это сделать на Win10.Как отладчик Visual Studio (17), так и WinDbg говорят, что они загрузили символы для ole32.dll.Я пробовал:

в WinDbg:

ole32!CLSIDFromProgID
ole32!_CLSIDFromProgID
ole32!_CLSIDFromProgID@8
CLSIDFromProgID
_CLSIDFromProgID
_CLSIDFromProgID@8

в Visual Studio:

{,,ole32.dll}CLSIDFromProgID
{,,ole32.dll}_CLSIDFromProgID
{,,ole32.dll}_CLSIDFromProgID@8
CLSIDFromProgID
_CLSIDFromProgID
_CLSIDFromProgID@8

В некоторых случаях, казалось, установить точку останова, но на самом деле это было вкакой-то другой модуль, чтобы это не помогло.Если я просматриваю экспортированный CLSIDFromProgID в ole32.dll на Win10, я вижу:

CLSIDFromProgID (forwarded to api-ms-win-core-com-l1-1-0.CLSIDFromProgID)

Когда я использую инструмент DBH, включенный в WinDbg, для перечисления символов в ole32.pdb, единственный символ CLSIDFromProgID, который я вижу:

_imp__CLSIDFromProgID

во время отладки Excel и уже выполнив код, который вызывает CLSIDFromProgID, я не вижу загруженный модуль api-ms-win-core-com-l1-1-0.dll.

Кто-нибудь успешно установил точку останова любого из этих перенаправленных API-интерфейсов?

[Edit]

Кстати, если вы хотите, чтобы Excel вызывал CLSIDFromProgID, вы можете ввести в ячейку следующее:

=RTD("MyBogus.ProgId", "", "Foo")

Спасибо, Ник

...