cs_thigo
Messages postés44Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention15 juin 2006
-
17 juin 2004 à 11:21
cs_thigo
Messages postés44Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention15 juin 2006
-
18 juin 2004 à 08:46
Je voudrais utiliser des fonctionalités contenues dans une dll.
Supposons que la fonctionalité que je veux utiliser s'appelle aditionnne et que je doit passer deux entiers pour recupérer un resultat (entier).
resultat = aditionne( 3, 5 )
Comment dois je déclaré mon accès à la dll, ou dois je la mettre dans mon source.
Tout cela en vb.net.
Je n'arrive pas à trouver d'exemple concret
Merci
:sad)
A voir également:
Gravité code description projet fichier ligne état de la suppression erreur échec de l'ajout de la référence à 'comerr64'. vérifiez que ce fichier est accessible et qu'il s'agit d'un assembly ou d'un composant com valide.
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 17 juin 2004 à 12:44
pour faire cela c'est tres simple.
tu met la dll dans ton dossier bin
ensuite tu met au debut de ton fichier .vb
imports namespace où namespace et le namespace de ta dll
exemple : soit le code de la dll le code suivant dans un fichier .vb
Namespace Cyril
Public class Addition
Public function Add(i as integer, j as integer) as integer
return i+j
end Function
end Class
end Namespace
tu compiles ce code et tu obtient une dll
tu met cette dll dans le repertoire bin de ton application web
dans le debut du code .vb ou tu veux utiliser ta dll tu fais :
Imports Cyril
...
et tu pourras faire
dim obj as new Addition
dim resultat as integer = obj.add(1,2)
cs_thigo
Messages postés44Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention15 juin 2006 17 juin 2004 à 13:08
Merci pour ta réponse mais la méthode que tu proposes fonctionne dans le cas ou tu crées toi même la dll. En ce qui me concerne je désire utiliser une dll que l'on me fournit.
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 17 juin 2004 à 13:13
c'est la meme chose.
si t'as vs.net dans l'explorateur de solution tu fais ajouter une reference, ensuite au debut du code tu tapes Imports l'intellisens prend le relais tu trouveras le namespace facilement...
cs_thigo
Messages postés44Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention15 juin 2006 17 juin 2004 à 14:04
je viens d'essayer mais quand j'importe la dll en reference, j'ai un message d'erreur du syle :
Une reference 'nom de ma dll' n'a pas pu être ajoutée. Il ne s'agit pas d'un assembly ou d'un composant COM. Seuls les assemblys avec l'extension dll et les composants COM peuvent être référencés. Assurez vous que le fichier est accessible et qu'il s'agit d'un assembly valide ou d'un composant.
Je suis décidément pas très bon et je suis bloqué.
Ma dll est faite en delphi dont voici le code :
library Testdll2;
uses
SysUtils,
Classes;
{$R *.res}
function DllCharge : string; stdcall;
begin
DllCharge := 'Dll chargée';
end;
exports
DllCharge;
begin
end.
Mais cette dll fonctionne.
AU SECOURS
:(
Vous n’avez pas trouvé la réponse que vous recherchez ?
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 17 juin 2004 à 15:52
ok je pensais que tu avais une dll qui etait fait avec un langage .net, et je pense que ce n'est pas que ce soit le cas (a moins qu'il existe du delphi.net mais la je connais pas)
en ce qui concerne pour deverouiller ta dll, je ne vois pas du tout comment faire
cs_thigo
Messages postés44Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention15 juin 2006 17 juin 2004 à 16:01
En tous les cas c'est sympa d'avoir répondu, mais en fait mon problème subsite toujours car la dll finale qu'on m'a fourni est comporte une class que je dois instancier.
J'aurai bien procédé comme tu me la montrer pour ce faire mais j'ai la même problème que sucité.
Donc retour à la case départ mais merci quand même
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 17 juin 2004 à 20:25
ok :-/
Le code de ta dll est il ecrit en delphi.net, il me semble avoir vu des articles la dessus donc je pense que ca existe. si elle n'est pas ecrite en .net as tu accés au code de cette dll ?
sinon essaye de me faire passer cette dll soit avec un lien si tu en as sinon par email (contact moi par message privé), apres l'avoir recue j'essaierais de tester certains trucs pour voir si je peux faire qqchose.
Je pense aussi a d'autres trucs. tu as que ca comme code dans ta dll ? pourkoi ne pourrais tu pas ecrire ca directement en delphi.net ou meme en vb.net.
si tu peux pas changer ta dll, je pense à une astuce. Tu pourrais essayer de faire du code en delphi.net qui se sert de ta dll et ensuite de te servir de ton code en delphi.net ... car je pense que ca doit etre assez simple de se servir de ta dll avec delphi.net
encore une autre suggestion, avec asp.net tu peux tres bien ecrire ton code en tout langage .net donc aussi en delphi.net pourkoi ne pas ecrire ton code asp.net en delphi.net si tu maitrise celui ci
voila je t'ai donné qq suggestions, sans reponse precise à ton problème
cs_thigo
Messages postés44Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention15 juin 2006 17 juin 2004 à 22:24
En fait j'ai voulu faire simple mais je pose ces questions à titre professionnel. La dll que je doit utilisée au final est en c. J'en possède l'interface que je te ferais parvenir si tu le veux bien.
Les demandes du dessus étaient simplifiés pour faire court. Je pensais que les réponses me suffiraient mais ça n'a pas été le cas.
Le code c me décrit une class semble t il. Je doit donc créer une instance de cette class dans mon code mais je ne sais comment faire. Je pourrais te faire parvenir le code demin.
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 17 juin 2004 à 22:41
Je comprend ton envie de simplification ;) il me semble avoir vu qqparts un article permettant de faire ca, mais je ne sais plus trop ou, j'essaye de chercher un petit peu, et je te dis si je trouve ca
void LLtoXY(double in_LatiDeg, double in_LongiDeg, long *out_XDest, long *out_YDest);
void XYtoLL(long in_XSrc, long in_YSrc, double *out_LatiDeg, double *out_LongiDeg);
void LoxodromieLL(double *out_Cap, long *out_Dist, double in_LatiDegA, double in_LongiDegA, double in_LatiDegB, double in_LongiDegB);
void LoxodromieXY(double *out_Cap, long *out_Dist, long in_XA, long in_YA, long in_XB, long in_YB);
protected:
lxwProjectionI* m_pThis;
};
#endif // !defined(__LXWPROJECTION_H__)
Le principe d'utilisation est qu'il faut initialiser la class avec CreateProjection pour que je puisse utiliser la fonction de projection LLtoXY.
Cette dernière procédure n'est ni plus ni moins qu'une procédure de conversion d'un couple de valeurs en un autyre couple de valeurs.