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

spacegaier

Alter Hase

  • »spacegaier« ist der Autor dieses Themas

Beiträge: 572

Beruf: Student

  • Private Nachricht senden

1

04.02.2006, 19:21

System.ArgumentExeption

Hi,

wen ich nachstehenden Code ausführe erhalte ich folgenden Fehler:

"Eine nicht behandelte Ausnahme des Types 'System.ArgumentExeption' ist in system.windows.forms.dll aufgetreten.

Zusätzliche Informationen: Ungültige Parameter verwendet."

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
#include "stdafx.h"

#using <mscorlib.dll>
#using <System.dll>
#using <System.Drawing.dll>
#using <System.Windows.Forms.dll>

using namespace System;
using namespace System::Drawing;
using namespace System::Drawing::Drawing2D;
using namespace System::ComponentModel;
using namespace System::Windows::Forms;
using namespace System::Collections;;

__gc public class Game : public Form

{
public:

    Game()
    {
        Game_Run();
    }
    
    void Game_Run()
    {
        Form* sform = new Form();   
        Text = "The Fighters of Sarazon 0.9";
        BackColor = System::Drawing::Color::Black;
            
        Paint += new PaintEventHandler(this, &Game::Form_Paint);
        Setup_Buttons();
        Setup_Label();
    }

private:
    Button* btn1;
    Button* btn2;
    Button* btn3;
    Button* btn4;
    Label* lbl1;

    void Setup_Buttons()
    {
        btn1 = new Button();
        btn1->Text = "Neues Spiel starten";
        btn1->Size = System::Drawing::Size(200,65);
        btn1->Location = Point(850,170);
        btn1->Font = new System::Drawing::Font("Comic Sans MS", 14, FontStyle::Regular);
        btn1->BackColor = System::Drawing::Color::Black;
        btn1->ForeColor = System::Drawing::Color::White;
        Controls->Add(btn1);
        btn1->Click += new EventHandler(this, &Game::Clicked); 

        btn2 = new Button();
        btn2->Text = "Spiel laden";
        btn2->Size = System::Drawing::Size(200,60);
        btn2->Location = Point(850,260);
        btn2->Font = new System::Drawing::Font("Comic Sans MS", 14, FontStyle::Regular);
        btn2->BackColor = System::Drawing::Color::Black;
        btn2->ForeColor = System::Drawing::Color::White;
        Controls->Add(btn2);
        btn2->Click += new EventHandler(this, &Game::Clicked);

        btn3 = new Button();
        btn3->Text = "Credits";
        btn3->Size = System::Drawing::Size(200,60);
        btn3->Location = Point(850,340);
        btn3->Font = new System::Drawing::Font("Comic Sans MS", 14, FontStyle::Regular);
        btn3->BackColor = System::Drawing::Color::Black;
        btn3->ForeColor = System::Drawing::Color::White;
        Controls->Add(btn3);
        btn3->Click += new EventHandler(this, &Game::Clicked);

        btn4 = new Button();
        btn4->Text = "Spiel verlassen";
        btn4->Size = System::Drawing::Size(200,60);
        btn4->Location = Point(850,420);
        btn4->Font = new System::Drawing::Font("Comic Sans MS", 14, FontStyle::Regular);
        btn4->BackColor = System::Drawing::Color::Black;
        btn4->ForeColor = System::Drawing::Color::White;
        Controls->Add(btn4);
        btn4->Click += new EventHandler(this, &Game::Clicked);
    }

    void Setup_Label()
    {
        lbl1 = new Label();
        lbl1->AutoSize = true;
        lbl1->Text = "created by spacegaier(30.01.06)";
        lbl1->Location = Point(840,760);
        lbl1->Size = System::Drawing::Size (lbl1->PreferredHeight, lbl1->PreferredWidth);
        lbl1->Font = new System::Drawing::Font("Comic Sans MS", 13, FontStyle::Italic);
        lbl1->ForeColor = Color::White;
        Controls->Add(lbl1);
    }

    void Clicked(Object* pSender, EventArgs* pArgs)
    {
        if (pSender == btn1)
        {
            Close();
        }
        if (pSender == btn2)
        {
            MessageBox::Show("Diese Option ist in der Demoversion nicht verfügbar");
        }
        if (pSender == btn3)
        {
            MessageBox::Show("Diese Option ist in der Demoversion nicht verfügbar");
        }
        if (pSender == btn4)
        {
            Application::Exit();
        }
    }

    void Form_Paint(Object* pSender, PaintEventArgs* pe)
        {
            Graphics* gr = pe->Graphics;
            Bitmap* bmp = new Bitmap("Logo 2.0.bmp");
            gr->DrawImage(bmp, 75,55);
        }
};

