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

1

02.06.2011, 23:48

Nameskonflikte mit der WinAPI

Hallo Com,

gibt es einen Weg diese nervigen Namenskonflikte mit der WinAPI zu vermeiden ohne seine Methodennamen anders zu formatieren?
Ich würde nämlich eigl. gerne meinen Stil so lassen wie er ist :D
z.B. mekert VS wenn ich eine Methode GetMessage nenne, weil die WinAPI das schon mit einem #define gemacht hat.

Danke :)

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

2

02.06.2011, 23:52

Ganz einfach: Benutz die WinApi nicht. ;)

Ansonsten kommts ein wenig drauf an. Vermeide das includen der Header, wenn möglich und pack dein Zeugs in einen namespace (gegen die echten Funktionen).

Ansonsten passt du am besten schon den Namen ein wenig an. Gibt ja viele Synonyme, die man benutzen kann.

3

02.06.2011, 23:58

Die WinAPI muss ich ja benutzen, wegen DX und weil ich die File-Management Dinger brauche :D
In einem Namespace sind meine Sachen schon, nur sind defines ja überall bekannt ... leider.
Dann muss ich wohl wirklich alle Namen der Methoden ändern, nur wie soll man z.B. CopyFile sonst nennen?

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

4

03.06.2011, 00:09

duplicateFile
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

5

03.06.2011, 00:17

Naja. Wenn du unbedingt diese Namen benutzen willst kannst du das über Wrapper Funktionen machen, welche du irgendwie benennen kannst und dann diese anstatt die der WinAPI benutzt (in dem Code, der die Schnittstelle darstellt).

in etwa so:

wrapper.h

C-/C++-Quelltext

1
int CopyFile_(/* parameter s*/);


wrapper.cpp

C-/C++-Quelltext

1
2
3
4
5
6
#include "windows.h"

int CopyFile_(/**/)
{
  /* use CopyFile from WinAPI*/
}


irgendwas.h

C-/C++-Quelltext

1
int CopyFile();


inrgendwas.cpp

C-/C++-Quelltext

1
2
3
4
5
6
7
8
#include "wrapper.h"

int CopyFile()
{
  ...
  CopyFile_(/**/);
  ...
}


//EDIT
Wenn es dir dieser Aufwand Wert ist. ;)

6

03.06.2011, 00:28

@drakon
Ich werde wohl lieber meine Methoden umbennen :D
Aber dieser Ansatz ist dennoch sehr interresant :)

@Architekt
Stimmt. Da bin ich ehrlich nicht drauf gekommen.
Danke :D

Das Problem ist dann "gelöst".
Danke euch.

P.S.: Blöde WinAPI :P

Werbeanzeige