Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Fehler im CB-Linker? Wo melden? (https://www.delphipraxis.net/147556-fehler-im-cb-linker-wo-melden.html)

messie 11. Feb 2010 10:18


Fehler im CB-Linker? Wo melden?
 
Moin,

über eine Diskussion im Sourceforge-Forum für die CPort-Kompo bin ich auf ein merkwürdiges Verhalten des CB-Linkers gestoßen, das mit schon einmal aufgefallen ist. Jetzt, wo ich es zum wiederholten Mal sehe, wollte ich es mal zur Sprache bringen und klären, ob und wo ein Fehler stecken könnte.

Installiert man die CPort-Kompo für CB, bekommt man einen Linker-Fehler "unresolved external" der auf eine nicht vorhandene Funktion SetPortA verweist. Diese ist in der zugrundeliegenden Datei CPort.pas aber nicht vorhanden. Wohl gibt es dort eine Routine SetPort, die den ComPort setzen soll.

Der Linker verweist nun zunächst auf eine function SetPort in der winspool.h, die dort auf die API-Routine SetPortA verweist:
Code:
BOOL
WINAPI
SetPortA(
__in_opt   LPSTR    pName,
__in       LPSTR    pPortName,
            DWORD      dwLevel,
__in       LPBYTE     pPortInfo
);
BOOL
WINAPI
SetPortW(
__in_opt   LPWSTR    pName,
__in       LPWSTR    pPortName,
            DWORD      dwLevel,
__in       LPBYTE     pPortInfo
);
#ifdef UNICODE
#define SetPort SetPortW
#else
#define SetPort SetPortA
#endif // !UNICODE
Beim Linken scheint er dann korrekterweise die SetPortA zu ignorieren und referenziert auf SetPortW, dann fehlt aber wohl der noch vorhandene Verweis auf die SetPortA.

Durch Umbenennen von SetPort in der CPort.pas lässt sich das Problem umgehen. Nun habe ich das aber schon mindestens einmal gehabt (TMS unicode tools) und denke, das Linker-Verhalten ist fehlerhaft. Denn wenn jemand die Routine der winspool.h benutzen will, bekommt er ja vielleicht dasselbe Problem.

Bisher habe ich Fehler immer bei mir selbst gesucht und würde gerne mal eine Einschätzung dazu haben: ist das ein Fehler, wo kann man ihn melden und ist der evtl. schon bekannt?

Grüße, Messie


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:52 Uhr.

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