.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));
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д