Wiem bo używam wywołania tej funkcji w C# przez P/Invoke i przypisuje ją do pola: this.textBox9.Text = ReadStringRegistryKey("Software\\Test", "Nazwa").ToString();
I jak włączam program (ten w C#) to sie wysypuje z komentarzem Nie oczekiwany błąd : NotSupportedException,
Przypisanie jest chyba prawidłowe w /Invoke funkcja wygląda tak:
[DllImport("library.dll")]
static extern string ReadStringRegistryKey(string lpSubKey, string lpValueName);
A nie mogę Debugować bo eVC i Visual Studio 2003 .NET nie stabilizują mi połączenia z Pocketem.
Dodam, iż zapis tego stringa do rejestru odbywał się za pomocą poniższej funkcji (i jak sprawdzam w regEdytorze to wpis istnieje i jest prawidłowy):
int WriteStringRegistryKey(LPCTSTR lpSubKey, LPCTSTR lpValueName, const unsigned char* lpData, DWORD dwSize)
{
HKEY hKey;
DWORD dwType = REG_SZ, dwDisp = 0;
if (RegCreateKeyEx(HKEY_LOCAL_MACHINE, lpSubKey, 0, NULL,
0, KEY_WRITE, NULL, &hKey, &dwDisp) == 0)
{
if (RegSetValueEx(hKey, lpValueName, 0, dwType, lpData, dwSize) == 0)
{
RegCloseKey(hKey);
return 0;
}
RegCloseKey(hKey);
}
RegCloseKey(hKey);
return -1;
}
Ale funkcja pobierająca ten wpis, o której cały czas mowa, nie pobiera go prawidłowo. Czy wiesz może jak naprawić tę funkcję tak aby zwracała faktycznie tego stringa??