Windows Azure Cloud Storage ermöglicht es Ihnen bereits ab 0,10€ pro GB/Monat die Vorteile der Cloud zu nutzen.
Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   
Advanced Developers Conference     
Bücher-Shop mit Amazon (Buchkategorien)C++ : Referenzen zu C++ : C++ Builder : Visual C++ : C# : Java : Spieleprogrammierung : Systemprogrammierung Linux : Software-Entwicklung : .NET : Compilertechnik : Algorithmen & Datenstrukturen : Objektorientierung : Entwurfsmuster : UML : eXtreme Programming : Scrum : Projektmanagement : Software-Testing : Datenbanken : Tom DeMarco : Dilbert : User Friendly
C/C++ Forum :: C# und .NET ::  (Un-)Managed Directx C#/C++ ?  
Gehen Sie zu Seite 1, 2  Weiter
  Zeige alle Beiträge auf einer Seite
Auf Beitrag antworten
Autor Nachricht
Student83
Mitglied

Benutzerprofil
Anmeldungsdatum: 18.05.2008
Beiträge: 170
Beitrag Student83 Mitglied 23:44:18 16.02.2010   Titel:   (Un-)Managed Directx C#/C++ ?            Zitieren

Ich muss euch nochmal um Rat fragen bezüglich der Wahl zwischen C++ und unmanaged Directx bzw. C# und managed Directx.
Bei C++ war ich es gewöhnt mit Zeigern zu hantieren. Z.B. bei der Darstellung einer komplexen 3D-Landschaft mittels eines Quadtrees. Jetzt gibt es ja bei C# wohl keine Zeiger mehr. Wie würde man das ganze also in C# realisieren? Mit dem Quadtree konnte ich immer nur den Teil der Landschaft darstellen lassen, der auch wirklich sichtbar ist.
Ist managed Directx für ein solches Szenario von der Performance her überhaupt sinnvoll? Ich hatte ja gedacht ich kann in C# auch unmanaged DX verwenden, was aber wohl doch nicht geht. Und was ist eigentlich mit diesem Wrapper bei managed Directx gemeint? Ist managed DX also gar kein richtiges DX?
Welche Einschränkungen gibt es denn bei der Verwendung von WPF in C++ ausser der umständlicheren Programmierung, weil ich die GUI nun nicht mehr mit dem Designer bzw. MS Expression erstellen kann?

Gruß Student83


Zuletzt bearbeitet von Student83 am 21:41:23 17.02.2010, insgesamt 2-mal bearbeitet
Student83
Mitglied

Benutzerprofil
Anmeldungsdatum: 18.05.2008
Beiträge: 170
Beitrag Student83 Mitglied 21:49:58 17.02.2010   Titel:              Zitieren

Jetzt bin ich vollends verwirrt. Sagt blos man kann in einer WPF-Anwendung auch kein managed Directx benutzen. Sehe ich das also richtig, dass

unmanaged Directx und C++,
managed Directx und C#
und WPF-Anwendungen

drei komplett unterschiedliche paar Schuhe sind? Wobei die Verwendung von WPF für 3D-Spiele nicht wirklich geeignet ist, da schlechte Performance und die anderen beiden von der Performance her in etwa gleichwertig sind? Dann werde ich die WPF-Sache gleich wieder vergessen und das Programm mit C++ programmieren.
geeky
Mitglied

Benutzerprofil
Anmeldungsdatum: 04.05.2001
Beiträge: 5983
Beitrag geeky Mitglied 22:16:37 17.02.2010   Titel:              Zitieren

Der Nachfolger von "Managed DirectX" ist XNA, drum herum hat Microsoft ne eigene Community gebastelt:
http://creators.xna.com/de-DE/
Für XNA gibts sogar ne eigene* IDE von MS:
http://www.microsoft.com/downloads/details.aspx?Fa ....... 277-d584-42d2-8024-893fcd9d3e82&displaylang=en

Außerdem gibt es noch SlimDX:
http://slimdx.org/features.php

Update: *so liest sich das zumindest, stimmt aber nicht wirklich.
Es werden in einem installierten Visual Studio (wohl auch Express) neue Projekttypen hinzugefügt....

