Je dois développer une application sur Windows. Je n'ai jamais fait ça avant; -) p>
Je dois faire un calcul audio lourd, qui doit être écrit en C / C ++. Cette partie sera un algorithme de correction de la pièce qui prend actuellement environ 10 secondes par canal pour exécuter Matlab. Il doit être écrit en C / C ++, car il pourrait être porté à un DSP plus tard, qui doit être programmé en C / C ++. P>
En outre, j'ai besoin d'une interface graphique pour examiner les calculs, visualiser les résultats et modifier les paramètres de calcul. La partie difficile de cette interface graphique sera beaucoup de tracé de spectres, de spectrogrammes, de formes d'onde audio et similaires. P>
Maintenant, j'entends que WPF est toute la rage dans Windows Guis, mais il semble être limité à C #. Existe-t-il un moyen simple d'intégrer mon code C / C ++ avec un code d'interface graphique C #? Ou devrais-je plutôt prendre des winforms et écrire tout cela en C ++? Ou Qt fonctionnerait-il tout aussi bien et fournirait-il des capacités multiplateformes "gratuitement"? P>
J'ai une certaine expérience avec C / C ++, Matlab et VST-Développement, mais je n'ai jamais écrit une véritable application et honnêtement, je ne sais même pas où commencer. P>
Merci d'avance! p>
3 Réponses :
WPF vous attachera à Windows, mais pas à une langue en particulier. Vous pouvez écrire des applications WPF dans C #, VB.NET, géré C ++ ou toute autre langue .NET. P>
Winforms est également lié à Windows, mais vous pourrez peut-être écrire votre application de manière à ce qu'il s'exécute également sur Mono , et est donc une plate-forme inter-plate-forme. Cependant, WinForms est une boîte à outils beaucoup moins compétente en matière de visualisations complexes. P>
Interop entre les applications .NET et Native est très forte, mais il est certain de vous causer au moins une petite douleur. D'autre part, la mise en œuvre de l'interface dans un environnement indigène peut vous empêcher encore plus de douleur. P>
Si vous êtes heureux que votre interface graphique soit liée à Windows et à .NET, WPF est la meilleure option pour les applications hautement visuelles. Si vous ne voulez pas une dépendance sur .NET ou Windows, QT semble être votre seule option. P>
Je ne dirais pas que c'est beaucoup moins capable .. Avec OwnerDrawn, vous pouvez créer des guissioses assez fantastiques .. Nous, anciens lycés, ont eu une très longue période avec WF / API. J'ai fabriqué de belles UIS graphiques qui rivalisent de ce que le codeur WPF "moyen" éteindra .. plus, je déteste vraiment HT / X-ML, dans toutes ses incarnations, et il n'a pas de place dans la véritable programmation, imo.
Je n'ai aucune expérience sur qt, mais je peux dire que WPF est bon, mais ce n'est pas si bon pour les applications intensives élevées de la CPU, plus vous ne pourrez pas intégrer directement votre C / C ++ facilement avec WPF. P>
Il y aura une énorme courbe d'apprentissage et vous devrez écrire des interfaces COM pour communiquer avec C # / WPF et votre code natif. ou Visual C ++ .NET CLI, qui est disponible et moins de tutoriels. p>
Mais problème est que vous n'obtiendrez aucun soutien car beaucoup de personnes utilisent uniquement C #, des applications de base de données uniquement avec WPF / Winforms. La meilleure façon de faire est que vous puissiez écrire des dlls à intégrer avec WPF, mais cela sera difficile. P>
Au lieu de cela, divers outils sont disponibles dans MFC, et de nombreuses autres bibliothèques commerciales sont également disponibles pour écrire de bonnes interfaces internes dans C ++ MFC, où l'intégration sera tout aussi facile que vous êtes familier avec C ++. P>
ou bien qt, si vous le savez déjà. p>
bibliothèques: p>
Prof-UIS P>
BCGSOFT P>
Il peut y avoir beaucoup, vous pouvez rechercher des "éléments de l'interface utilisateur MFC", une bibliothèque, etc. J'ai utilisé Prof-UIS Way en 2003-4, ils sont bons. P>
Quelles bibliothèques serait-ce?
Je pense que le plus grand inconvénient à utiliser WPF ou WinForms est que vous devrez programmer dans deux langages de programmation, ce qui est un grand nombre de générations logistiques. P>
J'ai déjà vu ce type d'argument: utilisez C ou C ++ pour un niveau bas, autre chose à haut niveau. Dans ce cas, QT / C ++ est aussi élevé que WPF / Winforms, bénéficiant d'une intégration très facile de l'interface utilisateur à votre autre code C ++. P>
Pour les spectrogrammes et autres graphiques, consultez QWT . P>
P.s: WPF n'est pas toute la colère sous Windows, le marché est tout à fait fragmenté et WPF est l'une des boîtes à outils de l'interface graphique les moins utilisées. La plupart des codes utilisent MFC, WTL, Delphi, Win32, etc. P>
Pour C ++, QT est la meilleure boîte à outils GUI.