Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Delphi und Thermometer am Parallelport unter WinXP (https://www.delphipraxis.net/108204-delphi-und-thermometer-am-parallelport-unter-winxp.html)

mich4el 8. Feb 2008 19:28


Delphi und Thermometer am Parallelport unter WinXP
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ich habe im Rahmen einer Facharbeit ein PC Interface zusammengelötet, welches über den Druckerport kommuniziert.
Neben dem Schaltplan war auch schon ein Beispielprogramm dabei, welches neben der kompiliereten Version auch als Delphi Sourcecode vorliegt.

Wenn ich den Code kompilieren will, bekomme ich überall Fehlermeldungen, dass die Bezeicher 'port', 'CloseComm' und 'OpenComm' undefiniert seien, was wohl daher kommt, dass irgendeine DLL, die diese Funktionnen/Prozeduren enthält garnicht ins Programm geladen ist.

Ich habe dann die "Port.dll" gefunden, welche anscheinend diese Prozeduren enthält, aber ich bekomme sie irgendwie nicht in das Beispielprogramm eingebunden.

Ich hab dann noch gefunden, wie die DLL in Basic eingebunden wird, allerdings ist meine Übersetzung nicht so erfolgreich gewesen. Das hier ist der Basiccode, der zur Einbindung benötigt werden soll:

Code:
Declare Function OPENCOM Lib "Port" (ByVal A$) As Integer
Declare Sub CLOSECOM Lib "Port" ()
Declare Sub SENDBYTE Lib "Port" (ByVal b%)
Declare Function READBYTE Lib "Port" () As Integer
Declare Sub DTR Lib "Port" (ByVal b%)
Declare Sub RTS Lib "Port" (ByVal b%)
Declare Sub TXD Lib "Port" (ByVal b%)
Declare Function CTS Lib "Port" () As Integer
Declare Function DSR Lib "Port" () As Integer
Declare Function RI Lib "Port" () As Integer
Declare Function DCD Lib "Port" () As Integer
Declare Sub DELAY Lib "Port" (ByVal b%)
Declare Sub TIMEINIT Lib "Port" ()
Declare Sub TIMEINITUS Lib "Port" ()
Declare Function TIMEREAD Lib "Port" () As Long
Declare Function TIMEREADUS Lib "Port" () As Long
Declare Sub DELAYUS Lib "Port" (ByVal l As Long)
Declare Sub REALTIME Lib "Port" (ByVal i As Boolean)
Ich hab allerdings garkein Plan von Basic, sodass ich auch nicht weiß wie das in Delphi übersetzt werden soll...
Besonders bei den ganzen "Sub"s und "Lib"s weiß ich nicht was das in Delphi sein sollte.

Vielleicht kann mir da erstmal wer mit der Übersetzung helfen, sodass wenigstens mal die DLL geladen werden kann (wenn denn die Port.dll auch die richtige ist...)

Ich hab das BspProgramm und den Sourcecode hier nochmal zur besseren Nachvollziehbarkeit angehängt.

vieeelen dank schonmal! gruss michael

ps: ich denke dass ich die dateien problemlos hier anhängen kann, weil man das ganze sowieso kostenlos auf der Elektorseite herunterladen kann, von denen auch das Buch, der Schaltplan usw stammt.
Gibts hier: http://www.elektor.de/jahrgang/1997/...37.lynkx?tab=3

Reinhard Kern 9. Feb 2008 15:47

Re: Delphi und Thermometer am Parallelport unter WinXP
 
Zitat:

Zitat von mich4el
Hallo,
ich habe im Rahmen einer Facharbeit ein PC Interface zusammengelötet, welches über den Druckerport kommuniziert.
Neben dem Schaltplan war auch schon ein Beispielprogramm dabei, welches neben der kompiliereten Version auch als Delphi Sourcecode vorliegt.

Wenn ich den Code kompilieren will, bekomme ich überall Fehlermeldungen, dass die Bezeicher 'port', 'CloseComm' und 'OpenComm' undefiniert seien, was wohl daher kommt, dass irgendeine DLL, die diese Funktionnen/Prozeduren enthält garnicht ins Programm geladen ist.

Ich habe dann die "Port.dll" gefunden, welche anscheinend diese Prozeduren enthält, aber ich bekomme sie irgendwie nicht in das Beispielprogramm eingebunden.

Ich hab dann noch gefunden, wie die DLL in Basic eingebunden wird, allerdings ist meine Übersetzung nicht so erfolgreich gewesen. Das hier ist der Basiccode, der zur Einbindung benötigt werden soll:

Code:
Declare Function OPENCOM Lib "Port" (ByVal A$) As Integer
Declare Sub CLOSECOM Lib "Port" ()
Declare Sub SENDBYTE Lib "Port" (ByVal b%)
Declare Function READBYTE Lib "Port" () As Integer
Declare Sub DTR Lib "Port" (ByVal b%)
Declare Sub RTS Lib "Port" (ByVal b%)
Declare Sub TXD Lib "Port" (ByVal b%)
Declare Function CTS Lib "Port" () As Integer
Declare Function DSR Lib "Port" () As Integer
Declare Function RI Lib "Port" () As Integer
Declare Function DCD Lib "Port" () As Integer
Declare Sub DELAY Lib "Port" (ByVal b%)
Declare Sub TIMEINIT Lib "Port" ()
Declare Sub TIMEINITUS Lib "Port" ()
Declare Function TIMEREAD Lib "Port" () As Long
Declare Function TIMEREADUS Lib "Port" () As Long
Declare Sub DELAYUS Lib "Port" (ByVal l As Long)
Declare Sub REALTIME Lib "Port" (ByVal i As Boolean)
Ich hab allerdings garkein Plan von Basic, sodass ich auch nicht weiß wie das in Delphi übersetzt werden soll...
Besonders bei den ganzen "Sub"s und "Lib"s weiß ich nicht was das in Delphi sein sollte.

Vielleicht kann mir da erstmal wer mit der Übersetzung helfen, sodass wenigstens mal die DLL geladen werden kann (wenn denn die Port.dll auch die richtige ist...)

Ich hab das BspProgramm und den Sourcecode hier nochmal zur besseren Nachvollziehbarkeit angehängt.

vieeelen dank schonmal! gruss michael

ps: ich denke dass ich die dateien problemlos hier anhängen kann, weil man das ganze sowieso kostenlos auf der Elektorseite herunterladen kann, von denen auch das Buch, der Schaltplan usw stammt.
Gibts hier: http://www.elektor.de/jahrgang/1997/...37.lynkx?tab=3

Sub ist Procedure, Function ist rate mal, aber egal: alle die du aufgeführt hast, sind für die serielle Schnittstelle (Comx) und nicht für die parallele (LPTx). Was willst du denn verwenden?

Gruss Reinhard

mich4el 9. Feb 2008 17:07

Re: Delphi und Thermometer am Parallelport unter WinXP
 
moin, danke für die antwort :)

Einige der Funktionen (Opencom, Closecom, Outport, Inport) sollen aber für serielle und parallele Schnittstelle funktionieren steht da.

Und das Sub nix anderes ist als Procedure hilft mir schonmal!
Das mit Function war ja klar ;) ...

So und was hat das mit Lib "Port" auf sich? Ist das das gleiche wie in Delphi der Aufruf external 'blaa.dll' ?


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:41 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz