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

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

11

17.07.2007, 12:22

Der Compiler findet halt einige Definitionen nich. Um die solltet du dich kümmern.

Übrigens:

C-/C++-Quelltext

1
inline bool operator==(const char* _pcIdentifer) { return _pcIdentifer == pcIdentifer; }


Sowas ist Unsinn.
@D13_Dreinig

llennard

Frischling

  • »llennard« ist der Autor dieses Themas

Beiträge: 74

Wohnort: Kiel

  • Private Nachricht senden

12

17.07.2007, 13:11

wieso findet er sie denn nicht, ich habe strmbase.lib und strmiids.lib doch eingebunden...

außerdem:

Zitat von »"David_pb"«


C-/C++-Quelltext

1
inline bool operator==(const char* _pcIdentifer) { return _pcIdentifer == pcIdentifer; }


Sowas ist Unsinn.


nein, so was ist kein unsinn. du kennst die stl-funktion find wohl nicht, die einen ==-Operator braucht. So kann ich diese Funktion verwenden und damit prüfen, ob der Identifier der gesuchten resource dem angegebenen entspricht:

C-/C++-Quelltext

1
2
3
4
5
DxVideo* DxResourceManager::GetVideo(const char* pcIdentifier)
{
    vector<Resource>::iterator iter = find(m_Resources.begin(), m_Resources.end(), pcIdentifier);
    return iter == m_Resources.end() ? NULL : iter->pVideo;
}

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

13

17.07.2007, 13:26

Zitat von »"llennard"«


nein, so was ist kein unsinn. du kennst die stl-funktion find wohl nicht, die einen ==-Operator braucht.


Ich kenn dieses Template sehr gut. Aber ich kenn C++ auch gut genug um dir mit Sicherheit sagen zu können das const char* == const char* keine Stringvergleich ist sondern lediglich ein Vergleich der beiden Zeiger.
@D13_Dreinig

llennard

Frischling

  • »llennard« ist der Autor dieses Themas

Beiträge: 74

Wohnort: Kiel

  • Private Nachricht senden

14

17.07.2007, 14:18

ach so das meint du.

das habe ich mir ausgedacht, weil ich gerne Zeichenketten haben wollte, um meine Resourcen zu identifizieren, allerdings wären dann die ganzen vergleiche ziemlich langsam.

ich sag dir, meine Lösung funktioniert.

Du gibts eine Zeichenkettenkonstante an und später noch einmal die gleiche und siehe da: beide zeigen auf den gleichen Speicherbereich. Ich brauche also nur die zeiger zu vergleichen.

Damit bin ich der Lösung meines Problems aber immer noch nicht näher...

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

15

17.07.2007, 14:21

Und wenn du die Zeichenkettenkonstante grad nicht zur verfügung hast? Außerdem erlaubt das die übergabe jedweder Zeichenkette und der Fall wo das funktioniert ist ein sehr kleiner. Die Idee ist, obwohl sie bei dir funktionieren mag, Unsinn!
@D13_Dreinig

llennard

Frischling

  • »llennard« ist der Autor dieses Themas

Beiträge: 74

Wohnort: Kiel

  • Private Nachricht senden

16

17.07.2007, 14:43

ok vielleicht hätte ich so ein parameter nehmen sollen:

C-/C++-Quelltext

1
const char* const pcIdentifier;


dann kann man nur konstante zeichenketten angeben.

die Zeichenkette brauch man nicht irgendwie zur verfügung haben, man gibt sie einfach an:

C-/C++-Quelltext

1
2
3
LoadVideo("Mein Video", "Video.mpg");

pVideo = GetVideo("Mein Video");


Also mir gefällts, wenn es dir nicht passt, musst du es ja nicht verwenden.[/code]

Werbeanzeige