2010-10-20 9 views
2

J'ai une grande application écrite en C++, pour diverses raisons je vais la réécrire en C#, j'ai fait beaucoup de Delphi en C#, VB en C# mais C++ en C# je n'ai jamais fait, bien que je sois compétent en C++ je veux que ce soit une conversion aussi douce que possible. En gros, ce que je demande, c'est quels pièges m'attendent dans cette conversion, y a-t-il des domaines clés que je devrais être au courant ou des conseils que vous pouvez me fournir.Mise à niveau de C++ vers C#

Cet article est assez bon, mais y at-il autre chose que je devrais être fatigué?

http://msdn.microsoft.com/en-us/magazine/cc301520.aspx

+7

vous avez du mal à rétrograder dans votre titre;) –

+0

Non, il a mal orthographié C--;) – Mike

+1

@OP bonne chance! :-) –

Répondre

6

Piège principal - ne pense pas que c'est une mise à niveau. Ce sont des langues différentes, et dans de nombreux endroits, vous aurez besoin d'une approche différente et complète des problèmes. Donc, vous devriez penser à réimplémentation avec une réutilisation minimale du code.

Cet article est décent.

+0

C'est mon objectif, la mise à niveau est probablement le mauvais mot. – kyndigs

+0

Vouliez-vous relier un article ou faites-vous référence à celui que le PO a publié? – Default

3

Je vous conseille de faire attention au cycle de vie des objets.

En C++, vous détruisez les objets explicitement lorsque vous en avez fini avec eux. En C# (.NET) vous ne le faites pas. Il peut arriver qu'un objet conserve une ressource importante (gestionnaire de fichier, connexion à une base de données, etc.). En cas de problème, utilisez la directive using.

1

La manipulation des cordes était un piège pour moi au début. Alors que je Visual C++ vous utilisez des pointeurs les méthodes en C# ont en effet retourné des valeurs.

dummy = dummy.Replace("a", "b"); 
2

Vous devez traduire l'esprit du code, mais pas le code lui-même. Vous devez laisser derrière tout ce que vous avez à faire en C++ car c'est comme ça que ça a été fait là-bas. Une bonne traduction est un processus hautement créatif, alors soyez créatif.

1

Si vous avez C++ dll et que vous voulez les utiliser dans votre projet C# vous pouvez les utiliser par pinvoke et DllImport

Il y aura beaucoup de différences alors que vous allez essayer de convertir ou de réécrire le code non managé à une gestion . Voici un C++ to C# converter qui est assez bon pour convertir votre code C++ en C#, bien que vous ne pouvez pas vous attendre à convertir le projet entier en l'utilisant.

Questions connexes