Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Quel est le plus rapide ? C ou C++ ou autre? Quel logiciel gratuit utiliser?

140 réponses
Avatar
Raymond H.
Bonjour,
J'aimerais me créer une DLL qui s'exécute très rapidement et qui est
utilisé par un logiciel VB. Quel logiciel gratuit et facile d'utilisation
(pour novice) puis-je utiliser et qui donne le code le plus rapide?
r.h.

10 réponses

1 2 3 4 5
Avatar
Emmanuel Delahaye
Raymond H. wrote on 05/02/05 :
J'aimerais me créer une DLL qui s'exécute très rapidement et qui est
utilisé par un logiciel VB. Quel logiciel gratuit et facile d'utilisation
(pour novice) puis-je utiliser et qui donne le code le plus rapide?


Dev-C++

http://www.bloodshed.net/devcpp.html

Le bon forum pour la suite est

news:fr.comp.os.ms-windows.programmation

--
Emmanuel
The C-FAQ: http://www.eskimo.com/~scs/C-faq/faq.html
The C-library: http://www.dinkumware.com/refxc.html

"Clearly your code does not meet the original spec."
"You are sentenced to 30 lashes with a wet noodle."
-- Jerry Coffin in a.l.c.c++

Avatar
Pierre Maurette
Bonjour,
J'aimerais me créer une DLL qui s'exécute très rapidement et qui est
utilisé par un logiciel VB. Quel logiciel gratuit et facile d'utilisation
(pour novice) puis-je utiliser et qui donne le code le plus rapide?
r.h.
Raymond, vous êtes "légèrement" HS sur fclc.


Le C (ou le C++ "à la C") est une bonne solution en termes de rapidité.
Le C++ pourrait être imposé par d'autres contraintes, comme
l'utilisation d'une bibliothèque externe, ou peut-être la gestion des
exceptions. Tout ce qui vous est proposé gratuitement est à la fois C et
C++.
La solution pragmatique est certainement DevC++:
http://www.bloodshed.net/
Léger à télécharger, facile à installer et à utiliser, vous avez un
expert DLL qui vous laisse choisir entre C et C++. Le seul problème à
mon sens, c'est cette p..... de syntaxe AT&T si vous êtes amené à
inliner de l'assembleur, mais il semble que ".intel_syntax noprefix"
résolve ce problème:
http://www.gamedev.net/reference/articles/article1987.asp

DevC++ est facile à utiliser, mais le C n'est pas d'un apprentissage
immédiat. Si vous ne souhaitez pas faire cet investissement pour une
paire de fonctions, il existe un langage peut-être plus simple, c'est
l'assembleur. Je vous ai mis ici un projet VB6, un projet VB7 et un
squelette de DLL exposant 3 fonctions:
http://assembleur.maurette.free.fr/dossiers/vb_dll/
(pour les outils, dans un premier temps, voyez autour de MASM32 8.2
Google), ou jetez un oeil ici:
http://assembleur.maurette.free.fr/dossiers/FoSite/ch04_05.htm

