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

rewb0rn

Supermoderator

  • »rewb0rn« ist der Autor dieses Themas

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

1

30.09.2004, 23:59

kleines Umsteiger Problem mit Funktion

hi! ich habe eine kleine funktion aus einem von davids beispielprogrammen kopiert, aber der compiler macht stress.

C-/C++-Quelltext

1
2
3
4
5
6
7
8
// ******************************************************************

// Diese Funktion liefert den Index eines Vertex zurück, der durch

// seine Position im Gitter angegeben wird.

WORD GetVertexIndex(WORD x,
                    WORD y)
{
    return y * iResolution + x;
}


es kommen dann folgende Fehler:
[list]
Compiling...
BspPart.cpp
E:\Projekte\Testumgebung\BspPart.cpp(6) : error C2146: syntax error : missing ';' before identifier 'GetVertexIndex'
E:\Projekte\Testumgebung\BspPart.cpp(6) : error C2377: 'WORD' : redefinition; typedef cannot be overloaded with any other symbol
e:\umgebungen\microsoft visual studio\vc98\include\windef.h(144) : see declaration of 'WORD'
E:\Projekte\Testumgebung\BspPart.cpp(6) : fatal error C1004: unexpected end of file found
Error executing cl.exe.
[/list]
Die Funktion wird im Original einfach in der Hauptdatei deklariert, bei mir in einer Klasse. Ich habs mit und ohne Deklaration in der Headerdatei versucht, ohne Erfolg.
iResolution ist als const int mit dem Wert 64 deklariert.

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

2

01.10.2004, 09:33

Welche Header hast Du eingebunden?
WORD ist kein Standardtyp, der wird in windows.h definiert (als unsigned short)!

Patrick

Alter Hase

Beiträge: 1 264

Wohnort: Düren

Beruf: Fachinformatiker für Anwendungsentwicklung

  • Private Nachricht senden

3

01.10.2004, 10:58

Hi!

David Scherfgen
Ohne Dir jetzt zu nahe zu treten: Es ist WinDef.h ;)

Spik)evil(

C-/C++-Quelltext

1
2
3
4
5
6
7
8
    // Diese Funktion liefert den Index eines Vertex zurück, der durch 

    // seine Position im Gitter angegeben wird. 

__forceinline const unsigned short getVertexIndex (unsigned short x, 
                                                       unsigned short y, 
                                                       unsigned short resolution) 
{ 
    return (y * resolution + x); 
}


Bissel 1337 muss sein ;D ich würd jedoch für sowas einen unsigned int benutzen und keinen unsigned short int (ist kürzer und größer [je nach compiler])

Böse böse, ungarische notation und globale variable (iResolution) ;)

- Patrick

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

4

01.10.2004, 11:05

Böse, böse: Du machst aus einer Konstanten (const int iResolution) einen Parameter!

Patrick

Alter Hase

Beiträge: 1 264

Wohnort: Düren

Beruf: Fachinformatiker für Anwendungsentwicklung

  • Private Nachricht senden

5

01.10.2004, 11:12

Böse, böse! Woher sollte ich wissen das iResolution global ist? ;) Dann sieht die Geschichte natürlich anders aus :)

Hmmm Böse Böse gefällt mir ;D

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

6

01.10.2004, 11:48

Zitat von »"Spik)evil("«

iResolution ist als const int mit dem Wert 64 deklariert.

Patrick

Alter Hase

Beiträge: 1 264

Wohnort: Düren

Beruf: Fachinformatiker für Anwendungsentwicklung

  • Private Nachricht senden

7

01.10.2004, 11:49

überlesen, kann ja mal vorkommen :D

rewb0rn

Supermoderator

  • »rewb0rn« ist der Autor dieses Themas

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

8

01.10.2004, 15:02

war eigentlich nur n ganz dummer fehler! hab in einer headerdatei nach der klassendefinition das ";" nach dem "}" vergessen, so dass er mir in der nächsten datei immer direkt am anfang einen fehler ausgegeben hat, egal welche funktion an erster stelle stand... :ohoh:

Werbeanzeige