Einzelnen Beitrag anzeigen

Benutzerbild von Lucifer
Lucifer

Registriert seit: 29. Mär 2007
62 Beiträge
 
#1

Fehler beim Benutzen von DLL Procedure

  Alt 21. Jun 2008, 14:16
Hallo.



Ich habe ein Problem wenn ich eine Procedure benutze welche ich in einer DLL eingetragen habe.
Wenn ich die Procedure in der Unit des Programms deklariere und definiere dann funktioniert alles problemlos.

Wenn ich sie aber über eine DLL benutze bekomme ich eine Fehlermeldung.

das ist die DLL

Delphi-Quellcode:
library map;

{ Important note about DLL memory management: ShareMem must be the
  first unit in your library's USES clause AND your project's (select
  Project-View Source) USES clause if your DLL exports any procedures or
  functions that pass strings as parameters or function results. This
  applies to all strings passed to and from your DLL--even those that
  are nested in records and classes. ShareMem is the interface unit to
  the BORLNDMM.DLL shared memory manager, which must be deployed along
  with your DLL. To avoid using BORLNDMM.DLL, pass string information
  using PChar or ShortString parameters. }


uses
  SysUtils,
  Grids,
  StdCtrls,
  Classes;

{$R *.res}

procedure LoadStringGrid(StringGrid: TStringGrid; const FileName: TFileName);
var
  f: TextFile;
  iTmp, i, k: Integer;
  strTemp: String;
begin
  AssignFile(f, FileName);
  Reset(f);
  with StringGrid do
  begin
    // Get number of columns
    Readln(f, iTmp);
    ColCount := iTmp;
    // Get number of rows
    Readln(f, iTmp);
    RowCount := iTmp;
    // loop through cells & fill in values
    for i := 0 to ColCount - 1 do
      for k := 0 to RowCount - 1 do
      begin
        Readln(f, strTemp);
        Cells[i, k] := strTemp;
      end;
  end;
  CloseFile(f);
end;


exports
  LoadStringGrid;

begin

end.
und ich benutz sie so:

Delphi-Quellcode:

...

procedure LoadStringGrid(StringGrid: TStringGrid; const FileName: TFileName);
external 'map.dll'

...

LoadStringGrid(frmMapMv.sgMap, land+'.mp');
in land steht nur welche datei geladen werden muss.

Die Fehlermeldung ist
Zitat:
Invalid Pointer Operation
Im Attachment liegen Bilder zu den Errors
Miniaturansicht angehängter Grafiken
error2_150.jpg   error1_532.jpg  
  Mit Zitat antworten Zitat