Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 2021
-
23 sept. 2003 à 21:52
cs_EBArtSoft
Messages postés4525Date d'inscriptiondimanche 29 septembre 2002StatutModérateurDernière intervention22 avril 2019
-
14 mai 2007 à 21:03
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_EBArtSoft
Messages postés4525Date d'inscriptiondimanche 29 septembre 2002StatutModérateurDernière intervention22 avril 20199 14 mai 2007 à 21:03
Merci Draluorg> j'ai fait beaucoup de modification depuis que je l'ai deposé et ce bug a été corrigé. mais je n'ai pas encore pris le temps de faire la mise à jour. car je ne savais pas qu'il etait encore utilisé :p
draluorg
Messages postés625Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention25 novembre 2010 14 mai 2007 à 13:15
Salut,
Ce code est super simpa, je l'ai depuis un ptit temps deja, mais hier je me suis appercu qu'il declarait un long pour les api devant retourner un string.
Private declare MaFonction() as string
est devenu long Mafonction()
au lieu de BSTR MaFonction()
trois fois rien mais j'avais pas remarquer tout de suite et ca m'a bien planter mon appli, je ne sais pas comment mais ca m'a créé un swap de 2Giga (dans une bouble de test)
++
cs_cyci
Messages postés5Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention29 juin 2012 10 août 2004 à 11:23
J'ai un pb, quand on met des enum, le tlb n'est pas créé... Dans ce cas seul le fichier odl apparaît...
Afyn
Messages postés608Date d'inscriptionsamedi 3 août 2002StatutMembreDernière intervention22 décembre 2016 29 juin 2004 à 13:24
C koi fbsl ?
Afyn
shadowmoy
Messages postés340Date d'inscriptionjeudi 25 juillet 2002StatutMembreDernière intervention25 août 2007 29 juin 2004 à 11:36
en y reflechissant je me demande si le parseur vb convertie pas tous simplement une partie du code vb en c++ pour ensuite le compiler ?
un peu a la maniere de bcx qui convertie du basic en C et est compilé ensuite via un compilo C gratos comme lcc ?
ca demande reflexion non ?
ca serais meme interessant un convertisseur vb --> C compilable avec lcc (qui est gratuit je le rappel) le hic c'est pour la gestion objets :/
ca demande de creer un generateur de code qui en plus supporterai les activex mais c faisable :op
fbsl le fait et lagafeuse en est l'auteur lol !
comme koi ca demande reflexion ...
Afyn
Messages postés608Date d'inscriptionsamedi 3 août 2002StatutMembreDernière intervention22 décembre 2016 25 janv. 2004 à 12:41
J'ai qd même regardé le travail de Renfield, j'ai trouvé une petite différences dans le fichier Odl, je sais pas si c'est important ou pas:
voila son fichier :
typedef struct
{
long Left;
long Top;
long Right;
long Bottom;
}RECT;
Voila un fichier crée par ton prog
typedef struct
{
long dwLowDateTime;
long dwHighDateTime;
} FILETIME;
La petite différence, c'est qu'il y a un "espace" entre la } et FILETIME
C'est juste pour ton info...
Afyn
Afyn
Messages postés608Date d'inscriptionsamedi 3 août 2002StatutMembreDernière intervention22 décembre 2016 25 janv. 2004 à 12:20
BruNews doit savoir ?
J'ai jeté un oeil sur mon book pour programmer des composants
VB, il parle du modèle COM et du langage IDL, mais c'est assez
obscur pour moi (ISBN : 2-84082-377-2)
Est ce que si l'on fait un projet de DLL active X en déclarant
des API et en le référencant dans notre prj on obtient
le même résultat qu'avec un fichier Tlb (puisque ca à l'air
d'être les mêmes mécanismes).
Je peux pas t'aider désolé. (ca me dépasse)
A+
Afyn
cs_EBArtSoft
Messages postés4525Date d'inscriptiondimanche 29 septembre 2002StatutModérateurDernière intervention22 avril 20199 25 janv. 2004 à 11:18
Ouai je connais celui-ci mais merci pour tout ceux qui ne le connaissent pas encore j'en rajoute un si vous le permettez :
Afyn>En fait j'ai modifié l'OdlCreator pour accepter les type et les constante mais j'ai un pb de referencement quand j'essais d'appeler
un API avec un type genre GetVersion
Ce que je disais pour resoudre temporairement ton pb c'est
exactement ce que tu a dit un peu plus haut c'est a dire :
- supprimer le FILETIME de l'odl
- modifier la declaration de SetWaitableTimer en
mettant [in,out] void * lpDueTime ce qui signifie que l'on
envoi un pointer de n'importe quel type (en realité un long)
dans vb ce serais ByRef lpDueTime as Any ce qui te permet
d'eviter ton pb de reference dans l'ide de vb
- puis tu compile ton *.odl en *.tlb et dans ton projet vb
tu ajoute le type FILETIME
est ce que c'est un peu plus clair ?
je ne suis pas un expert dans lelanguage odl et j'ai pas encore
compris d'ou vient ce probleme avec les "type" donc si qlq 1
sait qu'il le dise svp
(il a pas une idée mon petit Renfield ? ;-) )
@+
Afyn
Messages postés608Date d'inscriptionsamedi 3 août 2002StatutMembreDernière intervention22 décembre 2016 25 janv. 2004 à 10:15
Pour info ...
J'ai trouvé ce site ou on parle d'optimisation, d'API et de TLB, mais c'est en anglais, je ne sais pas si ca peut servir ...
Afyn
Messages postés608Date d'inscriptionsamedi 3 août 2002StatutMembreDernière intervention22 décembre 2016 25 janv. 2004 à 09:48
C'est à dire ? :
- j'édite le fichier *.odl (avec le Bloc Note par ex)
- Je modifie la déclaration -> je supprime FILETIME et je met void
à la place (On pointe sur l'adresse mais on retourne pas de valeur
c'est ça ?)
- J'enregistre mon fichier Odl modifié ...
Et Aprés ???
-> Je vais demander à NIX de faire une rubrique communication :
avec quelques principes de base, l'emetteur du message, le
recepteur,, est ce que l'emetteur et le recepteur on le même
référentiel pour se comprendre etc ...
Je n'ai pas ton niveau de connaissance, dommage pour moi, alors
il faut m'expliquer un petit peu..., voir vulgariser, tu es exellent quand tu veux (cf La ville et les messages win).
Est ce qu'on peut pas modifier ton prog ? pour qu'il prenne en compte
les Type ?
Merci
AAA+
Afyn - Navedac
(Les cancres ont la plus grande marge de progression !)
cs_EBArtSoft
Messages postés4525Date d'inscriptiondimanche 29 septembre 2002StatutModérateurDernière intervention22 avril 20199 24 janv. 2004 à 23:05
Afyn> bravo pour ton premier tlb ! lol
je prepare les versions que tu as demander kernel et winmm
mais ça risque de prendre un peu de temps de plus j'ai aussi
un souci avec les "type" dans les declarations qui ne passe pas
pour ton probleme definis le param comme ceci dans l'*.odl
[in,out] void * lpDueTime
et de mettre le Type FILETIME dans ton module vb
ça devrais surement marcher
@+
Afyn
Messages postés608Date d'inscriptionsamedi 3 août 2002StatutMembreDernière intervention22 décembre 2016 24 janv. 2004 à 22:15
J'ai réussi à créer un fichier TLB mais j'ai un problème avec la déclaration suivante:
Private Declare Function SetWaitableTimer Lib "kernel32" (ByVal hTimer As Long, lpDueTime As FILETIME, ByVal lPeriod As Long, ByVal pfnCompletionRoutine As Long, ByVal lpArgToCompletionRoutine As Long, ByVal fResume As Long) As Long
Le Type FILETIME ne passe pas
J'ai le message Type ByRef icompatible...
Comment puisje faire ?
Sinon pour mes autres déclaration ca fonctionne
Je ne sais pas si le gain est important.
A+
Afyn
Afyn
Messages postés608Date d'inscriptionsamedi 3 août 2002StatutMembreDernière intervention22 décembre 2016 23 janv. 2004 à 22:15
J'ai pas bien compris comment on fabrique le fichier TLB.
Mais j'aimerai bien essayer avec deux ou trois API que j'utilise.
J'pourrais avoir quelques explications simples sur la marche a suivre.
Merci coop.
A+
Afyn
shadowmoy
Messages postés340Date d'inscriptionjeudi 25 juillet 2002StatutMembreDernière intervention25 août 2007 25 sept. 2003 à 09:40
ps : ca marche aussi pour les autres types de compilation comme les dll ou ocx :)
++
shadowmoy
Messages postés340Date d'inscriptionjeudi 25 juillet 2002StatutMembreDernière intervention25 août 2007 25 sept. 2003 à 09:38
Pour les pocesseurs de vb6 fr (version entreprise) il suffit d'aller dans :
Projet>Propriété du projet (onglet Composant) et de cocher la case:
'Fichier serveur Distant'
A chaque compilation vb créera un tlb en plus de l'exe qu'il suffiras d'ajouter en reference à d'autres projets :)
c mieux non ?
voila pour l'info, allez à plus et bonne prog !!!
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 23 sept. 2003 à 21:52
Sympa, bonne idée, je n'y avait pas pensé, sous cette forme.....
14 mai 2007 à 21:03
14 mai 2007 à 13:15
Ce code est super simpa, je l'ai depuis un ptit temps deja, mais hier je me suis appercu qu'il declarait un long pour les api devant retourner un string.
Private declare MaFonction() as string
est devenu long Mafonction()
au lieu de BSTR MaFonction()
trois fois rien mais j'avais pas remarquer tout de suite et ca m'a bien planter mon appli, je ne sais pas comment mais ca m'a créé un swap de 2Giga (dans une bouble de test)
++
10 août 2004 à 11:23
29 juin 2004 à 13:24
Afyn
29 juin 2004 à 11:36
un peu a la maniere de bcx qui convertie du basic en C et est compilé ensuite via un compilo C gratos comme lcc ?
ca demande reflexion non ?
ca serais meme interessant un convertisseur vb --> C compilable avec lcc (qui est gratuit je le rappel) le hic c'est pour la gestion objets :/
ca demande de creer un generateur de code qui en plus supporterai les activex mais c faisable :op
fbsl le fait et lagafeuse en est l'auteur lol !
comme koi ca demande reflexion ...
25 janv. 2004 à 12:41
voila son fichier :
typedef struct
{
long Left;
long Top;
long Right;
long Bottom;
}RECT;
Voila un fichier crée par ton prog
typedef struct
{
long dwLowDateTime;
long dwHighDateTime;
} FILETIME;
La petite différence, c'est qu'il y a un "espace" entre la } et FILETIME
C'est juste pour ton info...
Afyn
25 janv. 2004 à 12:20
J'ai jeté un oeil sur mon book pour programmer des composants
VB, il parle du modèle COM et du langage IDL, mais c'est assez
obscur pour moi (ISBN : 2-84082-377-2)
Est ce que si l'on fait un projet de DLL active X en déclarant
des API et en le référencant dans notre prj on obtient
le même résultat qu'avec un fichier Tlb (puisque ca à l'air
d'être les mêmes mécanismes).
Je peux pas t'aider désolé. (ca me dépasse)
A+
Afyn
25 janv. 2004 à 11:18
http://www.persistentrealities.com/vbfibre/index.php
Afyn>En fait j'ai modifié l'OdlCreator pour accepter les type et les constante mais j'ai un pb de referencement quand j'essais d'appeler
un API avec un type genre GetVersion
Ce que je disais pour resoudre temporairement ton pb c'est
exactement ce que tu a dit un peu plus haut c'est a dire :
- supprimer le FILETIME de l'odl
- modifier la declaration de SetWaitableTimer en
mettant [in,out] void * lpDueTime ce qui signifie que l'on
envoi un pointer de n'importe quel type (en realité un long)
dans vb ce serais ByRef lpDueTime as Any ce qui te permet
d'eviter ton pb de reference dans l'ide de vb
- puis tu compile ton *.odl en *.tlb et dans ton projet vb
tu ajoute le type FILETIME
est ce que c'est un peu plus clair ?
je ne suis pas un expert dans lelanguage odl et j'ai pas encore
compris d'ou vient ce probleme avec les "type" donc si qlq 1
sait qu'il le dise svp
(il a pas une idée mon petit Renfield ? ;-) )
@+
25 janv. 2004 à 10:15
J'ai trouvé ce site ou on parle d'optimisation, d'API et de TLB, mais c'est en anglais, je ne sais pas si ca peut servir ...
http://www.xbeat.net/vbspeed
A+
Afyn
25 janv. 2004 à 09:48
- j'édite le fichier *.odl (avec le Bloc Note par ex)
- Je modifie la déclaration -> je supprime FILETIME et je met void
à la place (On pointe sur l'adresse mais on retourne pas de valeur
c'est ça ?)
- J'enregistre mon fichier Odl modifié ...
Et Aprés ???
-> Je vais demander à NIX de faire une rubrique communication :
avec quelques principes de base, l'emetteur du message, le
recepteur,, est ce que l'emetteur et le recepteur on le même
référentiel pour se comprendre etc ...
Je n'ai pas ton niveau de connaissance, dommage pour moi, alors
il faut m'expliquer un petit peu..., voir vulgariser, tu es exellent quand tu veux (cf La ville et les messages win).
Est ce qu'on peut pas modifier ton prog ? pour qu'il prenne en compte
les Type ?
Merci
AAA+
Afyn - Navedac
(Les cancres ont la plus grande marge de progression !)
24 janv. 2004 à 23:05
je prepare les versions que tu as demander kernel et winmm
mais ça risque de prendre un peu de temps de plus j'ai aussi
un souci avec les "type" dans les declarations qui ne passe pas
pour ton probleme definis le param comme ceci dans l'*.odl
[in,out] void * lpDueTime
et de mettre le Type FILETIME dans ton module vb
ça devrais surement marcher
@+
24 janv. 2004 à 22:15
Private Declare Function SetWaitableTimer Lib "kernel32" (ByVal hTimer As Long, lpDueTime As FILETIME, ByVal lPeriod As Long, ByVal pfnCompletionRoutine As Long, ByVal lpArgToCompletionRoutine As Long, ByVal fResume As Long) As Long
Le Type FILETIME ne passe pas
J'ai le message Type ByRef icompatible...
Comment puisje faire ?
Sinon pour mes autres déclaration ca fonctionne
Je ne sais pas si le gain est important.
A+
Afyn
23 janv. 2004 à 22:15
Mais j'aimerai bien essayer avec deux ou trois API que j'utilise.
J'pourrais avoir quelques explications simples sur la marche a suivre.
Merci coop.
A+
Afyn
25 sept. 2003 à 09:40
++
25 sept. 2003 à 09:38
Projet>Propriété du projet (onglet Composant) et de cocher la case:
'Fichier serveur Distant'
A chaque compilation vb créera un tlb en plus de l'exe qu'il suffiras d'ajouter en reference à d'autres projets :)
c mieux non ?
voila pour l'info, allez à plus et bonne prog !!!
23 sept. 2003 à 21:52