Thema: Delphi Hardware einbinden

Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Hardware einbinden

  Alt 2. Jan 2008, 18:57
Moin Homer,

also diese Deklaration

function cbflashLED(BoardNum:Integer):Integer;StdCall; external 'CBW32.DLLname 'cbflashLED'; enthält nicht den korrekten Namen der Funktion. Laut Doku ist der cbFlashLED (also mit grossem F).
Wenn Du name angibst, kann der Funktionsname frei gewählt werden, wenn Du es weglässt, muss er korrekt geschrieben angegeben werden.

Vielleicht ist es in meinem obigen Beitrag nicht so ganz herausgekommen:
Die Schreibweise der Funktionsnamen muss exakt der entsprechen, die in der DLL enthalten ist (incl. Gross-/Kleinschreibung).
Mit der o.g. Deklaration dürfte das Programm eigentlich nicht starten.

Damit die DLL gefunden wird, kannst Du sie in das Programmverzeichnis kopieren, oder auch in das System32

So:
function cbflashLED(const BoardNum:Integer):Integer;StdCall; external 'CBW32.DLLname 'cbFlashLED'; müsste es eigentlich funktionieren.
(da C keine var- und Wert-Parameter kennt, schreibe ich immer const davor)

Leider kann ich dem Ausschnitt aus der Dokumentation nicht entnehmen, welche Aufrufkonvention verwendet werden soll.
Eventuell ist stdcall falsch und muss durch cdecl ersetzt werden.
Vielleicht findest Du ja hierfür nähere Angaben in den Beispielprogrammen.
Ausserdem könnte man das auch den, aller voraussicht nach, mitgelieferten Header-Dateien entnehmen (*.h/*.hpp)
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat