Wichtiges zu den Funktionsparametern

Die Übergabe von Zeichenketten von der DLL an das Anwenderprogramm ist immer durch die Übergabe eines Zeigers auf einen Speicherbereich und als weiteren Parameter einen Integer-Wert für dessen Länge (in Zeichen) definiert. Es werden grundsätzlich nur so viele Zeichen kopiert, dass es keinen Überlauf in diesem Bereich gibt, die Zeichenketten sind immer ´\0´-terminiert. Bei Bedarf (wenn der Puffer zu klein ist) wird der übergebene String also gekürzt und unvollständig zurückgegeben. Achten Sie auf den Fehlercode LL_­ERR_­BUFFERTOOSMALL.

Die Parameter werden soweit möglich, auf Korrektheit überprüft. Während der Programmentwicklung lohnt es sich also, den Debug-Modus einzuschalten (siehe LlSetDebug()) und die Rückgabewerte zu überprüfen. Später können Sie dann die Parameterüberprüfung explizit ausschalten (LL_­OPTION_­NO­PARA­METER­CHECK).

Bei Delphi ist zu beachten, dass die Routinen null-terminierte Zeichenketten benötigen und zurückgeben, wie es bei Windows-Funktionen üblich ist. Im Bedarfsfall müssen die Pascal-String zu C-String Konvertierungsroutinen benutzt werden.

Bei C oder C++ muss die C-Konvention beachtet werden, so dass Sie in Quelltexten für '\', z. B. in Pfadangaben, dieses doppelt eingeben müssen: "c:\\temp.lbl" statt "c:\temp.lbl".

Beispiel:

INT    nSize = 16000;

LPWSTR pszBuffer = new TCHAR[nSize];

INT    nResult = <API>(hJob,...,pszBuffer,nSize);

 

if (nResult == LL_ERR_BUFFERTOOSMALL)

    {

    nSize = <API>(hJob,...,NULL,0);

 

    ASSERT(nSize > 0);

    delete[] pszBuffer;

    pszBuffer = new TCHAR[nSize];

    nResult = <API>(hJob,...,pszBuffer,nSize);

    }

...

 

delete[] pszBuffer;