.NET 4.x Не отлавливаемое исключение при использовании неуправляемого кода - C#
Формулировка задачи:
Пытаюсь получить параметры ключа реестра через вызов RegEnumValue
Импортировал так
Использовал так
При проходе отладчиком, без каких либо сообщений программа завершается. Единственное, что намекает на проблему-строка в окне вывода Visual Studio.
[DllImport("advapi32.dll", EntryPoint = "RegEnumValue")] public static extern int RegEnumValueA( UIntPtr hKey, int dwIndex, out string lpValueName, out int lpcbValueName, int lpReserved, out int lpType, out IntPtr lpData, out int lpcbData);
int lpcbValueName = 1024, lpType, lpcbData = 1024; IntPtr lpData = Marshal.AllocHGlobal(1024); string lpValueName = ""; for (int i = 0; i < ValueCount; i++) { int ValueError = RegEnumValueA( OpenKey, i, out lpValueName, out lpcbValueName, 0, out lpType, out lpData, out lpcbData); string dt = Marshal.PtrToStringUni(lpData); }
Вызвано исключение: "System.AccessViolationException" в mscorlib.dll Программа "[9932] CursProject.vshost.exe" завершилась с кодом -1073741819 (0xc0000005) 'Access violation'.
Каким образом отловить исключение или исправить ошибку?Решение задачи: «.NET 4.x Не отлавливаемое исключение при использовании неуправляемого кода»
textual
Листинг программы
var lm = Registry.LocalMachine; var subKeys = lm.GetSubKeyNames(); var values = lm.GetValueNames(); foreach (var name in subKeys) { Debug.WriteLine(string.Format("subkey: name {0}", name)); } foreach (var name in values) { Debug.WriteLine("value: type {0}, name {1}, value {2}", lm.GetValueKind(name), name, lm.GetValue(name)); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д