Attention, je ne parle que d'éviter d'apprendre le C, je ne dis pas que
rapide = assembleur. Revenons sur la rapidité. Tout d'abord, du bon
sens, c'est à dire que les fonctions de le DLL doivent être copieuses.
En un mot, ne pas appeler la fonction dans une boucle, mais mettre les
boucles dans la fonction (OK, c'est évident).
Ensuite, la rapidité va dépendre du ciblage que vous souhaitez. Une DLL
pour toute plateforme au moins pentium (voir au moins 386), ou une
optimisation spécifique jusqu'au K8 (AMD64)? DevC++ vous permet ce ciblage.
C, C + inline asm ou assembleur? Je dirais dans l'ordre:
. mauvais compilo C.
. C + inline asm (ou 100% asm, c'est pareil si on a une bonne vision des
goulets).
. bon compilo C bien utilisé et bien paramétré.
J'avais fait des comparaisons Gcc 3.2 / Microsoft VC7.0. Avantage
indiscutable au second. Il faudrait refaire les tests avec Gcc 3.4 et
les dernier outils Microsoft, pour un ciblage donné. Il est possible que
DevC++, même si moins bon que cl/cl64, vous donne l'amélioration
souhaitée par rapport à VB, et que ce soit *suffisant*.
La plupart des bons outils, jusqu'à cl64 et ml64, sont gratuitement
disponibles sur le site de Microsoft. Voir en particulier Visual C++
2005 Express Beta (EDI super sympa, mais je ne crois pas qu'il y ait un
Wizard DLL dans la Beta, ce qui n'est pas très grave) et le VC 2005
refresh. Mais les trouver, les décompresser, en récupérer les bons
outils est assez galère. Faut également se farcir la lecture des EULA,
selon l'utilisation que l'on souhaite en faire.
--
Pierre

Avatar
Raymond H.
Merci :-)
r.h.

"Emmanuel Delahaye" a écrit dans le message de news:

Raymond H. wrote on 05/02/05 :
J'aimerais me créer une DLL qui s'exécute très rapidement et qui est
utilisé par un logiciel VB. Quel logiciel gratuit et facile
d'utilisation (pour novice) puis-je utiliser et qui donne le code le plus
rapide?


Dev-C++

http://www.bloodshed.net/devcpp.html

Le bon forum pour la suite est

news:fr.comp.os.ms-windows.programmation

--
Emmanuel
The C-FAQ: http://www.eskimo.com/~scs/C-faq/faq.html
The C-library: http://www.dinkumware.com/refxc.html

"Clearly your code does not meet the original spec."
"You are sentenced to 30 lashes with a wet noodle."
-- Jerry Coffin in a.l.c.c++




Avatar
Erwann ABALEA
Salut Raymond,

On Sat, 5 Feb 2005, Raymond H. wrote:

J'aimerais me créer une DLL qui s'exécute très rapidement et qui est
utilisé par un logiciel VB. Quel logiciel gratuit et facile d'utilisation
(pour novice) puis-je utiliser et qui donne le code le plus rapide?


Le code le plus rapide sera celui qui vérifie les exigences suivantes:
- utilise un algorithme performant
- est compilé par un bon compilateur

Tu peux donc faire ça en C ou C++, au choix, ça n'a pas d'importance.

Accessoirement, la lecture de la Bible ne t'aide pas dans ce cas précis?
;)

--
Erwann ABALEA - RSA PGP Key ID: 0x2D0EABD5
-----
AB> J'ai demandé à Rémi de le faire.
Pourquoi moi ? Mais qu'avez-vous donc contre moi ? Je ne vous ai rien
fait à la fin!
-+-RL in GNU - Tu connais la différence entre Neuneu et un Pitbull ?-+-

Avatar
Olivier Azeau
Erwann ABALEA wrote:
Salut Raymond,

On Sat, 5 Feb 2005, Raymond H. wrote:


J'aimerais me créer une DLL qui s'exécute très rapidement et qui est
utilisé par un logiciel VB. Quel logiciel gratuit et facile d'utilisation
(pour novice) puis-je utiliser et qui donne le code le plus rapide?



Le code le plus rapide sera celui qui vérifie les exigences suivantes:
- utilise un algorithme performant
- est compilé par un bon compilateur

Tu peux donc faire ça en C ou C++, au choix, ça n'a pas d'importance.


Voire même rester en VB sans avoir à rajouter une dll...


