Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB .NET > Поиск в реестре


Автор: IrinaProkopcova 2.4.2007, 15:35
Помогите, пожалуйста. выдает ошибку, понять не могу. smile 
Код

retval = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software", 0&, KEY_ENUMERATE_SUB_KEYS, hkey)

Цитата

A call to PInvoke function 'GRIIStation!GRIIStation.frmParent::RegOpenKeyEx' has unbalanced the stack. This is likely because the managed PInvoke signature does not match the unmanaged target signature. Check that the calling convention and parameters of the PInvoke signature match the target unmanaged signature.

Объясните, пожалуйста

Автор: Akina 2.4.2007, 16:23
Код

LONG RegOpenKeyEx(
  HKEY hKey,
  LPCTSTR lpSubKey,
  DWORD ulOptions,
  REGSAM samDesired,
  PHKEY phkResult
);
Как видите, lpSubKey есть null-terminated string... не убежден что передача туда литерала соответствует конвенциям. Попробуйте через переменную.

Автор: IrinaProkopcova 2.4.2007, 16:39
Спасибо, огромное это прошло. Только беда в том, что он начал ругаться на hkey(PHKEY phkResult-в вашем примере). Если не сложно, будьте добры, объясните smile

Добавлено через 3 минуты и 26 секунд
И, пожалуйста, подскажите литературу по работе с реестром. Только взялась, ничего не понимаю smile 

Автор: ivashkanet 2.4.2007, 16:51
IrinaProkopcova, а почему бы не использовать стандартные функции вместо WinAPI?
http://forum.vingrad.ru/index.php?showtopic=103373&view=findpost&p=784667 статья, правда по C#, но функции те же.
Код

        Dim retval As Microsoft.Win32.RegistryKey
        retval = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("Software")

Автор: IrinaProkopcova 2.4.2007, 16:57
Спасибо, ivashkanet smile  smile . Просто я действительно, не знаю как с ним работать взяла первое попавшееся.

Автор: Akina 2.4.2007, 17:11
Цитата(IrinaProkopcova @  2.4.2007,  17:39 Найти цитируемый пост)
он начал ругаться на hkey(PHKEY phkResult-в вашем примере). 

это хендл для открытого ключа. переменная типа long. уж не знаю, как вы его там определяли.

Автор: IrinaProkopcova 3.4.2007, 10:32
Спасибо, Akina. Разобралась. smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)