![]() |
|
#1
|
|||
|
|||
![]() Не могу понять в чем дело?! Выдается ошибка в библиотеке, хотя если записать код в модуле все будет работать.
Библиотека примерно такая: library ASKP; uses ShareMem,SysUtils,Classes,Windows; {$R *.res} function CodeDosToWin(strWin: String): String; var sRes: String; begin SetLength(sRes, Length(strWin)); OemToChar(PChar(strWin), PChar(sRes)); SetLength(sRes, StrLen(PChar(sRes))); Result := sRes; end; function ConvertToS(S: String): TStringList; stdcall; var SList:TStringList; i:integer; begin SList:=TStringList.Create; SList.LoadFromFile(S); for i:=0 to SList.Count-1 do if Trim(SList.Strings[i])<>'' then SList.Strings[i]:=CodeDosToWin(SList.Strings[i]); result.Clear; result.AddStrings(SList); SList.free; end; exports ConvertToS; begin end. Код модуля примерно такой: ... function DecodeEasy; external 'ASKP.dll' name 'ConvertToS'; procedure TForm1.Button1Click(Sender: TObject); var SList:TStringList; Str:string; begin opendialog1.InitialDir:=ExtractFileDir(Application .exename); if opendialog1.Execute then begin str:=opendialog1.FileName; SList:=TStringList.Create; SList.AddStrings(DecodeEasy(str)); memo2.Clear; memo2.Lines.AddStrings(SList); SList.free; end; end. |
#2
|
||||
|
||||
![]() Цитата:
А в модуле ShareMed добавил? --------------------------------------------- Программирование - не профессия, а стиль жизни |