У меня есть этот P / Invoke RegSetValueExW, который устанавливает значение для раздела реестра. в C #
[DllImport("coredll.dll", EntryPoint = "RegSetValueExW")]
public static extern int RegSetValueExW(uint hKey, string lpValueName,
uint lpReserved,
uint lpType,
byte[] lpData,
uint lpcbData);
У меня проблема с байтом 4-го параметра [] lpdata. Мне нужно передать DWORD со значением 5 (int). Все в порядке, если я передаю строку (REG_SZ), просто нужно конвертировать с помощью функции GetBytes.
Если я вызываю GetBytes ("5"), он конвертирует его в значение ascii
из 53, поэтому он записывает 53 в значение реестра вместо 5