Einzelnen Beitrag anzeigen

BAMatze

Registriert seit: 18. Aug 2008
Ort: Berlin
759 Beiträge
 
Turbo Delphi für Win32
 
#1

Funktionen werden nicht mehr aus der DLL geladen

  Alt 9. Okt 2009, 08:20
Hallo und guten Morgen an alle DP´ler,

Ist vieleicht gerade einfach noch zu früh am Morgen, aber irgendwie funktionieren folgende Proceduren nicht mehr wirklich, seit ich diese aus meinem Gesamtprojekt in ein kleineres und überschaubareres Projekt kopiert habe.
Hier erstmal die Proceduren:

Delphi-Quellcode:
function TP_Tisch.DLLHandle_zuweisen: boolean;
begin
  //Protokoll.Protokolleingang('Piezotisch', 'DLLHandle-Fkt');
  doFehlerevent(200);
  try
    TischDLL := TDLL_Datei.create('E816_DLL.dll');
    try
      result := TischDLL.Vorhanden;
      case result of
      true: DLL_Handle := TischDLL.Handle;
      false: begin
              doFehlerevent(101);
              DLL_Handle := 0;
             end;
      end;
    except
    doFehlerevent(201);
    result := false;
    end;
  finally
    // Beenden der Klasse
    TischDLL.Free;
  end;

  //Protokoll.Protokollausgang('Piezotisch', 'DLLHandle-Fkt');
end;

function TP_Tisch.DLLFunktionen_laden: boolean;
begin
  //Protokoll.Protokolleingang('Piezotisch', 'DLL-Fkt laden');
  E816_ConnectRS232 := GetProcAddress(DLL_Handle, 'E816_ConnectRS232');
  E816_CloseConnection := GetProcAddress(DLL_Handle, 'E816_CloseConnection');
  E816_IsConnected := GetProcAddress(DLL_Handle, 'E816_IsConnected');
  E816_MOV := GetProcAddress(DLL_Handle, 'E816_MOV');
  E816_MVR := GetProcAddress(DLL_Handle, 'E816_MVR');
  E816_SVO := GetProcAddress(DLL_Handle, 'E816_SVO');
  E816_qPOS := GetProcAddress(DLL_Handle, 'E816_qPOS');
  result := (DLL_Handle <> 0) and assigned(E816_ConnectRS232) and assigned(E816_CloseConnection)
            and assigned(E816_IsConnected) and assigned(E816_MOV) and assigned(E816_SVO);
  if not result then doFehlerevent(203);
  //Protokoll.Protokollausgang('Piezotisch', 'DLL-Fkt laden');
end;
Das Handle wird Problemlos gefunden und hat auch einen Wert, allerdings läd er (obwohl es auch die richtige DLL ist und am richtigen Ort liegt) die Funktionien im meinem kleineren Projekt nicht mehr. Im Gesamtprojekt hingegen funktioniert alles wunderbar. Grübel da jetzt gerade schon eine Stunde rum und sehe einfach keinen Grund für ein solches Verhalten.

Hoffe jemand kann mir helfen
BAMatze

[Edit] Die GetProcAddressen liefern alle nil zurück, was eigentlich nicht sein kann, da es die richtige Datei ist. Werde sie jetzt auch mal austauschen [/Edit]
2. Account Sero
  Mit Zitat antworten Zitat