Я пытаюсь установить точку останова на 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")
Спасибо, Ник