37 votes

Windows Phone 7 et natif C++/CLI

Microsoft a récemment publié des outils et de la documentation pour son nouveau Téléphone 7 plate-forme, à la consternation de ceux qui ont une grosse base de code C++ (comme moi) ne prend pas en charge native de développement plus. Bien que j'ai trouvé la spéculation au sujet de cette décision étant inversée, j'en doute. Donc, je pensais à comment viable serait de rendre ce code à la disposition Phone 7 en l'adaptant à compiler en C++/CLI. Bien sûr, l'interface utilisateur des parties ne pouvait pas être porté, mais je ne suis pas sûr du reste. Quelqu'un a eu une expérience similaire? Je ne parle pas du code qui ne lourds à faible niveau de trucs mais il y a un très fréquente utilisation des modèles et des pointeurs intelligents.

11voto

adrianm Points 7067

Vous pouvez générer vérifiables géré code en C++/CLI à l'aide de l' /clr:option sécuritaire. Le problème est que la plupart des normal de votre code c++ compile pas avec cette option.

11voto

Andy Dent Points 9852

c++/cli peut théoriquement être utilisé avec WPF/Silverlight utilisant l'astuce de remplacer le C# généré à partir de la XAML avec une définition de macro qui peut être utilisé à l'intérieur de la classe principale dans un fichier code-behind. J'ai travaillé sur cette technique mais je n'ai pas eu la motivation de le prendre au-delà de la théorie, je suis tout à fait heureux mélange des langues.

Aussi loin que l'aide de c++/cli dans un pur mode sans échec de votre code de logique, ce n'est pas encore possible, mais j'aimerais savoir comment quelqu'un va l'essayer maintenant. En faisant des recherches pour Silverlight en 2008, j'avais trouvé ce redoutable silverlight forum commentaire:

J'ai juste donné Silverlight&C++ un essai de compiler le MSIL de mon projet de C++ dans un Silverlight-compatible DLL. La bonne nouvelle: il fonctionne, et vous pouvez appeler ce code à partir d'un projet Silverlight. La mauvaise nouvelle: Le compilateur C++ utilise apparemment instructions MSIL que Silverlight n'autorise pas.

Donc, si vous essayez cela, même avec le plus simple des programmes, vous aurez presque immédiatement l'exception de"l'Opération pourrait déstabiliser le moteur d'exécution." Pour moi, cela semble moins probable que nous allons voir Silverlight pour C++ bientôt, comme le compilateur devra se comporter un peu différemment.

9voto

Rich Turner Points 4845

C# est actuellement le seul pris en charge linguistique pour WinPhone7.

Je m'attends à ce que MS va ajouter le support pour visual basic et C++/CLI dans le futur, mais ne vous attendez pas à ouvrir le code natif kimono de sitôt.

Code natif a juste trop de problèmes à surmonter, en particulier au sujet de la sécurité, la fiabilité, etc. Code managé est BEAUCOUP plus facile de vérifier statiquement et BEAUCOUP plus facile à contrôler lors de l'exécution.

Si vous êtes contrarié sur le portage d'un code C++ C#, juste être heureux MS ne vous force pas à passer à l'Objective-C ;)

De notre propre expérience, le processus de portage bien écrit, C++, C#, prend beaucoup moins d'effort que l'on pourrait le croire de prime abord. Bien sûr, il ya une courbe d'apprentissage, mais vous avez qu'avec n'importe quel port. On l'a donc beaucoup d'avantages du portage de base de notre application et des données pour les moteurs de C# que nous avons remanié l'ensemble de notre équipe pour le code en C# et le port de nos C# en C++, si nécessaire, plutôt que l'inverse! Jusqu'à présent, nous avons seulement porté deux modules en C++ et appelez notre code C# à partir de notre code natif via l'interopérabilité à la place.

Encore une fois, rappelez-vous, WinPhone est une toute nouvelle plate-forme en utilisant le meilleur de la race, très productifs, la prochaine génération d'outils de développement et de plates-formes. Ce n'est pas votre père WinMo.

Si soutien pour le C++ est quelque chose que vous trouverez à être extrêmement important, alors assurez-vous que MS savez - (d'une manière respectueuse et professionnelle) de l'état de votre position dans les forums MSDN et au développeur événements près de chez vous.

Update1: 2012-12-17:

Bien que natif C++ n'est toujours pas officiellement pris en charge pour Windows Phone 7 Windows Phone 8 est maintenant compatible avec du code C++ natif de sorte que vous pouvez plus facilement le port de votre C++ existant de la base de code(s) pour Windows Phone 8 (ainsi que Windows 8 et Windows les applications de bureau).

Alors qu'il n'y a pas 100% de compatibilité entre les Windows8/Phone8 plates-formes et l'API droit maintenant, j'attends les deux plates-formes pour devenir de plus en plus intégrée au cours des deux prochaines versions.

Cela est particulièrement vrai maintenant que l'un des principaux obstacles à une coopération plus étroite entre Windows et d'autres groupes de Microsoft a récemment quitté la société ;)

Update2: 4/15/2014:

Comme pour les annonces récentes à la //BUILD/ 2014, vous pouvez maintenant commencer à construire "universelle" des applications en C++ & XAML, C#/VB et XAML ou java script et HTML qui sera exécuté sur Windows 8.1, Windows Phone 8.1 et Xbox One! Pour plus de détails sur la création de Windows Phone 8.1 Universal Apps, lisez cet article.

3voto

gyurisc Points 4250

L'ensemble du développement de l'idée est construit sur Silverlight. Je pense que vous pouvez ajouter votre géré dll écrite en C++ sans aucun problème à ce projet Silverlight, mais il ne pouvait pas utiliser du code natif.

J'ai l'intention d'installer les outils sur ma machine ce soir et essayer cela.

2voto

Thomas Points 45

Il est très bien si MS décide de quitter le chemin et de créer quelque chose de nouveau, c'est-MS décision. Donc, nous allons faire face à la réalité. Silverlight n'est pas une réussite encore. MS a perdu part importante due à Apple, Android et RIM. Les développeurs d'applications n'ont tout simplement afin d'évaluer la rentabilité de leur propres applications et de décider s'ils ont confiance à un gain de part de Windows phone 7 ou pas. Pour la société que je dirige, nous avons décidé de ne pas soutenir de plus MS Windows phone 7, pas à cause de cela ou l'autre raison technique, mais juste parce que nous ne croyons pas dans le retour de notre investissement pour le port. Nous avons commencer à soutenir Apple, Symbian, Android et MeeGo, dans l'avenir, si nous voyons un succès sur le marché de cette nouvelle plate-forme. Tous les C/C++ et nous permettre de réutiliser notre application éprouvée cœurs. Alors, pourquoi s'inquiéter du tout. Personnel de la technologie de préférences ne devrait pas être de déclenchement. Si les préférences personnelles de soucis, puis j'ai le coup de MS pour leur pour moi moche à la recherche de l'INTERFACE utilisateur.

Thomas

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X