Avatar
Raymond H.
rapide = assembleur. Revenons sur la rapidité. Tout d'abord, du bon sens,
c'est à dire que les fonctions de le DLL doivent être copieuses. En un
mot, ne pas appeler la fonction dans une boucle, mais mettre les boucles
dans la fonction (OK, c'est évident).


Bonjour,

Merci pour votre réponse. Disons que j'ai un peu de difficulté à
suivre puisque le C n'est pas mon langage par défaut mais c'est plutôt le
VB.

J'ai téléchargé DevC++. Vous parlez de ne pas utiliser un appel de DLL dans
une boucle. Mais dans mon cas, c'est une boucle dans une boucle. Ma boucle
en VB traite d'une variable qui lit 2048 octets à la fois à partir d'un
fichier. Donc, un fichier de plusieurs Mo est lu par portion de 2048 octets
à la fois. Si je lis plus de 2048 octets à la fois alors ça ralentis le
processus de traitement de ces données en VB; c'est pourquoi le traitement
(chiffrage/déchiffrage) se fait par portion de 2048 octets.

Je voudrais que chaque portion de 2048 octets, ou plutôt chaque contenue
de la variable en VB qui contient ces 2 Ko soit traité en C en faisant appel
à une DLL écrite en C, afin d'accélérer le traitement
(chiffrement/déchiffrement); le traitement de cette variable se ferait donc
dans une bouche au sein de la procédure de la DLL; donc une boucle (dans la
DLL) exécutée à partir d'une autre boucle (en VB). Car j'ai peut-être une
centaine de ligne dans ma procédure en VB et c'est pourquoi je ne veux pas
toute la reproduire dans la DLL écrite en C (c'est mieux pour un novis comme
moi en C).

J'aurais besoin d'apprendre seulement la base pour le traitement de
cette variable dans la DLL, et comment créer cette DLL.

En résumé:

1- J'ai un fichier de 10 Mo dont je veux chiffrer.

2- Ma procédure en VB lit le fichier par portion de 2 Ko à la fois. Cette
procédure est utilisée aussi pour déterminer le temps écoulé et restant du
traitement de chiffrage/déchiffrage du fichier lu; donc, visualisé dans une
barre de défilement.

3- À chaque fois que la variable lit un 2 Ko de donnée à partir du fichier,
ma procédure VB fait appel à la DLL pour que la DLL traite (dans une autre
boucle) les données de cette variable (chiffrage ou déchiffrage de chaque
octets).

4- Après que les 2Ko de données sont chiffrées/déchiffrées, ces données sont
lues par ma procédure VB qui elle continue son traitement en VB.

5- Les étapes 3 et 4 se répètent jusqu'à la fin du fichier.

6- On sort de la bouche de VB et on termine la procédure VB.



Disons que je ne connais rien en C mais j'aimerais bien trouver un site
ou quelqu'un qui pourrait me donner un coup de main pour débuter pas à pas
cette DLL (avec DevC++ que j'ai téléchargé et installé sous WindowsXP).



Bonne journée

Raymond

Avatar
Raymond H.
Tu peux donc faire ça en C ou C++, au choix, ça n'a pas d'importance.


Voire même rester en VB sans avoir à rajouter une dll...

C'est déjà fait en VB, mais le problème est la lenteur de l'exécution du

chiffrage/déchiffrage lorsqu'on a de gros fichiers de plusieurs dizaines de
Mo à traiter.
a+
r.h.


Avatar
Raymond H.
Bonjour,

"Erwann ABALEA" a écrit dans le message de news:

Salut Raymond,

On Sat, 5 Feb 2005, Raymond H. wrote:

J'aimerais me créer une DLL qui s'exécute très rapidement et qui est
utilisé par un logiciel VB. Quel logiciel gratuit et facile
d'utilisation
(pour novice) puis-je utiliser et qui donne le code le plus rapide?


Le code le plus rapide sera celui qui vérifie les exigences suivantes:
- utilise un algorithme performant


:-)

- est compilé par un bon compilateur

Tu peux donc faire ça en C ou C++, au choix, ça n'a pas d'importance.



Hier, j'ai téléchargé le logiciel 'DevC++' pour le faire en C, et en
plus il y aurait un compilateur d'inclus.

Bonne journée
Raymond


Avatar
Jean-Marc
"Olivier Azeau" a écrit
dans le message de news:JI8Nd.20802$
Erwann ABALEA wrote:
Salut Raymond,

On Sat, 5 Feb 2005, Raymond H. wrote:


J'aimerais me créer une DLL qui s'exécute très rapidement et qui
est



utilisé par un logiciel VB. Quel logiciel gratuit et facile
d'utilisation



(pour novice) puis-je utiliser et qui donne le code le plus rapide?



Le code le plus rapide sera celui qui vérifie les exigences suivantes:
- utilise un algorithme performant
- est compilé par un bon compilateur

Tu peux donc faire ça en C ou C++, au choix, ça n'a pas d'importance.


Voire même rester en VB sans avoir à rajouter une dll...


Cas typique: une recherche linéaire en dans un gros tableau, même
écrite en C, aura des performances lamentables face à une recherche en
table de hachage, même écrite en VB. Il faut d'abord chercher un
algorithme efficace avant de chercher à gagner en performance en
choissisant un langage plus rapide.

--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."



Avatar
Emmanuel Delahaye
Raymond H. wrote on 05/02/05 :
Hier, j'ai téléchargé le logiciel 'DevC++' pour le faire en C, et en plus
il y aurait un compilateur d'inclus.


Il y a 2 compilateurs. Un C et un C++.

--
Emmanuel
The C-FAQ: http://www.eskimo.com/~scs/C-faq/faq.html
The C-library: http://www.dinkumware.com/refxc.html

"Clearly your code does not meet the original spec."
"You are sentenced to 30 lashes with a wet noodle."
-- Jerry Coffin in a.l.c.c++

1 2 3 4 5