Salut,
Selon vous, quelle est la manière la plus simple de convertir un code gcc, en un code Visual C++ ?
Salut,
Selon vous, quelle est la manière la plus simple de convertir un code gcc, en un code Visual C++ ?
Ta question est un peu vague
Tu pourrais préciser si tu utilises des makefiles, des libs propres à gcc, ta version de visual studio ...
![]()
et même parmi les libs standard de gcc... il y a pas mal de changement pour vc++ notamment dans la libc si tu y a recours parfois, où des méthodes disponibles sous environnement linux n'existent pas sous windows, car ces méthode existent dans l'API Windows.
de même si tu utilise les sockets nativement, sans passer par une lib tierce, le passage à VC++ risque de nécessiter pas mal de modifications.
Si tu a réécrit des classes à la sauce STL en mettant des templates partout, également il n'est pas sure que l'écriture que tu ai choisi fonctionne également sous VC++... trouver une écriture avec les templates qui compile et fonctionne à la fois sur les 2 compilateurs n'est pas toujours évident.
précise un peu plus avant qu'on puisse t'aider car comme tu vois...
Non, je n'utilise pas de makesfiles dans ce projet.
J'ignore si les librairies que j'utilise sont propres à gcc ;
#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
#include<sys/wait.h>
#include<string.h>
J'utilise Visual C++ 2010 Express
Je ne pense pas avoir recours à la libc (vu les includes)
J'ignore aussi si j'utilise les sockets nativement, sans passer par une lib tierce
Je ne pense pas avoir réécrit des classes à la sauce STL en mettant des templates partout, car j'ignore ce qu'est STL. Et les templates, ce sont des patrons ?
Enfin, comme vous le voyez, je débute pas mal.
J'avais entendu dire que le C et le C++ était des langages portables, alors du coup, ça m'étonne de rencontrer tant de difficultés...
C'est vrai que C et C++ sont des langages portables ?
Salut en théorie le plus simple c'est de
-créer un nouveau projet
-rajouter aux projets tous les fichiers .c,.cpp.h
Maintenant ce qui est le plus important c'est de savoir quel type de projet tu utilises si c'est un projet ligne de commande genre dos ou un projet avec une fenêtre genre Windows et des boutons.
Tu risques d'avoir des problèmes à la compilation notamment pour certaines classes ou structures.
Il faut regarder et trouver dans le MSDN les équivalents
sous Windows on peut utiliser les sockets nativement il faut passer par Winsock mais les appels de fonctions sont strictement identiques ( recv(),connect() etc..
http://msdn.microsoft.com/en-us/libr...16(VS.85).aspx
la STL fonctionne parfaitement avec VC++.
On peut même l'utiliser avec les MFC
Et pareil pour boost...
les MFC... hum... vu le bordel je lui souhaite du courage
Alors pour information ton projet utilise la libc... et c'est bien ca le problème.
en dehors des mots clés qui varient entre g++ et vc++, la libc... change pas mal aussi...
en effet, il n'y a quasiment aucune méthode "réentrante" dans la libc de windows/vc++, alors que yen a plein la libc de linux, résultat... les développeurs qui ont eu vent que c'était mieux d'utiliser les méthodes réentrantes, les utilisent et comme il est très dur dans ce pays de trouver des développeurs multiplateforme...
Le problème, c'est que C++ c'est de loin le langage le plus complexe qui soit, et le plus subtile... si tu n'a aucune connaissance dans le domaine, porter un projet C++ linux vers Windows ca ressemble vaguement à mission impossible
enfin bon je dit ca je dit rien... hein...
mais moi je te conseillerais quand même déjà d'apprendre le langage avant, c'est la moindre des choses.
Mat.M les appels sont les mêmes pour les winsocks à ceci prêt qu'il est souvent nécessaires de faire des réglages particuliers nécessitant un API non exposé par linux, si tu veux que certaines de ces méthodes "identiques" aient un fonctionnement identique...
Si t'avais fait du développement avec les sockets entre les 3 versions de BSD, quelques distrib linux, et windows... tu saurais que si y a bien un domaine où tout ce qui est sensé être standard ne l'est pas... c'est bien ca.
et oui BSD expose les memes fonctions de libc, et surprise... elles fonctionnent pas du tout pareil, ou carrément mieux, elles sont juste là pour faire beau... windows fait pareil dans son coin...
alors le fin du fin pour son projet c'est si y a un include du genre #include <pthread.h> dans le projet... le portage de son projet est particulièrement compromis... cette lib n'existe pas dans windows, vu que c'est inclue nativement dans l'api windows, et que ca ne ressemble pas du tout et que la gestion est totalement différente...
La STL c'est très bien si tu sais l'utiliser, et son projet ne l'utilise pas, il n'y a aucun include spécifique.
Partager