INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Probleme mit HASP-API



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!

03.12.2007, 14:07 (Dieser Beitrag wurde zuletzt bearbeitet: 03.12.2007 20:54 von jg.)
Beitrag #1

Lime Offline
LVF-Grünschnabel
*


Beiträge: 32
Registriert seit: Oct 2007

2020
2004
EN

18xxx
Deutschland
Probleme mit HASP-API
' schrieb:...dann kann(sollte) man ja nach zusätzlich selbst Aufrufe in seine Software einprogrammieren. Die DLL-Schnittstelle von Aladdin ist aber nicht allzu kompliziert.

Probier's mal aus.

MfG, Jens

Hallo,

ich hab nach einiger Zeit des passiven Mitlesens auch mal an eine eigene Anfrage:

Ich habe hier das HASP HL Demo Kit mit einem Dongle zu liegen und kriege es irgendwie nicht hin, dass ich mit LabVIEW (8.0) auf die Donglefunktionen zugreifen kann. Mit anderen Worten: Ich komme irgendwie nicht mit der HASP API klar.
Ich habe es mit einem Knoten zum Aufruf externer Bibliotheken versucht, aber irgendwie kommen dabei immer nur Abstürze raus.

Kann mir vielleicht jemand mal ein Beispiel-VI schicken, wie die Einbindung der hasp_windows_demo.dll aussehen muss?

Bin für jede Hilfe dankbar!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
03.12.2007, 14:18
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Probleme mit HASP-API
Hallo,

laut Profil hast du doch LV8.2. Dann hast du doch keine großen Hürden vor dir: Der DLL-Assistent kommt mit den meisten Funktionsaufrufen der hasp-DLL ohne Problem zurecht (Ausnahmen bestätigen hier die Regel, aber die Aufrufe, bei der der Assi Probleme hat, sind eher exotisch).

MfG, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.12.2007, 15:05
Beitrag #3

Lime Offline
LVF-Grünschnabel
*


Beiträge: 32
Registriert seit: Oct 2007

2020
2004
EN

18xxx
Deutschland
Probleme mit HASP-API
' schrieb:Hallo,

laut Profil hast du doch LV8.2. Dann hast du doch keine großen Hürden vor dir: Der DLL-Assistent kommt mit den meisten Funktionsaufrufen der hasp-DLL ohne Problem zurecht (Ausnahmen bestätigen hier die Regel, aber die Aufrufe, bei der der Assi Probleme hat, sind eher exotisch).

MfG, Jens


Ja, ich hab auf einem Rechner die 8.2, der ist jedoch momentan für mich nicht benutzbar. Also probiere ich hier mit 8.0 rum. Es muss doch ne Möglichkeit geben, die API sinnvoll zu nutzen?!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.12.2007, 20:57
Beitrag #4

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Probleme mit HASP-API
Wo liegen denn genau deine Probleme?

Poste doch mal ein VI, damit man genauer analysieren kann, was falsch läuft.

MfG, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.12.2007, 21:22
Beitrag #5

Lime Offline
LVF-Grünschnabel
*


Beiträge: 32
Registriert seit: Oct 2007

2020
2004
EN

18xxx
Deutschland
Probleme mit HASP-API
Tja, eigentlich stehe ich ganz am Anfang. Ich habe bisher nur mal mit dem Knoten zum Einbinden externer DLLs rumprobiert. Da die API allerdings Pointer und Handles verwendet, von denen ich im LabVIEW-Kontext im übrigen bisher nichts gehört hab, fehlt mir irgendwie der Einstieg.

Wenn ich morgen wieder im Büro bin, dann liefere ich mal ein wenig mehr Info's. Bisher schon mal vielen Dank für die Hilfsbereitschaft...

Gruss
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.12.2007, 22:17
Beitrag #6

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Probleme mit HASP-API
Also, ein paar Infos zum Einstieg:

Vendor-Center ist wohl installiert?! Wenn nicht, INSTALLIEREN!

PDF-Manual bzw. PapierManual durchlesen, vor allem der Abschnitt HASP HL API Reference.
Die Aufrufe, die in diesem Abschnitt beschrieben sind, findest du unter ..ProgrammeAladdinHASP HLAPIRuntimeCwin32hasp_windows.dll, im selben Verzeichnis auch die entsprechende Header-Datei hasp_hl.h.

Hilfreich ist auch die Toolbox im VendorCenter, zumindest, solange du dir die C-API anschaust.

Vor der HASP_Handle brauchst du dich nicht gross scheuen, dass ist im Prinzip nur eine U32-Variable.

MfG, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.12.2007, 08:39 (Dieser Beitrag wurde zuletzt bearbeitet: 04.12.2007 08:54 von Lime.)
Beitrag #7

Lime Offline
LVF-Grünschnabel
*


Beiträge: 32
Registriert seit: Oct 2007

2020
2004
EN

18xxx
Deutschland
Probleme mit HASP-API
' schrieb:Vendor-Center ist wohl installiert?! Wenn nicht, INSTALLIEREN!

Ja, ist drauf... (Vendor Suite)

