|
Integration de dll |
|
Anonyme
|
Je desire integrer des clefs hasp (aladin) dans mon appli, la fonction hasp fournie par windev étant incompléte (les clef reseau n'étant pas gérées) je desire réaliser le code d'intégration. Aladin fournie les dll complete pour du C C++ VB mais pas pour windev. Mon but est le suivant charger la dll en C fournie et traduire le code prevu en windev mais je butte sur la traduction en windev, voici le code en vb
en VB : Dim feature As HaspFeature = HaspFeature.ProgNumDefault
Dim vendorCode As String = "XXX"
Dim hasp1 As Hasp = new Hasp(feature) Dim status As HaspStatus = hasp1.Login(UTF8Encoding.Default.GetBytes(vendorCode))
If (HaspStatus.StatusOk <> status) Then 'handle error End If
MERCI d'avance
Contribution le : 16/08/2005 10:56
|
|
|
Re: Integration de dll |
|
Anonyme
|
je complete le post precedent par le code en C car la dll integrée est en C
const hasp_feature_t feature = HASP_PROGNUM_DEFAULT_FID;
hasp_handle_t handle = 0; hasp_status_t status;
unsigned char vendor_code[] = "p0AosKZcgvIqHRZwMAK6MqljLvA8fjsYK92+Z4QMib0WKbM/3ljp/RAHjtNwN4wfy1W8oFXWujbbnEpp" "gxd0vulb/ZTuqIvG5hiAuyjLoDYl49KmvXGoXL1yWEwFBIDoVYEbMy1x1Q9k0XxcRioqIGKs8Q/xX8Zq" "jvQlQyZi2p27biH4GxKvZew2ctfKKxEK87gHBxEC3Pz40bqUnPUEl5KnjfXwTX674ZG0d8HVNnccAOqd" "blCHHQN6P5LdRpTOQI6B1W4+cLWOv30i1rsjCv8yWfiqV7k909pVuE8s2YMHGBb14jKOjE4lm1FBQ2j8" "yr7S/jLFBBy1wbDSpThnwT06uzjGgXRhANPVji7lUYdNNebK/v5daWpZGN/e1x0H5QhnSOiclsxNRKAS" "9f4fVv3iLNHYZHi41W5S87teNkEDG/jkMQchv/Ub/VJTgW03neH44ZzbaAs2Ox+44ZkxdKtDXQM/e0g2" "qpafrtfPyu07XaEWifw+IBDq2hCoiyB02OZcHVZXAyPO5sk/5pFXr0J2rNT5tf09rqHuemgZnSbEO1Xk" "hrKTo/XS3i9Jw9ST/UgbpSaO5aeiCsWeQ8X5RJ3CIWVDTKC1G2dpadJftEMR2rFS6N9ixxP/1R7pdT1d" "f79/H/dPTVvzuy76dcpxj0UP7/mF/X6GO8OqUOxKG8DoEPGMiZxHHm3ZgLib6uljbQ2ewZYKFp69QSVV" "MAHumT+wCgWPKg==";
status = hasp_login(feature, vendor_code, &handle);
/* check if operation was successful */ if (status != HASP_STATUS_OK) { switch (status) { case HASP_FEATURE_NOT_FOUND: break; case HASP_CONTAINER_NOT_FOUND: break; case HASP_OLD_DRIVER: break; case HASP_NO_DRIVER: break; case HASP_INV_VCODE: break; default: break; } }
Contribution le : 16/08/2005 11:13
|
|
|
Re: Integration de dll |
|
Animateur WDF
Inscrit: 02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
|
Bonjour, Le code VB que vous fournissez ressemble fortement à du VB.net car en VB6 on ne peut pas faire d'affectation de valeur au moment de sa déclaration. Par conséquent il suffit de charger l'assembly (la Dll) via le menu Atelier - Utiliser un assemblage dot net pui s d'utiliser le bouton parcourir pour sélectionner la dll en question. A la volée sans tests: feature est un HASPFeature:ProgNumDefaut dynamique
vendorCode est une chaine = "XXX"
hasp1 est un Hasp dynamique
hasp1 = new Hasp(feature
status est un HaspStatus dynamique
status = hasp1:Login(UTF8Encoding::Default:GetBytes(vendorCode))
si (HaspStatus:StatusOk <> status) amors
//'handle error
fin
Contribution le : 16/08/2005 11:24
|
|
|
Re: Integration de dll |
|
Anonyme
|
Merci beaucoup de votre reponse en effet le code est du vb net, pour utiliser l'ensemblage je suppose que je dois telecharger le frame work dot net idem sur le poste client, cela me semble lourd, n'est il pas possible d'utiliser la dll en C en traduisant simplement le code ?
Contribution le : 16/08/2005 11:46
|
|
|
Re: Integration de dll |
|
Inscrit: 19/11/2002 12:20
Post(s): 390
|
Ce n'est pas si trivial que ça. En théorie ce n'est pas dur.
On charge la DLL, on fait appel à la fonction DLL: res=API("aladdin.dll","hasp_login",feature, vendor_code, &handle)
et on regarde le résultat...
Les hics c'est qu'il faut regarder la définition des objets hasp_handle_t, hasp_status_t et la valeur des constantes HASP_PROGNUM_DEFAULT_FID (et les autres).
A priori vous devriez tout retrouver dans un .h ou autre livré avec la DLL, l'exemple que vous donnez n'est pas complet, il doit manquer des include.
Contribution le : 17/08/2005 16:37
|
|
|
Re: Integration de dll |
|
Anonyme
|
J'ai opté pour l'integartion de la dll dotnet merci pour les conseils, pour integrer la dll il faut le framework dotnet sur le poste de developpement mais une fois les classes rapatriée dans windev sur le poste client il suffit que la dll soit presente avec l'exe et ca tourne sans le frame work .net, donc ca roule
Contribution le : 18/08/2005 10:35
|
|
Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.