Hi!
Есть библиотека стороннего разработчика
ILibrary = interface(IUnknown)
['{E1A1E77A-07A2-452D-BB5D-FAC41207B23A}']
function Get(out key: WideString): HResult; stdcall;
function Read(var key: WideString; out OutParam: variant): HResult; stdcall;
end;
Моя задача получить с помощью функции Get строку один раз а в дальнейшем использовать функцию Read для получения параметров. Для этого в функцию Read передаеться строка полученная функцией Get. В key сохранены бинарные данные. Как можно сохранить key в реестре? А потом считать его от туда?
Здравствуйте, nim2006, Вы писали:
N>Hi!
N>Есть библиотека стороннего разработчика
N>N>ILibrary = interface(IUnknown)
N> ['{E1A1E77A-07A2-452D-BB5D-FAC41207B23A}']
N> function Get(out key: WideString): HResult; stdcall;
N> function Read(var key: WideString; out OutParam: variant): HResult; stdcall;
N> end;
N>
N>Моя задача получить с помощью функции Get строку один раз а в дальнейшем использовать функцию Read для получения параметров. Для этого в функцию Read передаеться строка полученная функцией Get. В key сохранены бинарные данные. Как можно сохранить key в реестре? А потом считать его от туда?
Сохраняй её не как строку, а как данные. Кто мешает получить указатель на первый байт и представить строку в другом виде.
Если нужно сохранить именно Wide-строку, см. функцию RegSetValueExW. Кажется я в своём FDSCInformer сохранял строки как Wide, посмотри
здесь, нужен модуль uRegistry.pas.
Здравствуйте, FDSC, Вы писали:
FDS>Здравствуйте, nim2006, Вы писали:
N>>Hi!
N>>Есть библиотека стороннего разработчика
N>>N>>ILibrary = interface(IUnknown)
N>> ['{E1A1E77A-07A2-452D-BB5D-FAC41207B23A}']
N>> function Get(out key: WideString): HResult; stdcall;
N>> function Read(var key: WideString; out OutParam: variant): HResult; stdcall;
N>> end;
N>>
N>>Моя задача получить с помощью функции Get строку один раз а в дальнейшем использовать функцию Read для получения параметров. Для этого в функцию Read передаеться строка полученная функцией Get. В key сохранены бинарные данные. Как можно сохранить key в реестре? А потом считать его от туда?
FDS>Сохраняй её не как строку, а как данные. Кто мешает получить указатель на первый байт и представить строку в другом виде.
Сохранять как данные не получилось. Точнее сохранять получаеться а вот считать нет.
FDS>Если нужно сохранить именно Wide-строку, см. функцию RegSetValueExW. Кажется я в своём FDSCInformer сохранял строки как Wide, посмотри здесь, нужен модуль uRegistry.pas.
Я сделал несколько дркгим методом. Преобразование строки в массив типа WideChar и запись массива методом WriteBinary