Показать сообщение отдельно
  #1  
Старый 24.05.2008, 15:43
dmdx dmdx вне форума
Начинающий
 
Регистрация: 24.05.2008
Адрес: Москва
Сообщения: 133
Репутация: 15
По умолчанию Работа с Регистром

Всем доброго настроения. люди помогите разобраться. ситуация такая написал dll для работы с регистром типа запись и чтение. Вызываю эти процы и функции из приложения все работают на ура, за исключением одной. Чтение строковой переменной.
код .dll
Код HTML:
library RegDll; uses Registry, windows; var Reg: Tregistry; procedure CreateReg(RootKey: HKEY;Key:string;CanCreate: Boolean); begin Reg:=TRegistry.Create; Reg.RootKey:=RootKey; Reg.OpenKey(Key,CanCreate); end; procedure FreeReg; begin Reg.CloseKey; Reg.Free; end; function ReadIntReg(RootKey:HKEY; Key,Param: string): integer; export; begin CreateReg(RootKey,Key,False); Result:=Reg.ReadInteger(Param); FreeReg; end; function ReadStrReg(RootKey:HKEY; Key,Param: string): String; export; begin CreateReg(RootKey,Key,False); Result:=Reg.ReadString(Param); FreeReg; end; function ReadBoolReg(RootKey:HKEY; Key,Param: string): boolean; export; begin CreateReg(RootKey,Key,False); Result:=Reg.ReadBool(Param); FreeReg; end; procedure WriteBoolReg(RootKey: HKEY;Key,Param:string;Value:boolean); export; begin CreateReg(RootKey,key,True); reg.WriteBool(param,Value); FreeReg; end; procedure WriteIntReg(RootKey: HKEY;Key,Param:string;Value:integer); export; begin CreateReg(RootKey,key,True); reg.WriteInteger(param,Value); FreeReg; end; procedure WriteStrReg(RootKey: HKEY;Key,Param,value:string); export; begin CreateReg(RootKey,key,True); reg.WriteString(param,Value); FreeReg; end; exports ReadIntReg, ReadStrReg, ReadBoolReg, WriteIntReg, WriteBoolReg, WriteStrReg; begin end.

ошибка собственно происходит в функции
function ReadStrReg(RootKey:HKEY; Key,Param: string): String; export;
begin
CreateReg(RootKey,Key,False);
Result:=Reg.ReadString(Param);
FreeReg;
end; // именно в этом месте.

ошибка: invalid pointer operation.

такое впечатление что где то надо сделать очистку именно для переменных string.
Ответить с цитированием