Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

11

23.06.2011, 23:13

Mit CreateThread() kommst du da nicht weit weil du dich in der .NET Welt befindest. Was du willst ist System.Thread. Und selbst wenn es C++ wär würdest du in Visual C++ nicht CreateThread() sondern _beginthreadex() verwenden wollen. Aber das nur nebenbei, da du ja kein C++ verwendest ist das eh nebensächlich. Und nein, nicht nur das Application::Run() sondern alles, also das Erzeugen der Form auch.

dx11

unregistriert

12

23.06.2011, 23:24

hmm...
Aber die main.cpp ist kein bisschen .NET wenn ich da was mit .NET einfüge kommen fehler.
Zu CreateThread:
Wenn ich da auch das Erzeugen der Form reinmache, wie kann ich sie erst dann wieder schließen, wenn das Laden abgeschlossen ist?
Wenn ich dann nämlich frmlo->Close schreibe ist es ja nicht mehr deklariert!
Könnte ich vll mal ein kleines bsp Schnipselchen haben?

Danke
MFG

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

13

23.06.2011, 23:34

Aber die main.cpp ist kein bisschen .NET wenn ich da was mit .NET einfüge kommen fehler.

Ka was du da gemacht hast oder was für Fehler da kommen, aber wenn du C++/CLI verwendest dann ist es .NET. Wenn du eine WinForm erzeugst ist das definitiv .NET.

Wenn ich da auch das Erzeugen der Form reinmache, wie kann ich sie erst dann wieder schließen, wenn das Laden abgeschlossen ist?
Wenn ich dann nämlich frmlo->Close schreibe ist es ja nicht mehr deklariert!

Ja, da musst du dir eben was überlegen. Du musst dem anderen Thread dein Form Objekt irgendwie bekanntmachen. Am einfachsten wohl über eine globale Variable, bzw. besser über die Klasse mit der du deinen Thread erzeugst. Wobei du dich da eben um korrekte Synchroniation der Threads kümmern musst...

dx11

unregistriert

14

23.06.2011, 23:46

DirectX erzeugt ein WinApi fenster also KEIN .NET

ich habe mir schon einiges überlegt gehabt globale variable geht nicht compiler Fehler, das mit den Thread is so das ich damit fast noch nie gearbeitet habe!
Es wäre wirklich toll ein bsp zu sehen!

MFG

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

15

23.06.2011, 23:52

Na hier gabs doch eines!?

16

23.06.2011, 23:56

Aber du versuchst grade C++ mit C++/Cli zu mischen, was zwei unterschiedliche Sachen sind. Vielleicht kommen auch daher die ganzen Fehlers, bin mir aber da nicht sicher, weil ich noch nie mit C++/Cli gearbeitet habe. Aber wenn du unbedingt das WinForm Fenster verwenden willst, musst du auf der msdn gucken, da wird es bestimmt genur Beispiele geben, wie du ein Thread anlegst. Ich würde dir aber wirklich vom mischen der beiden Sprachen abraten.

EDIT: Seh grad das Dot mit der Verlinkung schneller war ^^

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

17

24.06.2011, 00:04

Aber du versuchst grade C++ mit C++/Cli zu mischen, was zwei unterschiedliche Sachen sind.

Naja, genau das Mischen ist eigentlich der Sinn von C++/CLI. Genaugenommen ist das der einzige Sinn und wenn man keine wahnsinnig guten Gründe hat sollte man von C++/CLI um jeden Preis die Finger lassen. Gerade für so Sachen wie GUI ist C++/CLI absolut ungeeignet, aber darauf will er ja nicht hören...

18

24.06.2011, 00:07

Aber dann nur, um C++ Sachen in .NET Sprachen zu Verfügung zu stellen? Spricht, wenn man eine C++ Klasse in C# verwenden möchte.

EDIT: Man merkt, dass er unbedingt C++/CLI verwenden möchte, warum auch immer ^^

dx11

unregistriert

19

24.06.2011, 00:13

wollen nicht unbedingt es ist aber um eineiges leichter auserdem lerne ich ja DirectX GUI

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

20

24.06.2011, 00:16

wollen nicht unbedingt es ist aber um eineiges leichter [...]

Ich versichere dir dass das Gegenteil der Fall ist. C++/CLI ist wahnsinnig komplex da du nicht nur den kompletten Umfang von C++ drin hast sondern auch noch den ganzen .NET Kram und sogar die Möglichkeit kombinierter Konstrukte (z.B. templates für CLR Code). C++/CLI ist definitiv nichts für Leute mit schwachen Nerven und ohne gute Kenntnisse über die Innereien von .NET...
Allein die Tatsache dass Visual Studio für C++/CLI kein IntelliSense anbietet sollte einem doch eigentlich zeigen wohin der Hase hier läuft: Diese Sprache ist nur als Klebstoff gedacht und nicht um komplette Anwendungen damit zu entwickeln.

Nur um das vielleicht ein wenig zu veranschaulichen: Es gibt in C++/CLI nicht nur Klassen, es gibt 6 verschiedene Arten von Klassen und natürlich auch Interfaces (gleich 2 Arten davon), es gibt nicht nur Pointer und Referenzen sondern auch GC Handles und Tracking References, du hast nicht nur einen normalen Heap sondern zusätzlich auch den CLR Heap der Garbage Collected ist, daher gibt es zwei unabhängige, inkompatible und vollkommen verschiedene Formen von dynamischer Speicherverwaltung, wobei jede nur mit bestimmten Sprachkonstrukten funktioniert, es gibt templates und generics, ... man kann die Liste beliebig verlängern...

[...] auserdem lerne ich ja DirectX GUI

Was genau ist denn dieses "DirectX GUI" und wofür brauchst du dazu .NET!?

Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von »dot« (24.06.2011, 00:40)


Werbeanzeige