Mes trois semaines de vacances m'ont permis de tester l'idée de Jean-Marc
d'écrire les fonctions (les plus simples) en C++ et de les appeler via une
dll.
Tout simplement génial : je divise le temps d'exécution par trois.
Autre intérêt de la chose, mes fonctions étant dans une boîte noire, je ne
suis pas tenté de les ré-écrire chaque fois que je veux modifier un détail.
Par contre, je préfère mettre ma dll dans le répertoire de l'exécutable,
cela impose que le répertoire courant reste celui de l'application mais cela
ne me parait pas trop rédhibitoire. Enfin peut-être y-a-t'il un défaut à
cette méthode que je n'aurai pas imaginé, merci de me donner vos avis sur
cette question.
Donc encore un grand merci à Jean-Marc qui m'a permis de progresser dans ce
domaine.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jean-Marc
"Patrice Henrio" a écrit dans le message de news:
Mes trois semaines de vacances m'ont permis de tester l'idée de Jean-Marc d'écrire les fonctions (les plus simples) en C++ et de les appeler via une dll. Tout simplement génial : je divise le temps d'exécution par trois. Autre intérêt de la chose, mes fonctions étant dans une boîte noire, je ne suis pas tenté de les ré-écrire chaque fois que je veux modifier un
détail.
Par contre, je préfère mettre ma dll dans le répertoire de l'exécutable, cela impose que le répertoire courant reste celui de l'application mais
cela
ne me parait pas trop rédhibitoire. Enfin peut-être y-a-t'il un défaut à cette méthode que je n'aurai pas imaginé, merci de me donner vos avis sur cette question. Donc encore un grand merci à Jean-Marc qui m'a permis de progresser dans
ce
domaine.
Hello,
mettre la dll dans le répertoire de l'exe est une très bonne idée. Moins on met de choses dans Windows, ou winsystem ou winsystem32 et mieux c'est. Une bonne idée donc. Si par hasard un jour cela devenait un problème, pour je ne sais quel raison, il suffirait de la déplacer et de la registrer avec regsvr32.
Et, merci du merci, ça fait plaisir :-)
-- Jean-marc "There are only 10 kind of people those who understand binary and those who don't." mailto: remove '_no_spam_' ;
"Patrice Henrio" <patrice.henrio@laposte.net> a écrit dans le message de
news:uJ0aYmanFHA.2484@TK2MSFTNGP15.phx.gbl...
Mes trois semaines de vacances m'ont permis de tester l'idée de Jean-Marc
d'écrire les fonctions (les plus simples) en C++ et de les appeler via une
dll.
Tout simplement génial : je divise le temps d'exécution par trois.
Autre intérêt de la chose, mes fonctions étant dans une boîte noire, je ne
suis pas tenté de les ré-écrire chaque fois que je veux modifier un
détail.
Par contre, je préfère mettre ma dll dans le répertoire de l'exécutable,
cela impose que le répertoire courant reste celui de l'application mais
cela
ne me parait pas trop rédhibitoire. Enfin peut-être y-a-t'il un défaut à
cette méthode que je n'aurai pas imaginé, merci de me donner vos avis sur
cette question.
Donc encore un grand merci à Jean-Marc qui m'a permis de progresser dans
ce
domaine.
Hello,
mettre la dll dans le répertoire de l'exe est une très bonne idée.
Moins on met de choses dans Windows, ou winsystem ou winsystem32
et mieux c'est. Une bonne idée donc. Si par hasard un jour cela
devenait un problème, pour je ne sais quel raison, il suffirait
de la déplacer et de la registrer avec regsvr32.
Et, merci du merci, ça fait plaisir :-)
--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ; _no_spam_jean_marc_n2@yahoo.fr
Mes trois semaines de vacances m'ont permis de tester l'idée de Jean-Marc d'écrire les fonctions (les plus simples) en C++ et de les appeler via une dll. Tout simplement génial : je divise le temps d'exécution par trois. Autre intérêt de la chose, mes fonctions étant dans une boîte noire, je ne suis pas tenté de les ré-écrire chaque fois que je veux modifier un
détail.
Par contre, je préfère mettre ma dll dans le répertoire de l'exécutable, cela impose que le répertoire courant reste celui de l'application mais
cela
ne me parait pas trop rédhibitoire. Enfin peut-être y-a-t'il un défaut à cette méthode que je n'aurai pas imaginé, merci de me donner vos avis sur cette question. Donc encore un grand merci à Jean-Marc qui m'a permis de progresser dans
ce
domaine.
Hello,
mettre la dll dans le répertoire de l'exe est une très bonne idée. Moins on met de choses dans Windows, ou winsystem ou winsystem32 et mieux c'est. Une bonne idée donc. Si par hasard un jour cela devenait un problème, pour je ne sais quel raison, il suffirait de la déplacer et de la registrer avec regsvr32.
Et, merci du merci, ça fait plaisir :-)
-- Jean-marc "There are only 10 kind of people those who understand binary and those who don't." mailto: remove '_no_spam_' ;
Jean-Marc
"Patrice Henrio" a écrit dans le message de news:
Mes trois semaines de vacances m'ont permis de tester l'idée de Jean-Marc d'écrire les fonctions (les plus simples) en C++ et de les appeler via une dll. Tout simplement génial : je divise le temps d'exécution par trois.
Encore une petite chose:
J'avais illustré dans un benchmark que pour un exemple donné, les temps de calcul obtenus étaient:
VB Pur : 12 VB + Dll en C : 4 (temps d'exécution divisé par 3) C pur : 1
Patrice confirme ici, avec un cas concret, les résultats que j'obtenais: le compromis VB+C Dll est 3 fois plus rapide que le VB pur.
Belle illustration :-)
-- Jean-marc "There are only 10 kind of people those who understand binary and those who don't." mailto: remove '_no_spam_' ;
"Patrice Henrio" <patrice.henrio@laposte.net> a écrit dans le message de
news:uJ0aYmanFHA.2484@TK2MSFTNGP15.phx.gbl...
Mes trois semaines de vacances m'ont permis de tester l'idée de Jean-Marc
d'écrire les fonctions (les plus simples) en C++ et de les appeler via une
dll.
Tout simplement génial : je divise le temps d'exécution par trois.
Encore une petite chose:
J'avais illustré dans un benchmark que pour un exemple donné,
les temps de calcul obtenus étaient:
VB Pur : 12
VB + Dll en C : 4 (temps d'exécution divisé par 3)
C pur : 1
Patrice confirme ici, avec un cas concret, les résultats
que j'obtenais: le compromis VB+C Dll est 3 fois plus rapide
que le VB pur.
Belle illustration :-)
--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ; _no_spam_jean_marc_n2@yahoo.fr
Mes trois semaines de vacances m'ont permis de tester l'idée de Jean-Marc d'écrire les fonctions (les plus simples) en C++ et de les appeler via une dll. Tout simplement génial : je divise le temps d'exécution par trois.
Encore une petite chose:
J'avais illustré dans un benchmark que pour un exemple donné, les temps de calcul obtenus étaient:
VB Pur : 12 VB + Dll en C : 4 (temps d'exécution divisé par 3) C pur : 1
Patrice confirme ici, avec un cas concret, les résultats que j'obtenais: le compromis VB+C Dll est 3 fois plus rapide que le VB pur.
Belle illustration :-)
-- Jean-marc "There are only 10 kind of people those who understand binary and those who don't." mailto: remove '_no_spam_' ;
Carrère Loïc
Salut,
Je suis un peu hors sujet mais j'aimerai tant comprendre...
Cette ligne: EstPairVB = ((n And 1) = 0)
Je n'ai pas du écouter en cours et maintenant je ne comprend pas comment (n And 1) = 0 indique si n est pair ou non.
Si vous pouviez m'éclairer...
Merci!
Après mure réflexion, Jean-Marc a écrit :
"Patrice Henrio" a écrit dans le message de news:
Mes trois semaines de vacances m'ont permis de tester l'idée de Jean-Marc d'écrire les fonctions (les plus simples) en C++ et de les appeler via une dll. Tout simplement génial : je divise le temps d'exécution par trois.
Encore une petite chose:
J'avais illustré dans un benchmark que pour un exemple donné, les temps de calcul obtenus étaient:
VB Pur : 12 VB + Dll en C : 4 (temps d'exécution divisé par 3) C pur : 1
Je suis un peu hors sujet mais j'aimerai tant comprendre...
Cette ligne: EstPairVB = ((n And 1) = 0)
Je n'ai pas du écouter en cours et maintenant je ne comprend pas
comment (n And 1) = 0 indique si n est pair ou non.
Si vous pouviez m'éclairer...
Merci!
Après mure réflexion, Jean-Marc a écrit :
"Patrice Henrio" <patrice.henrio@laposte.net> a écrit dans le message de
news:uJ0aYmanFHA.2484@TK2MSFTNGP15.phx.gbl...
Mes trois semaines de vacances m'ont permis de tester l'idée de Jean-Marc
d'écrire les fonctions (les plus simples) en C++ et de les appeler via une
dll.
Tout simplement génial : je divise le temps d'exécution par trois.
Encore une petite chose:
J'avais illustré dans un benchmark que pour un exemple donné,
les temps de calcul obtenus étaient:
VB Pur : 12
VB + Dll en C : 4 (temps d'exécution divisé par 3)
C pur : 1
Je suis un peu hors sujet mais j'aimerai tant comprendre...
Cette ligne: EstPairVB = ((n And 1) = 0)
Je n'ai pas du écouter en cours et maintenant je ne comprend pas comment (n And 1) = 0 indique si n est pair ou non.
Si vous pouviez m'éclairer...
Merci!
Après mure réflexion, Jean-Marc a écrit :
"Patrice Henrio" a écrit dans le message de news:
Mes trois semaines de vacances m'ont permis de tester l'idée de Jean-Marc d'écrire les fonctions (les plus simples) en C++ et de les appeler via une dll. Tout simplement génial : je divise le temps d'exécution par trois.
Encore une petite chose:
J'avais illustré dans un benchmark que pour un exemple donné, les temps de calcul obtenus étaient:
VB Pur : 12 VB + Dll en C : 4 (temps d'exécution divisé par 3) C pur : 1
Je crois que j'ai compri tout seul. And compare le dernier bit de n avec le bit 1 ?
Après mure réflexion, Carrère Loïc a écrit :
Salut,
Je suis un peu hors sujet mais j'aimerai tant comprendre...
Cette ligne: EstPairVB = ((n And 1) = 0)
Je n'ai pas du écouter en cours et maintenant je ne comprend pas comment (n And 1) = 0 indique si n est pair ou non.
Si vous pouviez m'éclairer...
Merci!
Après mure réflexion, Jean-Marc a écrit :
"Patrice Henrio" a écrit dans le message de news:
Mes trois semaines de vacances m'ont permis de tester l'idée de Jean-Marc d'écrire les fonctions (les plus simples) en C++ et de les appeler via une dll. Tout simplement génial : je divise le temps d'exécution par trois.
Encore une petite chose:
J'avais illustré dans un benchmark que pour un exemple donné, les temps de calcul obtenus étaient:
VB Pur : 12 VB + Dll en C : 4 (temps d'exécution divisé par 3) C pur : 1
Patrice confirme ici, avec un cas concret, les résultats que j'obtenais: le compromis VB+C Dll est 3 fois plus rapide que le VB pur.
Belle illustration :-)
-- Loïc
Je crois que j'ai compri tout seul. And compare le dernier bit de n
avec le bit 1 ?
Après mure réflexion, Carrère Loïc a écrit :
Salut,
Je suis un peu hors sujet mais j'aimerai tant comprendre...
Cette ligne: EstPairVB = ((n And 1) = 0)
Je n'ai pas du écouter en cours et maintenant je ne comprend pas comment (n
And 1) = 0 indique si n est pair ou non.
Si vous pouviez m'éclairer...
Merci!
Après mure réflexion, Jean-Marc a écrit :
"Patrice Henrio" <patrice.henrio@laposte.net> a écrit dans le message de
news:uJ0aYmanFHA.2484@TK2MSFTNGP15.phx.gbl...
Mes trois semaines de vacances m'ont permis de tester l'idée de Jean-Marc
d'écrire les fonctions (les plus simples) en C++ et de les appeler via une
dll.
Tout simplement génial : je divise le temps d'exécution par trois.
Encore une petite chose:
J'avais illustré dans un benchmark que pour un exemple donné,
les temps de calcul obtenus étaient:
VB Pur : 12
VB + Dll en C : 4 (temps d'exécution divisé par 3)
C pur : 1
Je crois que j'ai compri tout seul. And compare le dernier bit de n avec le bit 1 ?
Après mure réflexion, Carrère Loïc a écrit :
Salut,
Je suis un peu hors sujet mais j'aimerai tant comprendre...
Cette ligne: EstPairVB = ((n And 1) = 0)
Je n'ai pas du écouter en cours et maintenant je ne comprend pas comment (n And 1) = 0 indique si n est pair ou non.
Si vous pouviez m'éclairer...
Merci!
Après mure réflexion, Jean-Marc a écrit :
"Patrice Henrio" a écrit dans le message de news:
Mes trois semaines de vacances m'ont permis de tester l'idée de Jean-Marc d'écrire les fonctions (les plus simples) en C++ et de les appeler via une dll. Tout simplement génial : je divise le temps d'exécution par trois.
Encore une petite chose:
J'avais illustré dans un benchmark que pour un exemple donné, les temps de calcul obtenus étaient:
VB Pur : 12 VB + Dll en C : 4 (temps d'exécution divisé par 3) C pur : 1
Patrice confirme ici, avec un cas concret, les résultats que j'obtenais: le compromis VB+C Dll est 3 fois plus rapide que le VB pur.
Belle illustration :-)
-- Loïc
Vincent Guichard
Carrère Loïc a écrit :
Salut,
Je suis un peu hors sujet mais j'aimerai tant comprendre...
Cette ligne: EstPairVB = ((n And 1) = 0)
Je n'ai pas du écouter en cours et maintenant je ne comprend pas comment (n And 1) = 0 indique si n est pair ou non.
Si vous pouviez m'éclairer...
Merci!
En VB, And peut être un opérateur logique (le && du C) ou booléen (de comparaison bit à bit, le & du C). (n And 1) vaudra 1 si le bit de poids faible est à 1, 0 sinon.
Vincent Guichard
Carrère Loïc a écrit :
Salut,
Je suis un peu hors sujet mais j'aimerai tant comprendre...
Cette ligne: EstPairVB = ((n And 1) = 0)
Je n'ai pas du écouter en cours et maintenant je ne comprend pas comment
(n And 1) = 0 indique si n est pair ou non.
Si vous pouviez m'éclairer...
Merci!
En VB, And peut être un opérateur logique (le && du C) ou booléen (de
comparaison bit à bit, le & du C).
(n And 1) vaudra 1 si le bit de poids faible est à 1, 0 sinon.
Je suis un peu hors sujet mais j'aimerai tant comprendre...
Cette ligne: EstPairVB = ((n And 1) = 0)
Je n'ai pas du écouter en cours et maintenant je ne comprend pas comment (n And 1) = 0 indique si n est pair ou non.
Si vous pouviez m'éclairer...
Merci!
En VB, And peut être un opérateur logique (le && du C) ou booléen (de comparaison bit à bit, le & du C). (n And 1) vaudra 1 si le bit de poids faible est à 1, 0 sinon.
Vincent Guichard
Loïc
Merci Vincent.
Dans ce cas on pourait optimiser la fonction comme ceci:
Private Function NestPasPairVB(n As Long) As Boolean NestPasPairVB = (n And 1) End Function
:')
Vincent Guichard a exposé le 11/08/2005 :
Carrère Loïc a écrit :
Salut,
Je suis un peu hors sujet mais j'aimerai tant comprendre...
Cette ligne: EstPairVB = ((n And 1) = 0)
Je n'ai pas du écouter en cours et maintenant je ne comprend pas comment (n And 1) = 0 indique si n est pair ou non.
Si vous pouviez m'éclairer...
Merci!
En VB, And peut être un opérateur logique (le && du C) ou booléen (de comparaison bit à bit, le & du C). (n And 1) vaudra 1 si le bit de poids faible est à 1, 0 sinon.
Vincent Guichard
-- Loïc
Merci Vincent.
Dans ce cas on pourait optimiser la fonction comme ceci:
Private Function NestPasPairVB(n As Long) As Boolean
NestPasPairVB = (n And 1)
End Function
:')
Vincent Guichard a exposé le 11/08/2005 :
Carrère Loïc a écrit :
Salut,
Je suis un peu hors sujet mais j'aimerai tant comprendre...
Cette ligne: EstPairVB = ((n And 1) = 0)
Je n'ai pas du écouter en cours et maintenant je ne comprend pas comment (n
And 1) = 0 indique si n est pair ou non.
Si vous pouviez m'éclairer...
Merci!
En VB, And peut être un opérateur logique (le && du C) ou booléen (de
comparaison bit à bit, le & du C).
(n And 1) vaudra 1 si le bit de poids faible est à 1, 0 sinon.
Dans ce cas on pourait optimiser la fonction comme ceci:
Private Function NestPasPairVB(n As Long) As Boolean NestPasPairVB = (n And 1) End Function
:')
Vincent Guichard a exposé le 11/08/2005 :
Carrère Loïc a écrit :
Salut,
Je suis un peu hors sujet mais j'aimerai tant comprendre...
Cette ligne: EstPairVB = ((n And 1) = 0)
Je n'ai pas du écouter en cours et maintenant je ne comprend pas comment (n And 1) = 0 indique si n est pair ou non.
Si vous pouviez m'éclairer...
Merci!
En VB, And peut être un opérateur logique (le && du C) ou booléen (de comparaison bit à bit, le & du C). (n And 1) vaudra 1 si le bit de poids faible est à 1, 0 sinon.
Vincent Guichard
-- Loïc
Patrice Henrio
Non on a déjà répondu à cette remarque, les booléens doivent rester des booléens pour ne pas dépendre de la méthode d'implantation ceux-ci. Certains langages considèrent vrai à -1 (huit bits à 1), d'autres à 1 (le premier bit seulement à 1), d'autres enfin toute valeur différente de 0. La fonction NestPasPair devant renvoyer un booléen, il faut bien le transmettre en tant que tel. Par contre en C, cette fonction renverrai un entier, par exemple 1 pour impair et 0 pour pair, mais dans ce cas c'est la fonction mod avec le deuxième argument égal à 2.
"Loïc" a écrit dans le message de news:
Merci Vincent.
Dans ce cas on pourait optimiser la fonction comme ceci:
Private Function NestPasPairVB(n As Long) As Boolean NestPasPairVB = (n And 1) End Function
:')
Vincent Guichard a exposé le 11/08/2005 :
Carrère Loïc a écrit :
Salut,
Je suis un peu hors sujet mais j'aimerai tant comprendre...
Cette ligne: EstPairVB = ((n And 1) = 0)
Je n'ai pas du écouter en cours et maintenant je ne comprend pas comment (n And 1) = 0 indique si n est pair ou non.
Si vous pouviez m'éclairer...
Merci!
En VB, And peut être un opérateur logique (le && du C) ou booléen (de comparaison bit à bit, le & du C). (n And 1) vaudra 1 si le bit de poids faible est à 1, 0 sinon.
Vincent Guichard
-- Loïc
Non on a déjà répondu à cette remarque, les booléens doivent rester des
booléens pour ne pas dépendre de la méthode d'implantation ceux-ci.
Certains langages considèrent vrai à -1 (huit bits à 1), d'autres à 1 (le
premier bit seulement à 1), d'autres enfin toute valeur différente de 0.
La fonction NestPasPair devant renvoyer un booléen, il faut bien le
transmettre en tant que tel.
Par contre en C, cette fonction renverrai un entier, par exemple 1 pour
impair et 0 pour pair, mais dans ce cas c'est la fonction mod avec le
deuxième argument égal à 2.
"Loïc" <l@nospam.net> a écrit dans le message de news:
mn.5a6f7d58d6e8e5e8.16898@nospam.net...
Merci Vincent.
Dans ce cas on pourait optimiser la fonction comme ceci:
Private Function NestPasPairVB(n As Long) As Boolean
NestPasPairVB = (n And 1)
End Function
:')
Vincent Guichard a exposé le 11/08/2005 :
Carrère Loïc a écrit :
Salut,
Je suis un peu hors sujet mais j'aimerai tant comprendre...
Cette ligne: EstPairVB = ((n And 1) = 0)
Je n'ai pas du écouter en cours et maintenant je ne comprend pas comment
(n And 1) = 0 indique si n est pair ou non.
Si vous pouviez m'éclairer...
Merci!
En VB, And peut être un opérateur logique (le && du C) ou booléen (de
comparaison bit à bit, le & du C).
(n And 1) vaudra 1 si le bit de poids faible est à 1, 0 sinon.
Non on a déjà répondu à cette remarque, les booléens doivent rester des booléens pour ne pas dépendre de la méthode d'implantation ceux-ci. Certains langages considèrent vrai à -1 (huit bits à 1), d'autres à 1 (le premier bit seulement à 1), d'autres enfin toute valeur différente de 0. La fonction NestPasPair devant renvoyer un booléen, il faut bien le transmettre en tant que tel. Par contre en C, cette fonction renverrai un entier, par exemple 1 pour impair et 0 pour pair, mais dans ce cas c'est la fonction mod avec le deuxième argument égal à 2.
"Loïc" a écrit dans le message de news:
Merci Vincent.
Dans ce cas on pourait optimiser la fonction comme ceci:
Private Function NestPasPairVB(n As Long) As Boolean NestPasPairVB = (n And 1) End Function
:')
Vincent Guichard a exposé le 11/08/2005 :
Carrère Loïc a écrit :
Salut,
Je suis un peu hors sujet mais j'aimerai tant comprendre...
Cette ligne: EstPairVB = ((n And 1) = 0)
Je n'ai pas du écouter en cours et maintenant je ne comprend pas comment (n And 1) = 0 indique si n est pair ou non.
Si vous pouviez m'éclairer...
Merci!
En VB, And peut être un opérateur logique (le && du C) ou booléen (de comparaison bit à bit, le & du C). (n And 1) vaudra 1 si le bit de poids faible est à 1, 0 sinon.
Vincent Guichard
-- Loïc
Loïc
Autant pour moi. C'est vrai que je comptais sur une convertion implicite de vb ce qui finalement après tests revient au même en temps d'exécution.
Le même bench avec vb.net serait intéressant! :)
Patrice Henrio a utilisé son clavier pour écrire :
Non on a déjà répondu à cette remarque, les booléens doivent rester des booléens pour ne pas dépendre de la méthode d'implantation ceux-ci. Certains langages considèrent vrai à -1 (huit bits à 1), d'autres à 1 (le premier bit seulement à 1), d'autres enfin toute valeur différente de 0. La fonction NestPasPair devant renvoyer un booléen, il faut bien le transmettre en tant que tel. Par contre en C, cette fonction renverrai un entier, par exemple 1 pour impair et 0 pour pair, mais dans ce cas c'est la fonction mod avec le deuxième argument égal à 2.
"Loïc" a écrit dans le message de news:
Merci Vincent.
Dans ce cas on pourait optimiser la fonction comme ceci:
Private Function NestPasPairVB(n As Long) As Boolean NestPasPairVB = (n And 1) End Function
:')
Vincent Guichard a exposé le 11/08/2005 :
Carrère Loïc a écrit :
Salut,
Je suis un peu hors sujet mais j'aimerai tant comprendre...
Cette ligne: EstPairVB = ((n And 1) = 0)
Je n'ai pas du écouter en cours et maintenant je ne comprend pas comment (n And 1) = 0 indique si n est pair ou non.
Si vous pouviez m'éclairer...
Merci!
En VB, And peut être un opérateur logique (le && du C) ou booléen (de comparaison bit à bit, le & du C). (n And 1) vaudra 1 si le bit de poids faible est à 1, 0 sinon.
Vincent Guichard
-- Loïc
-- Loïc
Autant pour moi. C'est vrai que je comptais sur une convertion
implicite de vb ce qui finalement après tests revient au même en temps
d'exécution.
Le même bench avec vb.net serait intéressant! :)
Patrice Henrio a utilisé son clavier pour écrire :
Non on a déjà répondu à cette remarque, les booléens doivent rester des
booléens pour ne pas dépendre de la méthode d'implantation ceux-ci.
Certains langages considèrent vrai à -1 (huit bits à 1), d'autres à 1 (le
premier bit seulement à 1), d'autres enfin toute valeur différente de 0.
La fonction NestPasPair devant renvoyer un booléen, il faut bien le
transmettre en tant que tel.
Par contre en C, cette fonction renverrai un entier, par exemple 1 pour
impair et 0 pour pair, mais dans ce cas c'est la fonction mod avec le
deuxième argument égal à 2.
"Loïc" <l@nospam.net> a écrit dans le message de news:
mn.5a6f7d58d6e8e5e8.16898@nospam.net...
Merci Vincent.
Dans ce cas on pourait optimiser la fonction comme ceci:
Private Function NestPasPairVB(n As Long) As Boolean
NestPasPairVB = (n And 1)
End Function
:')
Vincent Guichard a exposé le 11/08/2005 :
Carrère Loïc a écrit :
Salut,
Je suis un peu hors sujet mais j'aimerai tant comprendre...
Cette ligne: EstPairVB = ((n And 1) = 0)
Je n'ai pas du écouter en cours et maintenant je ne comprend pas comment
(n And 1) = 0 indique si n est pair ou non.
Si vous pouviez m'éclairer...
Merci!
En VB, And peut être un opérateur logique (le && du C) ou booléen (de
comparaison bit à bit, le & du C).
(n And 1) vaudra 1 si le bit de poids faible est à 1, 0 sinon.
Autant pour moi. C'est vrai que je comptais sur une convertion implicite de vb ce qui finalement après tests revient au même en temps d'exécution.
Le même bench avec vb.net serait intéressant! :)
Patrice Henrio a utilisé son clavier pour écrire :
Non on a déjà répondu à cette remarque, les booléens doivent rester des booléens pour ne pas dépendre de la méthode d'implantation ceux-ci. Certains langages considèrent vrai à -1 (huit bits à 1), d'autres à 1 (le premier bit seulement à 1), d'autres enfin toute valeur différente de 0. La fonction NestPasPair devant renvoyer un booléen, il faut bien le transmettre en tant que tel. Par contre en C, cette fonction renverrai un entier, par exemple 1 pour impair et 0 pour pair, mais dans ce cas c'est la fonction mod avec le deuxième argument égal à 2.
"Loïc" a écrit dans le message de news:
Merci Vincent.
Dans ce cas on pourait optimiser la fonction comme ceci:
Private Function NestPasPairVB(n As Long) As Boolean NestPasPairVB = (n And 1) End Function
:')
Vincent Guichard a exposé le 11/08/2005 :
Carrère Loïc a écrit :
Salut,
Je suis un peu hors sujet mais j'aimerai tant comprendre...
Cette ligne: EstPairVB = ((n And 1) = 0)
Je n'ai pas du écouter en cours et maintenant je ne comprend pas comment (n And 1) = 0 indique si n est pair ou non.
Si vous pouviez m'éclairer...
Merci!
En VB, And peut être un opérateur logique (le && du C) ou booléen (de comparaison bit à bit, le & du C). (n And 1) vaudra 1 si le bit de poids faible est à 1, 0 sinon.
Vincent Guichard
-- Loïc
-- Loïc
ng
Salut,
mettre la dll dans le répertoire de l'exe est une très bonne idée. Moins on met de choses dans Windows, ou winsystem ou winsystem32 et mieux c'est. Une bonne idée donc. Si par hasard un jour cela devenait un problème, pour je ne sais quel raison, il suffirait de la déplacer et de la registrer avec regsvr32.
Non ! ici on a a faire ç une dll "classique", pas COM ! Donc pas d'inscription dans le registre vace regsvr32.
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/
Salut,
mettre la dll dans le répertoire de l'exe est une très bonne idée.
Moins on met de choses dans Windows, ou winsystem ou winsystem32
et mieux c'est. Une bonne idée donc. Si par hasard un jour cela
devenait un problème, pour je ne sais quel raison, il suffirait
de la déplacer et de la registrer avec regsvr32.
Non ! ici on a a faire ç une dll "classique", pas COM ! Donc pas
d'inscription dans le registre vace regsvr32.
--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
mettre la dll dans le répertoire de l'exe est une très bonne idée. Moins on met de choses dans Windows, ou winsystem ou winsystem32 et mieux c'est. Une bonne idée donc. Si par hasard un jour cela devenait un problème, pour je ne sais quel raison, il suffirait de la déplacer et de la registrer avec regsvr32.
Non ! ici on a a faire ç une dll "classique", pas COM ! Donc pas d'inscription dans le registre vace regsvr32.
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/