Почему функция SymEnumerateSymbols некорректно работает в Windows Vista?

Рейтинг: 1Ответов: 1Опубликовано: 12.03.2011

Код, импортирующий функцию:

    [DllImport("Imagehlp.dll", CharSet = CharSet.Auto)]
    private static extern bool SymEnumerateSymbols(IntPtr process, IntPtr baseDll, IntPtr callback, object context);

Код, формирующий указатель на функцию, который передаётся в параметр callback:

private delegate bool LoadSymbolDelegate(string name, IntPtr symbolAddress, uint size, IntPtr context);
...
IntPtr collector = Marshal.GetFunctionPointerForDelegate(new LoadSymbolDelegate(loader.LoadSymbol));

В Windows XP функция даёт вполне правдоподобный список экспортированных функций указанной DLL-ки. В Windows Vista функция выдаёт только первые буквы названий функций.

Ответы

Ответов пока нет.