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

11

17.09.2006, 00:32

ja Riddick da hast ja recht es geht mir nur mal darum es zum laufen zu bekommen in VC 2005

Anonymous

unregistriert

12

17.09.2006, 00:34

Du bekommst es doch zum laufen, wenn du die paar Kleinigkeiten
beachtest, wo ist das Problem???

13

17.09.2006, 00:35

nix da
das läuft wieder auf das alte thema raus wenn du keine hilfe geben willst lass es bitte wie ich schon sagte ich möchte es nur in 2005 zum laufen bekommen mehr nicht

Anonymous

unregistriert

14

17.09.2006, 00:37

Zitat von »"Andy"«

nix da
das läuft wieder auf das alte thema raus wenn du keine hilfe geben willst lass es bitte wie ich schon sagte ich möchte es nur in 2005 zum laufen bekommen mehr nicht
Ich geb dir schon hilfe, indem ich sage das das was du vorhast absoluter Murks ist und daraus auch nur eines kommt: Murks.

Ich sage damit indirekt das du dich mit anständigen dingen befassen sollst und nicht mit sachen die fast 9 Jahre alt sind!

15

17.09.2006, 02:52

Also habe die Probleme mit DrawText hinbekommen nur bei einem hakt es noch

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void CreateD3DFont(void)
{
    // Struktur für die Beschreibung der Schriftart
    // anlegen und Elemente mit 0 initialisieren
    LOGFONT    LogFont = { 0 };
//  char LogFont[20];

    // das Element lfFaceName muss den Namen der
    // gewünschten Schriftart enthalten
    strcpy(LogFont.lfFaceName,"Arial");

    // nach erfolgreichem Aufruf zeigt lpD3DFont
    // auf ein Objekt vom Typ D3DXFont
    D3DXCreateFontIndirect(lpD3DDevice,
                           &LogFont,
                           &lpD3DFont);
}


die Fehlermeldung
h:\test\main.cpp(234) : error C2664: 'strcpy': Konvertierung des Parameters 1 von 'WCHAR [32]' in 'char *' nicht möglich
Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
h:\testl\main.cpp(240) : error C2664: 'D3DXCreateFontIndirectW': Konvertierung des Parameters 2 von 'LOGFONT *__w64 ' in 'const D3DXFONT_DESCW *' nicht möglich
Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.

könnted ihr mir da vieleicht noch helfen Danke

Anonymous

unregistriert

16

17.09.2006, 08:58

Zitat

'D3DXCreateFontIndirectW': Konvertierung des Parameters 2 von 'LOGFONT *__w64 ' in 'const D3DXFONT_DESCW *' nicht möglich


Das sagt ja nun alles... Warum ist es nicht möglich? Weil du eine falsche
Struktur verwendest.

Zitat

'strcpy': Konvertierung des Parameters 1 von 'WCHAR [32]' in 'char *' nicht möglich


C-/C++-Quelltext

1
strcpy_s(LogFont.lfFaceName, sizeof (LogFont.lfFaceName),  L"Arial"); 


Naja Logfont muss halt noch durch den Struktur Fehler behoben werden,
kann gut sein, dass da trotzdem ein Konvertierungsfehler auftaucht. Du
brauchst für die Funktion halt einen char *.

So funktioniert die Funktion richtig:

C-/C++-Quelltext

1
2
    char* LogFont = "Hallo"; 
    strcpy_s(LogFont, sizeof (LogFont), "Arial"); 


Alles klar?

EDIT: Casting rausgenommen ;) Hatte wohl doch nicht soviel Sinn, als
Beispiel, wie ich dachte :p

CodingCat

1x Contest-Sieger

Beiträge: 420

Beruf: Student (KIT)

  • Private Nachricht senden

17

17.09.2006, 09:03

Die Fehlermeldungen sagen dir doch bereits alles.

Die erste Fehlermeldung sagt dir, dass strcpy kein wchar annimmt, also keine Unicode Strings. Wenn du nun in der MSDN strcpy eingibtst, wirst du zu einem Haufen an Alternativen kommen, darunter auch welche, die Unicode Strings annehmen, und sogar welche, die wissen, ob dein Projekt Unicode ist oder nicht, und sich dementsprechent anpassen (liefe dann mit genau gleichem Quelltext in Unicode, sowie in nicht Unicode für MS VC6).

Die zweite Fehlermeldung sagt dir, dass D3DXVreateFontIndirect in der Unicode-Version keine LOGFONT-Struktur annimmt - Visual Studio sagt dir aber auch gleichzeitig, welchen Typ die Funktion annehmen würde, nämlich D3DXFONT_DESCW. Wenn du diesen Strukturnamen nun in der MSDN eingibst, solltest du auch fündig werden. :)

*EDIT*
Hm, war wieder einer schneller ^^

@Riddik:
Wieso castest du ein wchar_t* in ein char*? Da kommt nach strcpy doch dann ein totaler Mist raus, immer zwei Buchstaben zu einem Unicode-Char zusammengefasst???

Außerdem enthält die Unicode-Version des Font-Descriptors auch nur Unicode Strings, und diese wollen als Unicode Strings gefüllt werden, so wie ich das sehe...

Anonymous

unregistriert

18

17.09.2006, 09:34

Wollte ihm nur mögliche Lösungen aufzählen, damit er es auch
besser versteht. :P Sollte ja dadurch auch deutlich geworden sein, dass
unbedingt ein char* benötigt wird und casten ist sowieso selten die
Beste Lösung, hätte ich noch hinzufügen sollen.

Anonymous

unregistriert

19

17.09.2006, 10:13

Nachdenken ist keine Schande, warum tust Du es nicht?!



In den Fehlermeldungen steht alles!

Anonymous

unregistriert

20

17.09.2006, 10:23

C-/C++-Quelltext

1
2
    wchar_t* logfile = L"hallo";
    wcscpy_s (logfile, sizeof (logfile), L"Arial");


Das wäre die optimal Lösung ;) und vor allem: Mit Unicode ;)

Werbeanzeige