JoePatent
Messages postés171Date d'inscriptionjeudi 30 janvier 2003StatutMembreDernière intervention20 juillet 2008 21 nov. 2003 à 03:34
moi j'ai vraiment besoin que la dll retourne une chaine de caracteres par retour de fonction.
Peux-tu me parler un peu plus des 3 fonctions non documenté. Merci
dualite2
Messages postés16Date d'inscriptionvendredi 11 octobre 2002StatutMembreDernière intervention27 avril 2005 25 juil. 2003 à 12:25
heu la il faut s'interesser au trois fonction de vb non documenté concernant les pointeurs.
cs_jm2
Messages postés14Date d'inscriptionjeudi 24 avril 2003StatutMembreDernière intervention 5 novembre 2003 24 juil. 2003 à 11:06
Ma question au départ était la communication d'une chaine par retour de fonction et non par modification de contenu. Mais effectivement cette solution marche très bien, merci.
dualite2
Messages postés16Date d'inscriptionvendredi 11 octobre 2002StatutMembreDernière intervention27 avril 2005 23 juil. 2003 à 19:35
si tu lis deux msg au dessus tu aura ta reponsse...
cs_jm2
Messages postés14Date d'inscriptionjeudi 24 avril 2003StatutMembreDernière intervention 5 novembre 2003 23 juil. 2003 à 17:22
Ton exemple est très interessant.
Sais-tu comment renvoyer une chaine de caractère depuis la DLL vers VB?
dualite2
Messages postés16Date d'inscriptionvendredi 11 octobre 2002StatutMembreDernière intervention27 avril 2005 22 juil. 2003 à 10:36
oki merci pour tout
ha encore un truc pour info il existe sous vb trois fonctions de pointeurs non documenté. sa pourrais servir dans le cadre de chaine non initialisé...
voili si je m'en sert je te rajouterai un exemple en commentaire histoire d'aller plus loin.
@+
cs_PierreF
Messages postés33Date d'inscriptionmercredi 15 mai 2002StatutMembreDernière intervention24 octobre 2003 22 juil. 2003 à 09:59
Il y a deux GetVar
- GetVar2: c'est celui auquel je pense dans mon précedent message
La DLL modifie une chaine de caractère a condition que le chaine est été initialiser (le tmp=" ", c'est similaire du get de VB)
Cette fonction n'a aucune problème. Bien entendu si on a mis 5 espace dans le chaine la DLL ne doit pas mettre plus de 5 caractère.
-Getvar : c'est la prémiere fonction que j'ai voulu fair. La c'est la DLL qui crée la chaine donc VB n'a pas besoin d'initialiser la chaine.
Mais cette fonction plante de temps a autre (en release ou pendant le debugage). La raison est explique dans le code en C, les commentair l'expliquant sont dans la fonction GetVar.
Pour fair simple c'est que VB n'utilise pas des chaine clasique, il a un en-tête et comme je ne sais pas le crée (car je ne connait pas le format) VB ne connait pas la taille de la chaine et prend n'importe quoi comme taille. Donc il y a des erreur (violation d'accés).
Pour les @x ca sera (dans notre cas) a rien du tout. c'est juste que les fonction éxporté on un numéro (ou alors c'est uniquement leurs ordre je sais pas) mais si on veut les référencés pas un numéro, comme ca on peut, il n'est pas du tout obligatoire, je l'ai mis car j'avait trouvée un exemple qui les mettait.
dualite2
Messages postés16Date d'inscriptionvendredi 11 octobre 2002StatutMembreDernière intervention27 avril 2005 21 juil. 2003 à 23:26
oui en effet j'ai mal compris une partie des sources d'ailleur merci de me l'avoir fait remarquer ce prb m'empechait d'avancer.
Mais tu dis que getvar plante?
Autre question pourrais tu me dire a quoi sert le numéro unique @x.
cs_PierreF
Messages postés33Date d'inscriptionmercredi 15 mai 2002StatutMembreDernière intervention24 octobre 2003 21 juil. 2003 à 20:29
Soit j'ai pas compris ce que tu veut faire, soit tu a mal regarder mes source
Pour modifier des nombre il y a Inc
Pour modifier des chaine de caractère (a condition d'être initialiser sous VB avec par exemple un chaine=space(255) pour un chaine de 255 caractère) il y a getvar
donc je sais pas si c'est ce que tu veut faire, si c'est le cas regard a nouveau les sources
dualite2
Messages postés16Date d'inscriptionvendredi 11 octobre 2002StatutMembreDernière intervention27 avril 2005 21 juil. 2003 à 18:07
salut a tous
d'abord merci a toi pour ce code qui marche nikel, mais toutefois j'ai une petite remarque a faire dessus :
impossible de changer le contenu des variable d'appel via le pointeur passé en ByRef je supose donc que vb fait une copie de la variable en memoire en passe l'@ de cette copie ensuite a la fonction.
Ainsi une modification de la copie n'entraine pas celle de la variable ceci dit s'est assez ennuyeux vu que je contait sur cette possibilité pour mon programme alors si quelqu'un sait quelque chose qu'il n'hésite surtout pas a m'en faire profiter.
+ all
juju62611
Messages postés16Date d'inscriptiondimanche 2 février 2003StatutMembreDernière intervention25 novembre 2005 23 avril 2003 à 08:39
ton programme fonctionne mais ce que je ne comprends pas
c'est que j'i fait un projet identique et il ne veut rien savoir il me dis toujours fichier dll introuvable qu'il soit dans le même repertoire que le projet vb ou dans system32 y a t'il qqchose a faire en plus ?
cs_RbbR
Messages postés22Date d'inscriptionmardi 22 octobre 2002StatutMembreDernière intervention 9 avril 2003 30 oct. 2002 à 16:08
ca fonction pa ????
cs_Arnaud
Messages postés33Date d'inscriptiondimanche 11 mars 2001StatutMembreDernière intervention11 juillet 2002 14 juil. 2002 à 12:26
Merci cela répond a ma question mais en faite moi je pensais pouvoir intégrer une boite de dial. avec l'éditeurs de dial. de vc++.
Merci
Djstey
cs_PierreF
Messages postés33Date d'inscriptionmercredi 15 mai 2002StatutMembreDernière intervention24 octobre 2003 13 juil. 2002 à 22:46
Voila, j'ai mit à jour ma source. J'éspere que ca repond à ta question
Si ce que tu veut c'est stocket une dialog (feuille dans les ressources) dans une DLL et l'utiliser dans un programme ca marche, je croie, exatement de la même façon, tu à une fonction du genre LoadDialogRes (un truc qui te charge la dialog) tu doit pouvoir lui demander de la charger à partire des ressources d'une DLL. Sinon la DLL charche la dialog et lui passe l'addresse mémoire.
Attention mettre une dialog dans une DLL et vouloir la charger et la gérer à partire de VB
ca doit être très dur!
Si j'ai pas répondu à ta question présice ta question et je regarderais si je peut t'aider
cs_Arnaud
Messages postés33Date d'inscriptiondimanche 11 mars 2001StatutMembreDernière intervention11 juillet 2002 13 juil. 2002 à 15:06
peu etre que ici j'aurrais une repose plus rapidement
comment on mets une fenetre dans un dll ????
Merci Djstey
21 nov. 2003 à 03:34
Peux-tu me parler un peu plus des 3 fonctions non documenté. Merci
25 juil. 2003 à 12:25
24 juil. 2003 à 11:06
23 juil. 2003 à 19:35
23 juil. 2003 à 17:22
Sais-tu comment renvoyer une chaine de caractère depuis la DLL vers VB?
22 juil. 2003 à 10:36
ha encore un truc pour info il existe sous vb trois fonctions de pointeurs non documenté. sa pourrais servir dans le cadre de chaine non initialisé...
voili si je m'en sert je te rajouterai un exemple en commentaire histoire d'aller plus loin.
@+
22 juil. 2003 à 09:59
- GetVar2: c'est celui auquel je pense dans mon précedent message
La DLL modifie une chaine de caractère a condition que le chaine est été initialiser (le tmp=" ", c'est similaire du get de VB)
Cette fonction n'a aucune problème. Bien entendu si on a mis 5 espace dans le chaine la DLL ne doit pas mettre plus de 5 caractère.
-Getvar : c'est la prémiere fonction que j'ai voulu fair. La c'est la DLL qui crée la chaine donc VB n'a pas besoin d'initialiser la chaine.
Mais cette fonction plante de temps a autre (en release ou pendant le debugage). La raison est explique dans le code en C, les commentair l'expliquant sont dans la fonction GetVar.
Pour fair simple c'est que VB n'utilise pas des chaine clasique, il a un en-tête et comme je ne sais pas le crée (car je ne connait pas le format) VB ne connait pas la taille de la chaine et prend n'importe quoi comme taille. Donc il y a des erreur (violation d'accés).
Pour les @x ca sera (dans notre cas) a rien du tout. c'est juste que les fonction éxporté on un numéro (ou alors c'est uniquement leurs ordre je sais pas) mais si on veut les référencés pas un numéro, comme ca on peut, il n'est pas du tout obligatoire, je l'ai mis car j'avait trouvée un exemple qui les mettait.
21 juil. 2003 à 23:26
Mais tu dis que getvar plante?
Autre question pourrais tu me dire a quoi sert le numéro unique @x.
21 juil. 2003 à 20:29
Pour modifier des nombre il y a Inc
Pour modifier des chaine de caractère (a condition d'être initialiser sous VB avec par exemple un chaine=space(255) pour un chaine de 255 caractère) il y a getvar
donc je sais pas si c'est ce que tu veut faire, si c'est le cas regard a nouveau les sources
21 juil. 2003 à 18:07
d'abord merci a toi pour ce code qui marche nikel, mais toutefois j'ai une petite remarque a faire dessus :
impossible de changer le contenu des variable d'appel via le pointeur passé en ByRef je supose donc que vb fait une copie de la variable en memoire en passe l'@ de cette copie ensuite a la fonction.
Ainsi une modification de la copie n'entraine pas celle de la variable ceci dit s'est assez ennuyeux vu que je contait sur cette possibilité pour mon programme alors si quelqu'un sait quelque chose qu'il n'hésite surtout pas a m'en faire profiter.
+ all
23 avril 2003 à 08:39
c'est que j'i fait un projet identique et il ne veut rien savoir il me dis toujours fichier dll introuvable qu'il soit dans le même repertoire que le projet vb ou dans system32 y a t'il qqchose a faire en plus ?
30 oct. 2002 à 16:08
14 juil. 2002 à 12:26
Merci
Djstey
13 juil. 2002 à 22:46
Si ce que tu veut c'est stocket une dialog (feuille dans les ressources) dans une DLL et l'utiliser dans un programme ca marche, je croie, exatement de la même façon, tu à une fonction du genre LoadDialogRes (un truc qui te charge la dialog) tu doit pouvoir lui demander de la charger à partire des ressources d'une DLL. Sinon la DLL charche la dialog et lui passe l'addresse mémoire.
Attention mettre une dialog dans une DLL et vouloir la charger et la gérer à partire de VB
ca doit être très dur!
Si j'ai pas répondu à ta question présice ta question et je regarderais si je peut t'aider
13 juil. 2002 à 15:06
comment on mets une fenetre dans un dll ????
Merci Djstey