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

Hengstli

Treue Seele

  • »Hengstli« ist der Autor dieses Themas

Beiträge: 147

Wohnort: Dettenheim

  • Private Nachricht senden

1

21.01.2007, 00:31

Anfang einer Engine!

Hi Leute!
Ich würd gern, so wie David in seinem Buch eine Funktion geschrieben hat, um ein Fenster zu initialisieren, auch eine Funktion in C# schreiben, damit ich nicht immer soviel tippen muss. Nur leider weiß ich nicht, wie ich so eine Art "Funktion einer Engine" in C# schreiben kann, damit ich die in meinen Programmen verwenden kann.
Mfg Hengstli

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

2

21.01.2007, 00:51

Ich frag mich grad, was an C# so anders ist, dass man da das Konzept von David nicht übernehmen kann?!
Wenn du erstmal per Tipparbeit ein Fenster bekommst musst du ja nur noch überlegen, welche Informationen die Erstellung braucht und die kannst du dann z.b. als Parameter übergeben.

Phil_GDM

Alter Hase

Beiträge: 443

Wohnort: Graz

Beruf: Student-Softwareentwicklung u. Wissensmanagement

  • Private Nachricht senden

3

21.01.2007, 09:24

Ich vermute mit "Funktion einer Engine" meint er, das ganze in eine DLL auslagern.

Wenn dem so ist:
Ist in C# ein klacks.

Neues Projekt vom Typ Class Library anlegen.
Dort drinnen Klassen programmieren, die das können was du willst.
projekt compilieren -> DLLl wird erzeugt.

Dann einen Applikationsporojekt anlegen.
Im Projektbaum beim Punkt References Rechtsklick und Add Reference, dann fügst du deine DLL als Referenz hinzu.

Schon kannst du die Klassen der DLL verwenden.

mfg Philipp

Hengstli

Treue Seele

  • »Hengstli« ist der Autor dieses Themas

Beiträge: 147

Wohnort: Dettenheim

  • Private Nachricht senden

4

21.01.2007, 12:04

Ok danke :)
Muss ich dafür dann die Release Version nehmen, oder gehts auch mit der Debug Version?

Phil_GDM

Alter Hase

Beiträge: 443

Wohnort: Graz

Beruf: Student-Softwareentwicklung u. Wissensmanagement

  • Private Nachricht senden

5

21.01.2007, 12:12

Geht (natürlich) auch mit Debug

mfg Philipp

Hengstli

Treue Seele

  • »Hengstli« ist der Autor dieses Themas

Beiträge: 147

Wohnort: Dettenheim

  • Private Nachricht senden

6

21.01.2007, 12:28

Irgendwie mach ich was falsch, aber ich seh grad nicht was :oops:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
using System;
using System.Collections.Generic;
using System.Windows.Forms;
using Microsoft.DirectX;
using Microsoft.DirectX.Direct3D;

namespace EngineX
{
    public class Nachricht
    {
        public void ShowMessage()
        {
            MessageBox.Show("Das ist eine Nachricht!");
        }
    }
}

Phil_GDM

Alter Hase

Beiträge: 443

Wohnort: Graz

Beruf: Student-Softwareentwicklung u. Wissensmanagement

  • Private Nachricht senden

7

21.01.2007, 12:50

Tja was soll man dazu sagen? Die paar Zeilen Code bringen nichts!
Bekommts du Fehlermeldungen? Was geht nicht?

mfg Philipp

Hengstli

Treue Seele

  • »Hengstli« ist der Autor dieses Themas

Beiträge: 147

Wohnort: Dettenheim

  • Private Nachricht senden

8

21.01.2007, 13:00

ups. da hab ich zu schnell auf absenden geklickt :oops:
Mein Problem is folgendes: wenn ich das Kompiliere und meine DLL wie du oben beschrieben hast einbinde, dann kann ich zwar in meinem Programm auf den namespace zugreifen, aber egal was ich tue, ich kann die Funktion die in dieser Klasse ist, nicht verwenden. Aber wenn ich auf die Verweise klick und mir das im Objektbrowser anschau, dann seh ich meine Funktion auch gar nicht.

Phil_GDM

Alter Hase

Beiträge: 443

Wohnort: Graz

Beruf: Student-Softwareentwicklung u. Wissensmanagement

  • Private Nachricht senden

9

21.01.2007, 13:26

zeig mal her, wie du versuchst die Funktion aufzurufen.

mfg Philipp

Hengstli

Treue Seele

  • »Hengstli« ist der Autor dieses Themas

Beiträge: 147

Wohnort: Dettenheim

  • Private Nachricht senden

10

21.01.2007, 13:39

Jetzt hab ich den Fehler gefunden!
Ich hab bei der Verwendung versucht, die Funktion außerhalb der Main Methode aufzurufen. Kann natürlich nicht klappen :p
Ich hab vor lauter Klammern, die Main Methode nicht gesehen. :roll:

Werbeanzeige