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

Databyte

Alter Hase

  • »Databyte« ist der Autor dieses Themas

Beiträge: 1 040

Wohnort: Na zu Hause

Beruf: Student (KIT)

  • Private Nachricht senden

1

06.08.2008, 14:40

[Erledigt] Definitionen bei Winapi ausschalten

Hallo

Wollte mal fragen ob, und wenn ja wie, man verhindern kann, dass die winapi
so viele Definitionen anleget (z.B. CreateWndow(..) ) .. ich will nämlich
nur mit den eigentlichen Funktionen arbeiten ( z.B. CreateWindowExA() ) ?

Das Gurke

Community-Fossil

Beiträge: 1 996

Wohnort: Pinneberg

Beruf: Schüler

  • Private Nachricht senden

2

06.08.2008, 15:15

Nein, kann man nicht. Und nix hindert dich daran mit den "echten" Funktionen zu arbeiten. Auch wenn ich diese einfache Möglichkeit meine Programme einmal ANSII und einmal Unicode zu kompilieren sehr schätze.

Mordrak

1x Contest-Sieger

Beiträge: 121

Wohnort: München

Beruf: Junior IT Consultant

  • Private Nachricht senden

3

06.08.2008, 15:25

Mir ist nicht so recht klar, warum Dich die Defines stören... Worin siehst Du den Vorteil, die expliziten Funktionen mit ...A z.B. herzunehmen?

Gruss,
Mordrak
What's yellow and equivalent to the axiom of choice? The Lemmon of Zorn!

Databyte

Alter Hase

  • »Databyte« ist der Autor dieses Themas

Beiträge: 1 040

Wohnort: Na zu Hause

Beruf: Student (KIT)

  • Private Nachricht senden

4

06.08.2008, 18:11

Naja ich wollte ein paar Klassen schreiben, die funktionen mit string verwenden und diese benutzen intern Windowsfunktionen.

Dabei besitzt jede Klasse einen Template-Parameter, der entweder char oder
wchar_t ist ( zur unterscheidung zwischen UNICODE und ASCII ) .

Nun muss durch diesen Parameter aber auch entschieden werden,
welche Winapi-funktion benutzt werden soll...( CreateWindowExA oder CreateWindowExW )

Die unterscheidung hab ich mir so Vorgestellt ( hier mit einer anderen Funktion ):

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <iostream>
#include <windows.h>


using namespace std; 




template<typename CharType>
class Interface
{
public:
    template<typename T1, typename T2>
    static
    T1 Sep(T1 t1, T2 t2)
    { return t1; }

};


template<>
class Interface<wchar_t>
{
public:
    template<typename T1, typename T2>
    static
    T2 Sep(T1 t1, T2 t2)
    { return t2; }

};





int main()
{
    // Entsprechent dem TemplateParameter wird der Konsolentitel in UNICODE oder ASCII gesetzt

    Interface<wchar_t>::Sep(SetConsoleTitleA, SetConsoleTitleW)(L"Hallo");



    //cout << "test";

    cin.get();
    return 0; 
}


Natürlich in ein bischen anderer Form


Und wenn ich das so mache, brauche ich die Definitionen nicht und dann nerven sie nur ! ;)

GR-PA

Treue Seele

Beiträge: 326

Wohnort: Daheim

Beruf: Faulenzer

  • Private Nachricht senden

5

06.08.2008, 21:38

Nur weil man etwas nicht brauch muss man es nicht gleich entfernen! Die Definitionen stören doch nicht.

Falls du sie unbedingt loswerden musst gibt es ja immer noch #undef...
Signaturen werden überbewertet

Databyte

Alter Hase

  • »Databyte« ist der Autor dieses Themas

Beiträge: 1 040

Wohnort: Na zu Hause

Beruf: Student (KIT)

  • Private Nachricht senden

6

07.08.2008, 09:29

Zitat von »"GR-PA"«

Falls du sie unbedingt loswerden musst gibt es ja immer noch #undef...


Naja bevor ich da jetzt tausende Definitionen auflöse,
lass ich sie lieber im Raum stehen... trotzdem danke ;)

Werbeanzeige