Немедленное окно - как вызвать функцию из DLL, в имени которой есть дефисы, точки и числа? - PullRequest
0 голосов
/ 29 июня 2018

Я хочу запустить это в ближайшем окне:

?(char*)mono-2.0-bdwgc.dll!mono_pmip((void*)0x0000017866931945)

Я получаю это обратно:

identifier "mono" is undefined

DLL с таким именем определенно загружена.

Я попытался заключить имя DLL в кавычки, скобки, обратные ссылки и т. Д. - я получил либо «нераспознанный токен», либо ту же ошибку.

Из-за того, что вы играете с именем DLL (давая фальшивые имена!), Похоже, проблема заключается в комбинации дефисов, чисел и точки. Удаление любого из них из имени DLL приводит к ошибке «Модуль X не найден», что предполагает, по крайней мере, его распознавание.

Есть ли какой-нибудь способ, которым я должен был бы напечатать это, чтобы это было признано? Или, может быть, это ошибка Visual Studio?

Я использую Visual Studio 2017 версии 15.7.1. DLL поставляется из игры, созданной с Unity 2018.1.0f2, Windows 64 Standalone, .NET 4.6 runtime.

Контекст: Этот документ об объединении (https://docs.unity3d.com/Manual/WindowsDebugging.html) указывает пользователям запускать указанную выше команду в непосредственном окне для извлечения управляемых символов из аварийного дампа - но документ устарел, и последние версии Unity с более новым моно Во время выполнения вместо «mono.dll» используется «mono-2.0-bdwgc.dll», поэтому я пытаюсь и не могу адаптироваться!

...