Gilt ab List & Label 15
Problem:Es kann bei der Verwendung der Funktion LlSetPrinterInPrinterFile in seltenen Fällen im C++ Builder zur folgenden Linkermeldung kommen:
[ILINK32 Error] Error: Unresolved external '__fastcall L19::TL19_::LlSetPrinterInPrinterFile(unsigned int, const System::UnicodeString, int, const System::UnicodeString, const _devicemodeW * const)' referenced from ...
Lösung:
Öffnen Sie das Package “cbpack” und bearbeiten Sie die Datei “l19.pas”. Dort passen Sie die Deklaration und Implementierung für LlSetPrinterInPrinterFile dahingehend an, dass Sie das “const” für die DEVMODE-Struktur entfernen. Die Codepassagen sollten dann wie folgt aussehen:
...
function LlSetPrinterInPrinterFile(ProjectType: cardinal; const ProjectName: TString; PrinterIndex: integer; const PrinterName: TString; DevModePointer: _PCDEVMODEW): integer;
function LlSetPrinterInPrinterFile(ProjectType: cardinal; const ProjectName: TString; PrinterIndex: integer; const PrinterName: TString; DevModePointer: _PCDEVMODEA): integer;
...
function TL19_.LlSetPrinterInPrinterFile(ProjectType: cardinal;
const ProjectName: TString;
PrinterIndex: integer;
const PrinterName: TString;
DevModePointer: _PCDEVMODEW
): integer;
function TL19_.LlSetPrinterInPrinterFile(ProjectType: cardinal;
const ProjectName: TString;
PrinterIndex: integer;
const PrinterName: TString;
DevModePointer: _PCDEVMODEA
): integer;
begin
Result := cmbtll19.LlSetPrinterInPrinterFile(hTheJob, ProjectType, PTChar(ProjectName),
PrinterIndex, PTChar(PrinterName), DevModePointer);
end;
...
Kompilieren Sie anschließend zunächst das Package und dann Ihre Anwendung.
IDKBTD000751 KBTD000751