__gc public class Site_1 : public Form
{

public:
    Site_1()
    {
            Text = "The Fighters of Sarazon 0.9";
            BackColor = System::Drawing::Color::Black;
            Size = System::Drawing::Size(1170,800);
            Paint += new PaintEventHandler(this, &Site_1::Form_Paint);
            Setup_Texts();
    }
private:
    
    TextBox* text1;
    TextBox* text2;
    
    void Form_Paint(Object* pSender, PaintEventArgs* pe)
        {
            Graphics* gr = pe->Graphics;
            Graphics* gs = pe->Graphics;
            Graphics* gt = pe->Graphics;
            Graphics* gu = pe->Graphics;
            Bitmap* bmp = new Bitmap("Logo 2.3.bmp");
            gr->DrawImage(bmp, 35,35);
            Bitmap* bmp2 = new Bitmap ("Star 1.1.bmp");
            gs->DrawImage(bmp2,7,565);
            Bitmap* bmp3 = new Bitmap("Star 1.2.bmp");
            gt->DrawImage(bmp3, 900, 650);
            Bitmap* bmp4 = new Bitmap("Star 1.0.bmp");
            gu->DrawImage(bmp4, 720, 10);
        }
        
    void Setup_Texts()
    {
        text2 = new TextBox();
        text2->Location = Point(140,283);
        text2->Size = System::Drawing::Size(940,300);
        text2->ForeColor = System::Drawing::Color::White;
        text2->Font = new System::Drawing::Font("Comic Sans MS",14, FontStyle::Regular);
        text2->Enabled = false;
        text2->Multiline = true;
        text2->Text = "Zunächst einmal: Die Bedienung dieses Programmes ist eingentlich idiotensicher. Sollten sie dennoch Fragen haben, so teilen sie diese bitte ihrem Rechner wird. (Bei guter Pflege wird er antworten.)\r\n\r\n"
                      "Anderenfalls ist er vielleicht nicht mit ihrer Umgangsweise zufrieden. (Hören sie auf ihn mutwillig zu treten). Möglicherweise ist auch der zugeführte Strom nicht erstklassig. (Wechseln sie also bitte den Anbieter). Sollten all diese Tipps keine Veränderung bringen (so wie bei mir) sollten sie ernsthaft den Neukauf eines Computers in Betracht ziehen.\r\n\r\n"
                      "Aber zurück zum Thema. Sie werden nun einige Fragen gestellt bekommen, welche sie bitte nach bestem Trachten und Sinnen ausfüllen, sowahr ihnen Gott helfe (falls sie Budhist sind, können sie auch Allah oder sonst einen um Hilfe bitten).\r\n\r\n";
        text2->BackColor = Color::Black;
        Controls->Add(text2);
    }
};

int  __stdcall WinMain(void)
{

    Application::Run(new Game());
}


Woran liegr es???

Bin für jeden Tipp dankbar

babelfish

Alter Hase

Beiträge: 1 222

Wohnort: Schweiz

Beruf: Informatiker

  • Private Nachricht senden

2

04.02.2006, 19:24

Hmm, ich weiss zwar nicht ob das möglich ist so viele Nampespaces zu definieren,
aber ich bin ja auch nurn Noob :angel:

vor allem:

Quellcode

1
using namespace System::Collections;; 

2 ';;' ;)

spacegaier

Alter Hase

  • »spacegaier« ist der Autor dieses Themas

Beiträge: 572

Beruf: Student

  • Private Nachricht senden

3

04.02.2006, 19:43

Man könnte folgende zwei Nmespaces auch weglassen ( werden nicht benötig)
using namespace System::Drawing::Drawing2D;
using namespace System::ComponentModel;