(btw: bzgl. Pointer in C#: http://msdn.microsoft.com/en-us/library/t2yzs44b.aspx)


Zuletzt bearbeitet von geeky am 22:23:51 17.02.2010, insgesamt 1-mal bearbeitet
Student83
Mitglied

Benutzerprofil
Anmeldungsdatum: 18.05.2008
Beiträge: 170
Beitrag Student83 Mitglied 23:26:38 17.02.2010   Titel:              Zitieren

Blöderweise unterstützt XNA kein Windows XP, Directx 10/11 auch nicht. Damit kommt es nicht in Frage.


Zuletzt bearbeitet von Student83 am 23:32:39 17.02.2010, insgesamt 1-mal bearbeitet
Zeus
Mitglied

Benutzerprofil
Anmeldungsdatum: 25.09.2003
Beiträge: 2401
Beitrag Zeus Mitglied 00:39:19 18.02.2010   Titel:              Zitieren

DirectX ist eine C API.
Managed DirectX ist eine Wrapper um DirectX-API für .NET.
und WPF ist ein Framework bzw fast eine Engine um 2D/3D-Oberflächen zu visualisieren und nutzt daher DX (IMO mit eigene P/Invoke auf DirectX).
XNA ist eher ein Game-Framework.
Student83
Mitglied

Benutzerprofil
Anmeldungsdatum: 18.05.2008
Beiträge: 170
Beitrag Student83 Mitglied 13:40:58 18.02.2010   Titel:              Zitieren

Also kann mir mal jemand sagen was sich Microsoft mit diesem ganzen Chaos eigentlich gedacht hat? Richtiges Directx geht nur mit C++, hier ist man aber was die GUI betrifft total eingeschränkt bzw. muss einen riesigen Aufwand betreiben. Managed Directx wird in Zukunft nicht mehr unterstützt. XNA ("die Zukunft") unterstützt Directx nur bis 9.c, wo wir doch demnächst bei 11.1 sind. WPF ist super um GUIs zu erstellen, aber für Directx nicht zu gebrauchen.

Gibt es nicht die Möglichkeit, dass ich die GUI mit WPF darstelle und getrennt davon den Fensterinhalt mit managed oder auch unmanaged Directx?
adonis
Mitglied

Benutzerprofil
Anmeldungsdatum: 19.06.2006
Beiträge: 310
Beitrag adonis Mitglied 12:06:01 19.02.2010   Titel:              Zitieren

Hi,

also managed directX, gibt es nicht mehr, dafür gibt es nun XNA.
XNA geht natürlich auch unter WindowsXP, ich nutze schon länger XNA.
XNA ist ein Framework mit dem es möglich ist, für XBox und PC, Spiele zu
entwicklen. Was, wie ich finde, sehr vorteilahft ist.
Bis jetzt brauchte ich noch kein DX10 und DX11.
und wenn man sich mal die Spiele für XBOX anguckt...
Wieviel Spiele gibts schon für DX10? glaub mir fallen da nur 2 ein,
die aber auch, genauso gut aussehen wie unter 9.
Aber leider ja, wenn man DX10&11 nutzen will muss man "noch" C++ nutzen.

XNA geht auch mit wpf und windows forms, man brauch nur ein Handle
von dem fenster, was bei wpf etwas komplizierter ist, da wpf nich
mit handles arbeitet, dafür gibt es aber eine Helperklasse.

Zeiger sind auch mit C# möglich, mit dem Schlüsselwort unsafe.
Dann schreibst du unsafe Code. Oder halt mit "ref" etc arbeiten.
/rant/
Mitglied

Benutzerprofil
Anmeldungsdatum: 18.10.2008
Beiträge: 1527
Beitrag /rant/ Mitglied 12:53:23 19.02.2010   Titel:              Zitieren

Ich wollte ja immer C++/CLI mit Unmanaged DirectX verwenden, aber mit Visual Studio 2010 degradiert Microsoft C++/CLI. Das wäre so ziemlich die einzige Möglichkeit gewesen, unmanaged DirectX mit den einfachen Forms von .NET zu verwenden :(

_________________
MCP, MCTS and more! | "It's 7:05am. I have not slept." | www.google.com
Student83
Mitglied

Benutzerprofil
Anmeldungsdatum: 18.05.2008
Beiträge: 170
Beitrag Student83 Mitglied 13:33:11 19.02.2010   Titel:              Zitieren

C++/CLI ist doch managed C++? Dann habe ich das auch gelesen.

Für WPF und managed/unmanaged Mixcode habe ich in der MSDN folgendes gefunden:

http://msdn.microsoft.com/en-us/library/ms742522.aspx

und dann noch folgender Trick:

www.codeguru.com/cpp/cpp/cpp_managed/general/article.php/c16355

Beschreiben die beiden Links also die Nutzung von WPF mit C++/CLI? So ganz klar ist mir das nicht, oder ist das noch eine andere Möglichkeit? Falls nicht macht dieser Weg wenn man demnächst VS 2010 nutzen möchte also auch keinen Sinn mehr. Ich frage mich nur warum man so wenig darüber liest. Bin ich der einzige, der ne schöne GUI und nativ mit DirectX programmieren möchte?
Dann bleibt ja eigentlich nur noch eine WPF-Anwendung mit XNA. Aber das ist auch wieder nur ne halbe Sache.
Oder man schreibt sich eine eigene GUI und lässt diese direkt mit ins Directx-Fester rendern. In diesem Fall aber zu zeitaufwändig, weil die GUI schon recht komplex werden wird.
Student83
Mitglied

Benutzerprofil
Anmeldungsdatum: 18.05.2008
Beiträge: 170
Beitrag Student83 Mitglied 13:41:54 19.02.2010   Titel:              Zitieren

EDIT:

Ich habe mich nochmal internet umgeschaut und es gibt wohl doch die Möglichkeit Direct3D9 mit unmanaged C++ in einer WPF-Anwendung zum Laufen zu bringen.
Dazu habe ich folgendes Code-Beispiel gefunden:

www.codeproject.com/KB/WPF/D3DImage.aspx

Leider lässt es sich bei mir nicht compilieren (Win 7 x64). Sobald ich wie im Text beschrieben "nicht verwaltetes Debugging aktiviere" bekomme ich die Fehlermeldung, dass der Debugger keine gleichzeitiges Debugging von verwaltetem und systemeigenem Code auf dieser Platform unterstützt.
Lasse ich diese Einstellung weg, kommt folgender Fehler:

{"Die in der Assembly "D3DImageSample, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" definierte Instanz von "Window1" kann nicht erstellt werden. Ein Aufrufziel hat einen Ausnahmefehler verursacht. Fehler in Markupdatei "Window1.xaml", Zeile 1, Position 9."}.

Laut den Kommentaren auf obiger URL hat dies auch mit Windows 64bit zu tun.


Zuletzt bearbeitet von Student83 am 14:41:22 20.02.2010, insgesamt 1-mal bearbeitet
C/C++ Forum :: C# und .NET ::  (Un-)Managed Directx C#/C++ ?  
Gehen Sie zu Seite 1, 2  Weiter
Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info, www.c-sar.de, www.c-plusplus.net und www.baeckmann.de enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.