Quel est le plus rapide ? C ou C++ ou autre? Quel logiciel gratuit utiliser?
Le
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.
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.

Poser une question


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++
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/ar...le1987.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/...rs/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/...h04_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
r.h.
"Emmanuel Delahaye"
On Sat, 5 Feb 2005, Raymond H. wrote:
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 -----
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 ?-+-
Voire même rester en VB sans avoir à rajouter une dll...