Einzelnen Beitrag anzeigen

Funky-Sepp

Registriert seit: 14. Okt 2003
Ort: Freudenricht/Velburg
56 Beiträge
 
#1

Dll-Aufruf Konvertierung von VB-Code nach Delphi

  Alt 15. Dez 2003, 16:55
Hi @All!

ich habe diesen Code
Code:
Public Enum eMode
  CommonMode = 0
  IMode_1 = 1
  IMode_2 = 2
  IMode_3 = 3
  IMode_4 = 4
  IMode_5 = 5
  SimpleMode = 6
End Enum

Declare Sub SetDeviceEnabled Lib "AN21xx.dll" (ByVal DevNumber As Byte, _
                                              ByVal DriverName As String, _
                                              ByVal MC_Mode As eMode, _
                                              ByVal ID As String, _
                                              ByVal KeyWord As String, _
                                              I_Error As Long)
von einem VB-Beispiel genommen und wollte ihn in Delphicode umwandeln,
aber irgendwas mach ich falsch:

Delphi-Quellcode:

const
  CommonMode = 0;
  IMode_1 = 1;
  IMode_2 = 2;
  IMode_3 = 3;
  IMode_4 = 4;
  SimpleMode = 5;



type TDLL_AN21xx_SetDeviceEnabled = procedure( const aDevNumber : Byte;
                                               const aDriverName : PChar;
                                               const aMC_Mode : integer;
                                               const aID : PChar;
                                               const aKeyWord : PChar;
                                               var aError : integer
                                             );

var DLL_AN21xx_SetDeviceEnabled : TDLL_AN21xx_SetDeviceEnabled = nil;

function DLL_An21xx_Init : Boolean;

implementation


function DLL_An21xx_init : Boolean;
var a : Cardinal;
begin
  a := LoadLibrary(pChar(ExtractFilePath( Application.exename) + 'AN21xx.dll'));
  @DLL_AN21xx_SetDeviceEnabled := GetProcAddress (a,'SetDeviceEnabled');
  if @DLL_AN21xx_SetDeviceEnabled = nil then Result := false else Result := true;
end;
ich komme einfach nicht drauf.

immer wenn ich dann die Proceduer DLL_AN21xx_SetDeviceEnabled aufrufe kommt eine Zugriffsverletzung. Also muss irgendein parameter falsch sein?

Hoffe ihr könnt mir weiterhelfen.

Danke schonmal im voraus.

Wolfgang
Wolfgang
  Mit Zitat antworten Zitat