Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
ich habe folgendes Problem,
um einen Smart Label Printer über LabVIEW 8.5.1 anzusteuern, muss die SLPAPI62.dll in LabVIEW eingebunden werden. Die dll und die Headerdatei bekomme ich aus dem SDK vom Hersteller SII. Ich kann damit auch einen Großteil der Integrierten Funktionen ansprechen. Aber um ein Edikett meiner Wahl auszudrucken, benötige ich eine Funktion deren Rückgabewert HFONT ist. Leider kann ich diese Werte beim einbinden der dll nicht auswählen. Der dazugehörige C++ Code aus der Beschreibung lautet:
void main()
{
SlpOpenPrinter(“Smart Label Printer 450”, 1, FALSE);
// layout and print one label
{
SlpStartLabel();
HFONT font = SlpCreateFont(“Courier”, 12, 0);
SlpDrawTextXY(30, 30, font, “Hello World!”);
SlpEndLabel(); // print the label!
}
SlpClosePrinter();
}
Wie kann ich beim einbinden der DLL den Wert HFONT deklarieren um ihn später für die Funktion SlpCreateFont() als Ausgabewert auswählen zu können?
Wenn der Font in der DLL created (und gefreed) wird und im LV-Programm eigentlich nur der Handle des Fonts (HFONT) weitergereicht wird, dann kannst du HFONT ansehen wie einen U32. Also dort, wo eigenlich HFONT stehen soll, einfach U32 nehmen.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
' schrieb::hmm:Wenn man wüsste, was genau du versucht / gemacht hast?
Lade doch mal Doku zur DLL (oder ist es vielleicht die hier?), die dll und deinen bisherigen Code hoch...
Ansonsten ist auch aus meiner Sicht der Hinweis von IchSelbst genau richtig, HFONT ist als U32 zu übergeben (bzw. zurückzugeben).
MfG, Jens
Hi Leute,
die PDF-Datei ist ein Treffer die habe ich auch. Ich lade mal die Header-Datei mit der zugehörigen dll hoch. Beim importieren der dll in LabVIEW werden dann ca 9 von 20 Funktionen erfasst. Meine Versuche mit HFONT kann ich erst morgen hochladen, da ich die Quellen im Büro habe.
' schrieb:hier habe ich nun mein VI welches nicht so recht will. Vielecht erkennt ja jemand den fehler warum ich keinen passenden wert erhalte.
Ich kann da keinen Fehler fetstellen. Frag mal dann, wenn HFONT Null ist, mit der Funktion SLPGetErrorCode ab, ob ein Fehler vorliegt. Möglicherweise muss eine ganz bestimmte Funktion aufgerufen worden sein, bevor der create gemacht wird.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
mitlerweile bekomme ich nicht mehr 0 als Rückgabewert sondern jedes mal einen anderen Zahlenwert (bei gleichen Eingabewerten). Das mit der SLPGetErrorCode() werde ich mal testen und wenn das auch nicht funktioniert habe ich wenigstens eine 1a Zufallsgennerator. :-)
Ich vermute das die Folgefunktion SlpWriteTextXY() mit der Ausgabe von SlpCreateFont() nichts anfangen kann. Ich poste morgen das Ergebnis.