Das ändert den Fehler aber nicht ( geschweige denn lässt ihn verschwinden) :(

Trotzdem: Danke für die Antwort

babelfish

Alter Hase

Beiträge: 1 222

Wohnort: Schweiz

Beruf: Informatiker

  • Private Nachricht senden

4

04.02.2006, 19:52

Hmm, aber steht das irgendwo geschrieben dass man mehrere namespaces brauchen darf?

Ich meine:
Woran soll der Compiler erkennen welchen von den zig namespaces er brauchen soll?

Wenn es zum Beispiel

Quellcode

1
Namespace1::Blah

und

Quellcode

1
Namspace2::Blah

hat, woran soll er denn erkennen ob er bei

Quellcode

1
Blah


Quellcode

1
Namespace1
oder

Quellcode

1
Namespace2


Einsetzen muss?

spacegaier

Alter Hase

  • »spacegaier« ist der Autor dieses Themas

Beiträge: 572

Beruf: Student

  • Private Nachricht senden

5

04.02.2006, 20:06

Aber alle Namespaces heißen anders.

6

04.02.2006, 23:16

Babelfish meint ja eher: Woher soll der Compiler wissen WELCHEN Namespace er jetzt gerade verwenden soll. Namespace ist ja, soweit ich es als noob verstanden habe, auch einfach nur ne Klasse die dann vor die Funktionen gesetzt wird. Statt std::cout kann man also sagen das er das std:: immer voransetzen möchte (using namespace std). Wenn du jetzt mehrere Namespaces hast, woher soll der Compiler wissen welchen Namespace er für welche Funktion nutzen soll?!

spacegaier

Alter Hase

  • »spacegaier« ist der Autor dieses Themas

Beiträge: 572

Beruf: Student

  • Private Nachricht senden

7

05.02.2006, 00:02

Ach so...Ich glaub jetzt versteh ich euch...

Aber es wird doch wohl eine Klasse nicht in zwei verschiedenen Namespaes geben oda?

Wenn es des nicht gäbe, wäre dieses Problem ja gelöst.

spacegaier

Alter Hase

  • »spacegaier« ist der Autor dieses Themas

Beiträge: 572

Beruf: Student

  • Private Nachricht senden

8

05.02.2006, 16:25

Hat denn keiner 'ne Ahnung, woran es liegen könnte?

Ist vielleicht meine Main-Schleife schuld? (ich weiss net recht was dieses __stdcall WinMain bedeutet).

Bin für jeden noch so kleinen Hinweis dankbar.

Phil_GDM

Alter Hase

Beiträge: 443

Wohnort: Graz

Beruf: Student-Softwareentwicklung u. Wissensmanagement

  • Private Nachricht senden

9

05.02.2006, 17:08

Das Problem ist glaub ich, dass kaum jemand hier ManagedC++ macht. Ich bring dein Projekt nicht zum Laufen, bekomm irgendwelche seltsamen Meldungen wie z.B.:

Quellcode

1
Error   30  error C2440: '=' : cannot convert from 'System::Windows::Forms::Button *' to 'System::Windows::Forms::Button ^' c:\dokumente und einstellungen\paiden\eigene dateien\visual studio 2005\sp_test\sp_test\game.h  65


Hat wohl irgendwas mit dem managed-Zeugs zu tun (auch ich hab noch nie manged C++ gemacht).

*Aufgrund des Exception-Typs würde ich aber sagen, dass irgendwo die Werte die du einer Funktion übrgibst in einem ungültigen Bereich liegen.
*Wirf mal den Debugger an und schau, wo die Exception geworfen wird.

mfg Philipp

DarkFitzi

Alter Hase

Beiträge: 608

Wohnort: Eisenberg, Thüringen

Beruf: Schüler, 10te Klasse

  • Private Nachricht senden

10

05.02.2006, 17:15

vielleicht WinMain mit void Parameter?
Ich kenn nur die Version mit den 4 Parametern:
HINSTANCE hInstance
HINSTANCE hPrevInstance
LPSTR lpCmdLine
int nShowCmd

ne WinMain mit null Parametern hab ich noch nie gesehn hmm... :headscratch: :headscratch: :headscratch: :headscratch:
Ich würde die Welt gern verbessern, doch Gott gibt mir den Sourcecode nicht! :-(

Werbeanzeige