' schrieb:PDF-Manual bzw. PapierManual durchlesen, vor allem der Abschnitt HASP HL API Reference.

liegt vor mir...

' schrieb:Die Aufrufe, die in diesem Abschnitt beschrieben sind, findest du unter ..ProgrammeAladdinHASP HLAPIRuntimeCwin32hasp_windows.dll, im selben Verzeichnis auch die entsprechende Header-Datei hasp_hl.h.

Bei mir ist es die hasp_windows_demo.dll. Header Datei ist natürlich auch da...

Zu Beginn möchte die Funktion hasp_login ausführen. Die API reference sagt dazu folgendes:

hasp_status_t HASP_CALLCONV hasp_login(
hasp_feature_t feature_id,
hasp_vendor_code_t vendor_code,
hasp_handle_t * handle)

In LabVIEW hab ich einen Knoten zum Aufruf externer Bibliotheken eingefügt.
Darin hab ich dann die dll und die Funktion hasp_login ausgewählt. Die Aufrufkonvention ist auf stdcall (WINAPI) eingestellt.

Nun wirds knifflig:

Was muss für die Ein- und Ausgabeparameter eingestellt werden?
Ich vermute, der Rückgabetyp ist ein String im Format C-String_Zeiger...?
Was muss für feature_id eingestellt werden? Ich vermute, für das Demokit eine 0 oder eine 1?!
Der VendorCode ist der lange Schlüssel, der in der Toolbox auch im Autocode angezeigt wird....in welcher Form wird der in LabVIEW übergeben? Laut reference soll es ja ein Zeiger sein?!
Der session handle soll als Pointer übergeben werden. Wie ich das machen soll, weiß ich auch nicht. Welchen Wert weist man da überhaupt zu?


Fragen über Fragen.....

Bin für jede Hilfe dankbar!

Gruss
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.12.2007, 17:39
Beitrag #8

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Probleme mit HASP-API
Schau dir mal genau die Header-Datei an!

Die feature_id ist vom Datentyp U32, welche Features auf dem Demo-Dongle installiert waren, weiss ich nicht mehr, aber 0 geht bestimmt.

Das handle ist ebenfalls vom Datentyp U32, als Pointer wird es übergeben, da es ein Wert ist, der durch den Funktionsaufruf geändert wird. Das geht in C nicht anders.

Und den vendor_code habe ich als Array of U8-Bytes übergeben.

Der Rückgabewert der Funktion ist vom Datentyp her "hasp_status_t", das wird auch irgendwo in der Header-Datei definiert, das darfst du jetzt als Übung mal selber herausfinden.

MfG, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.12.2007, 20:16
Beitrag #9

Lime Offline
LVF-Grünschnabel
*


Beiträge: 32
Registriert seit: Oct 2007

2020
2004
EN

18xxx
Deutschland
Probleme mit HASP-API
Hallo,

heute konnte ich den ersten Erfolg verzeichnen. Der Login funktioniert schon fast. Ich bekomme zumindest keinen Crash mehr und die DLL gibt einen Fehlercode 22 aus, welcher bedeutet, dass der Vendor Code falsch ist. Das ist auch richtig so, denn ich hab zum Testen nur nen String "abcd" mitgegeben.

Der Vendor Code besteht ja aus ner Menge Zeilen und jeweils viele Zeichen pro Zeile. Sehe ich das richtig, dass ich mir daraus dann ein Array aus U8-Bytes zusammenbauen muss? Kommt dann jedes Zeichen in eine Zelle des Arrays? Das ergibt dann für den ganzen Vendor Code ein Array mit nur einer Zeile und x-Spalten....?!

Das werd ich dann morgen gleich mal testen.
So langsam komme ich wohl dahinter....

Übrigens konnte ich gestern auch noch schnell die DLL-Importfunktion von LV 8.2.1 testen. Das sieht soweit sehr brauchbar aus.

Vielen Dan für die Denkanstöße und Tipps!

Gruss
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.12.2007, 21:26 (Dieser Beitrag wurde zuletzt bearbeitet: 05.12.2007 08:48 von jg.)
Beitrag #10

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Probleme mit HASP-API
' schrieb:Der Vendor Code besteht ja aus ner Menge Zeilen und jeweils viele Zeichen pro Zeile. Sehe ich das richtig, dass ich mir daraus dann ein Array aus U8-Bytes zusammenbauen muss? Kommt dann jedes Zeichen in eine Zelle des Arrays? Das ergibt dann für den ganzen Vendor Code ein Array mit nur einer Zeile und x-Spalten....?!
Genau, String (aber ohne Zeilenumbrüche, also Carriage Returns oder LineFeeds) an die Funktion "String To Byte Array" anschließen, und schon sollte es funzen. Zum Kopieren des Vendor-Codes, öffne einfach mal die Datei "ProgrammeAladdinHASP HLVendorCodesdemoma.hvc" im ASCII-Editor.

MfG, Jens

EDIT: Ach ja, die Feature-ID ist etwas komplizierter, nicht nur einfach 0 oder 1, schau dir mal das Format in der ToolBox des VendorCenter an.

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: