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
Créer un fichier PDF de la contribution Imprimer


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
Créer un fichier PDF de la contribution Imprimer


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
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


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
Créer un fichier PDF de la contribution Imprimer


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
Créer un fichier PDF de la contribution Imprimer


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
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


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.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2