.NET 4.x Не отлавливаемое исключение при использовании неуправляемого кода - C#

Узнай цену своей работы

Формулировка задачи:

Пытаюсь получить параметры ключа реестра через вызов RegEnumValue Импортировал так
Листинг программы
  1. [DllImport("advapi32.dll", EntryPoint = "RegEnumValue")]
  2. public static extern int RegEnumValueA(
  3. UIntPtr hKey,
  4. int dwIndex,
  5. out string lpValueName,
  6. out int lpcbValueName,
  7. int lpReserved,
  8. out int lpType,
  9. out IntPtr lpData,
  10. out int lpcbData);
Использовал так
Листинг программы
  1. int lpcbValueName = 1024, lpType, lpcbData = 1024;
  2. IntPtr lpData = Marshal.AllocHGlobal(1024);
  3. string lpValueName = "";
  4. for (int i = 0; i < ValueCount; i++)
  5. {
  6. int ValueError = RegEnumValueA(
  7. OpenKey,
  8. i,
  9. out lpValueName,
  10. out lpcbValueName,
  11. 0,
  12. out lpType,
  13. out lpData,
  14. out lpcbData);
  15. string dt = Marshal.PtrToStringUni(lpData);
  16. }
При проходе отладчиком, без каких либо сообщений программа завершается. Единственное, что намекает на проблему-строка в окне вывода Visual Studio.

Вызвано исключение: "System.AccessViolationException" в mscorlib.dll Программа "[9932] CursProject.vshost.exe" завершилась с кодом -1073741819 (0xc0000005) 'Access violation'.

Каким образом отловить исключение или исправить ошибку?

Решение задачи: «.NET 4.x Не отлавливаемое исключение при использовании неуправляемого кода»

textual
Листинг программы
  1.             var lm = Registry.LocalMachine;
  2.  
  3.             var subKeys = lm.GetSubKeyNames();
  4.  
  5.             var values = lm.GetValueNames();
  6.  
  7.             foreach (var name in subKeys)
  8.             {
  9.                 Debug.WriteLine(string.Format("subkey: name {0}", name));
  10.             }
  11.  
  12.             foreach (var name in values)
  13.             {
  14.                 Debug.WriteLine("value: type {0}, name {1}, value {2}", lm.GetValueKind(name), name, lm.GetValue(name));
  15.             }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.714 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы