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

91

06.12.2009, 15:00

öhm das was ich da hochgeladen hab ist jetzt mittlerweile aúch nicht mehr gut/aktuell. Hab mittlerweile Kommentare hinzugefügt, kommplett auf Deutsch gewechselt (nur das C vor Klassen lass ich ist für mich übersichtlicher). und hier das ergebnis vom Code von oben:


(Link)


C-/C++-Quelltext

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
#include <windows.h> 
#include <iostream> 
#include <KonsolenRendererAllIncludes.h> 

#pragma comment(lib,"KonsolenRenderer.lib") 

int main() 
{ 
    PointRenderer* g_pPR = NULL; 
    
    CKonsoleVector vk = CKonsoleVector(7,6); 
    CKonsoleVector kv = CKonsoleVector(7,1); 

    int Points = 20; 

    for(int i = 0;i < Points;i++) 
    { 
        g_pPR->RenderPoint(vk,7); 
        g_pPR->RenderPoint(vk - kv,7); 
        
        vk.x += 7; 
        vk.y += 7; 
    } 

    cin.get(); 
    return 0; 
}
Metal ist keine Musik sondern eine Religion.

Haxx0r

Treue Seele

Beiträge: 209

Wohnort: Da!

Beruf: Rebell mit aktivem Lebensstil

  • Private Nachricht senden

92

06.12.2009, 15:03

Zitat

int Points = 20;

Speicherverschwendung :P

93

06.12.2009, 15:06

Wieso kann er Rendern, wenn du zum Renderer nen NULL-Pointer hast?

Woher hat er die Instanz?

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

94

06.12.2009, 15:06

Zitat von »"idontknow"«

Ich versteh nicht wie das gehen soll, dein PointRenderer ist ein NULL-Pointer, der auf kein Objekt zeigt, das müsste einen Crash geben und du rufst auch keine statischen Methoden auf von daher, sicher dass du genau DIESEN code getestet hast?


Doch. Das geht. Ich habe vor ein paar Wochen mal was dazu geschrieben:
http://www.drakon.ch/?id=&offset=&mobile=0&show_entry=76

Warum das (oft) funktioniert, aber doch nicht erlaubt ist, steht auch ganz unten.

Also wird Fabian in seiner Klasse PointRenderer und speziell in der Funktion RenderPoint keine Member ansprechen. Was es dann wieder sinnlos macht das in eine Klasse zu stecken, wenn sowieso auf keine Member zugegriffen werden dürfen. Da wäre ein Singleton sogar besser.

Also @Fabian:
Lies dir meinen Blog Eintrag durch und mach dir klar, wo das Problem mit deinem Code ist und such dir eine Alternative!

95

06.12.2009, 15:06

stimmt warum schreib ich nicht einfach 20? :shock:
EDIT: Wäre es sinnvoll einfach gar keine Klasse zu nutzen sondern einfach nur Variablen?
Metal ist keine Musik sondern eine Religion.

96

06.12.2009, 15:20

Iwie steh ich grad aufm Schlauch. Hab sowas schon lang nicht mehr gemacht :D:

Wie genau muss ich in Visual C++ Express 2008 die lib und die DLL einfügen, damit das funktioniert XD.

(Hab lang nicht mehr mit c++ geschafft)

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

97

06.12.2009, 15:21

Zitat von »"Fabian Kock"«

stimmt warum schreib ich nicht einfach 20? :shock:
EDIT: Wäre es sinnvoll einfach gar keine Klasse zu nutzen sondern einfach nur Variablen?


Was 20?

Wenn du den Zeiger nicht mit NULL (0) sondern mit 20 initialisieren würdest, dann würdest du einen Laufzeitfehler bekommen. Weil dann davon ausgegangen wird, dass das ein gültiger Zeiger ist, was ja nicht der Fall ist.

98

06.12.2009, 15:22

Zitat von »"Haxx0r"«

Zitat

int Points = 20;

Speicherverschwendung :P


Das meinte ich mit 20 :lol:
Metal ist keine Musik sondern eine Religion.

99

06.12.2009, 15:29

Zitat

Iwie steh ich grad aufm Schlauch. Hab sowas schon lang nicht mehr gemacht Very Happy:

Wie genau muss ich in Visual C++ Express 2008 die lib und die DLL einfügen, damit das funktioniert XD.

(Hab lang nicht mehr mit c++ geschafft)


Du musst den Header der Lib inkludieren, die .lib datei unter zusätzliche Abhängigkeiten eintragen, und die DLL in den Ordner mit der .exe tun. (bzw. auch in den Projektordner (also PROJECTS/DEIN PROJEKT/DEIN PROJEKT ))
;)

100

06.12.2009, 15:34

Ich find das mit den zusätzlichen Abhängigkeiten nicht mehr T_T XD

Werbeanzeige