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

14.01.2010, 21:02

Problem mit der Initialisierung von Direct3D!

Hallo,
Ich komme bei der Initialisierung von Direct3D nicht weiter.
Bei kompilieren des Programms gibt´s den Fehler:

1>C:\Program Files\Microsoft DirectX SDK (December 2005)\Include\d3dx9mesh.h(2840) : fatal error RC1011: compiler limit : 'XSKINEXP_TEMPLATES': macro definition too big

Ich hab nicht die geringste Ahnung wie ich den Fehler beheben soll!

2

14.01.2010, 21:08

Was benutzt du denn für einen Compiler ? Welche IDE ?

Hast du es schon mit dem neusten DX-SDK probiert ?

3

14.01.2010, 21:12

Ich benutze Visual C++ 2008 Express Edition und ich habe es mit allen Versionen der SDK von 2005 bis 2009 probiert und mit keiner klappt es.

Ich hab den Fehler auch schon gegoogelt und finde dann die Antwort:
"Try to split the definition into shorter definitions"

1:Ich weiß nicht wie das funktioniert!
2:Es kann nicht sein, dass eine Headerdatei der DirectX SDK falsch ist!

Falls es weiter hilft: Das ist das Template das zu groß ist:

#define XSKINEXP_TEMPLATES \
"xof 0303txt 0032\
template XSkinMeshHeader \
{ \
<3CF169CE-FF7C-44ab-93C0-F78F62D172E2> \
WORD nMaxSkinWeightsPerVertex; \
WORD nMaxSkinWeightsPerFace; \
WORD nBones; \
} \
template VertexDuplicationIndices \
{ \
<B8D65549-D7C9-4995-89CF-53A9A8B031E3> \
DWORD nIndices; \
DWORD nOriginalVertices; \
array DWORD indices[nIndices]; \
} \
template FaceAdjacency \
{ \
<A64C844A-E282-4756-8B80-250CDE04398C> \
DWORD nIndices; \
array DWORD indices[nIndices]; \
} \
template SkinWeights \
{ \
<6F0D123B-BAD2-4167-A0D0-80224F25FABB> \
STRING transformNodeName; \
DWORD nWeights; \
array DWORD vertexIndices[nWeights]; \
array float weights[nWeights]; \
Matrix4x4 matrixOffset; \
} \
template Patch \
{ \
<A3EB5D44-FC22-429D-9AFB-3221CB9719A6> \
DWORD nControlIndices; \
array DWORD controlIndices[nControlIndices]; \
} \
template PatchMesh \
{ \
<D02C95CC-EDBA-4305-9B5D-1820D7704BBF> \
DWORD nVertices; \
array Vector vertices[nVertices]; \
DWORD nPatches; \
array Patch patches[nPatches]; \
[ ... ] \
} \
template PatchMesh9 \
{ \
<B9EC94E1-B9A6-4251-BA18-94893F02C0EA> \
DWORD Type; \
DWORD Degree; \
DWORD Basis; \
DWORD nVertices; \
array Vector vertices[nVertices]; \
DWORD nPatches; \
array Patch patches[nPatches]; \
[ ... ] \
} " \
"template EffectFloats \
{ \
<F1CFE2B3-0DE3-4e28-AFA1-155A750A282D> \
DWORD nFloats; \
array float Floats[nFloats]; \
} \
template EffectString \
{ \
<D55B097E-BDB6-4c52-B03D-6051C89D0E42> \
STRING Value; \
} \
template EffectDWord \
{ \
<622C0ED0-956E-4da9-908A-2AF94F3CE716> \
DWORD Value; \
} " \
"template EffectParamFloats \
{ \
<3014B9A0-62F5-478c-9B86-E4AC9F4E418B> \
STRING ParamName; \
DWORD nFloats; \
array float Floats[nFloats]; \
} " \
"template EffectParamString \
{ \
<1DBC4C88-94C1-46ee-9076-2C28818C9481> \
STRING ParamName; \
STRING Value; \
} \
template EffectParamDWord \
{ \
<E13963BC-AE51-4c5d-B00F-CFA3A9D97CE5> \
STRING ParamName; \
DWORD Value; \
} \
template EffectInstance \
{ \
<E331F7E4-0559-4cc2-8E99-1CEC1657928F> \
STRING EffectFilename; \
[ ... ] \
} " \
"template AnimTicksPerSecond \
{ \
<9E415A43-7BA6-4a73-8743-B73D47E88476> \
DWORD AnimTicksPerSecond; \
} \
template CompressedAnimationSet \
{ \
<7F9B00B3-F125-4890-876E-1C42BF697C4D> \
DWORD CompressedBlockSize; \
FLOAT TicksPerSec; \
DWORD PlaybackType; \
DWORD BufferLength; \
array DWORD CompressedData[BufferLength]; \
} "

4

20.01.2010, 20:36

Bitte helft mir!
Ich bin langsam am verzweifeln! :cry: :cry: :cry:

5

21.01.2010, 09:30

Die Meldung "Fatal error RC1011" stammt vom Ressourcen-Compiler.

Hast du irgendwas in eine Ressource gepackt (eingebunden via include z.B.), was da nicht reingehört?

:idea: Verwende lieber ein aktuelles SDK.

Zitat von »"banji"«

Ich bin langsam am verzweifeln...

-> Wem sagst du das... :(

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

6

21.01.2010, 12:52

Naja das stringliteral das du da definierst ist wohl offensichtlich zu lang (ein Stringliteral darf in MSVC max. 2048 Byte haben).
Versuch es also so aufzuteilen dass die einzelnen Teile kleiner als 2048 Byte sind.

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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#define XSKINEXP_TEMPLATES1 \ 
"xof 0303txt 0032\ 
template XSkinMeshHeader \ 
{ \ 
<3CF169CE-FF7C-44ab-93C0-F78F62D172E2> \ 
WORD nMaxSkinWeightsPerVertex; \ 
WORD nMaxSkinWeightsPerFace; \ 
WORD nBones; \ 
} \ 
template VertexDuplicationIndices \ 
{ \ 
<B8D65549-D7C9-4995-89CF-53A9A8B031E3> \ 
DWORD nIndices; \ 
DWORD nOriginalVertices; \ 
array DWORD indices[nIndices]; \ 
} \ 
template FaceAdjacency \ 
{ \ 
<A64C844A-E282-4756-8B80-250CDE04398C> \ 
DWORD nIndices; \ 
array DWORD indices[nIndices]; \ 
} \ 
template SkinWeights \ 
{ \ 
<6F0D123B-BAD2-4167-A0D0-80224F25FABB> \ 
STRING transformNodeName; \ 
DWORD nWeights; \ 
array DWORD vertexIndices[nWeights]; \ 
array float weights[nWeights]; \ 
Matrix4x4 matrixOffset; \ 
} \ 
template Patch \ 
{ \ 
<A3EB5D44-FC22-429D-9AFB-3221CB9719A6> \ 
DWORD nControlIndices; \ 
array DWORD controlIndices[nControlIndices]; \ 
} \ 
template PatchMesh \ 
{ \ 
<D02C95CC-EDBA-4305-9B5D-1820D7704BBF> \ 
DWORD nVertices; \ 
array Vector vertices[nVertices]; \ 
DWORD nPatches; \ 
array Patch patches[nPatches]; \ 
[ ... ] \ 
} \ 
template PatchMesh9 \ 
{ \ 
<B9EC94E1-B9A6-4251-BA18-94893F02C0EA> \ 
DWORD Type; \ 
DWORD Degree; \ 
DWORD Basis; \ 
DWORD nVertices; \ 
array Vector vertices[nVertices]; \ 
DWORD nPatches; \ 
array Patch patches[nPatches]; \ 
[ ... ] \ 
} " \ 

#define XSKINEXP_TEMPLATES2
"template EffectFloats \ 
{ \ 
<F1CFE2B3-0DE3-4e28-AFA1-155A750A282D> \ 
DWORD nFloats; \ 
array float Floats[nFloats]; \ 
} \ 
template EffectString \ 
{ \ 
<D55B097E-BDB6-4c52-B03D-6051C89D0E42> \ 
STRING Value; \ 
} \ 
template EffectDWord \ 
{ \ 
<622C0ED0-956E-4da9-908A-2AF94F3CE716> \ 
DWORD Value; \ 
} " \ 
"template EffectParamFloats \ 
{ \ 
<3014B9A0-62F5-478c-9B86-E4AC9F4E418B> \ 
STRING ParamName; \ 
DWORD nFloats; \ 
array float Floats[nFloats]; \ 
} " \ 
"template EffectParamString \ 
{ \ 
<1DBC4C88-94C1-46ee-9076-2C28818C9481> \ 
STRING ParamName; \ 
STRING Value; \ 
} \ 
template EffectParamDWord \ 
{ \ 
<E13963BC-AE51-4c5d-B00F-CFA3A9D97CE5> \ 
STRING ParamName; \ 
DWORD Value; \ 
} \ 
template EffectInstance \ 
{ \ 
<E331F7E4-0559-4cc2-8E99-1CEC1657928F> \ 
STRING EffectFilename; \ 
[ ... ] \ 
} " \ 
"template AnimTicksPerSecond \ 
{ \ 
<9E415A43-7BA6-4a73-8743-B73D47E88476> \ 
DWORD AnimTicksPerSecond; \ 
} \ 
template CompressedAnimationSet \ 
{ \ 
<7F9B00B3-F125-4890-876E-1C42BF697C4D> \ 
DWORD CompressedBlockSize; \ 
FLOAT TicksPerSec; \ 
DWORD PlaybackType; \ 
DWORD BufferLength; \ 
array DWORD CompressedData[BufferLength]; \ 
} "


Wenn du das Ding nun im Programm verwenden willst allokier dir einen Buffer der groß genug ist um alle Teile aufzunehmen und schreib die einzelnen Teile dann in den buffer.
Eine andere Alternative wäre auch diesen String statt als Literal im Code als Ressource in die exe Datei einzubinden.

7

21.01.2010, 21:39

Danke für eure Antworten!! :D

Diesen Fehler konnte ich endlich lösen!!
ABER: Jetzt hab ich zwei neue Fehler:
1>CVTRES : fatal error CVT1100: duplicate resource. type:ICON, name:1, language:0x0407
1>LINK : fatal error LNK1123: Fehler bei der Konvertierung in COFF: Datei ist ungültig oder beschädigt.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

8

21.01.2010, 21:42

Gut :)

Der Fehler sagt eigentlich eh schon alles, du hast scheinbar zwei ICON Ressourcen mit gleichem Namen!?

9

21.01.2010, 21:53

Ja,
aber leider hören die fehler gar nicht mehr auf,
denn wenn ich Icon Ressource lösche kommen diese fehler:

1>D3DAbzählung.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""enum tbResult __cdecl ExitDirect3D(void)" (?ExitDirect3D@@YA?AW4tbResult@@XZ)" in Funktion "_WinMain@16".

1>D3DAbzählung.obj : error LNK2019: Verweis auf nicht aufgelöstes
externes Symbol ""enum tbResult __cdecl ExitWindow(void)" (?ExitWindow@@YA?AW4tbResult@@XZ)" in Funktion "_WinMain@16".

1>D3DAbzählung.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""enum tbResult __cdecl InitDirect3D(struct SDirect3DParameters *,struct HWND__ *)" (?InitDirect3D@@YA?AW4tbResult@@PAUSDirect3DParameters@@PAUHWND__@@@Z)" in Funktion "_WinMain@16".

1>D3DAbzählung.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""struct HWND__ * g_hWindow" (?g_hWindow@@3PAUHWND__@@A)".

1>D3DAbzählung.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""enum tbResult __cdecl InitWindow(int,int,char *,struct HICON__ *)" (?InitWindow@@YA?AW4tbResult@@HHPADPAUHICON__@@@Z)" in Funktion "_WinMain@16".

1>D3DAbzählung.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""enum tbResult __cdecl GetDirect3DParameters(struct SDirect3DParameters *)" (?GetDirect3DParameters@@YA?AW4tbResult@@PAUSDirect3DParameters@@@Z)" in Funktion "_WinMain@16".

1>C:\Users\Emil\Documents\Visual Studio 2008\Projects\regsvr32.exe\TriBase2\Debug\TriBase2.exe : fatal error LNK1120: 6 nicht aufgelöste externe Verweise.

10

21.01.2010, 21:53

Ja,
aber leider hören die fehler gar nicht mehr auf,
denn wenn ich eine :arrow: Icon Ressource lösche kommen diese fehler:

1>D3DAbzählung.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""enum tbResult __cdecl ExitDirect3D(void)" (?ExitDirect3D@@YA?AW4tbResult@@XZ)" in Funktion "_WinMain@16".

1>D3DAbzählung.obj : error LNK2019: Verweis auf nicht aufgelöstes
externes Symbol ""enum tbResult __cdecl ExitWindow(void)" (?ExitWindow@@YA?AW4tbResult@@XZ)" in Funktion "_WinMain@16".

1>D3DAbzählung.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""enum tbResult __cdecl InitDirect3D(struct SDirect3DParameters *,struct HWND__ *)" (?InitDirect3D@@YA?AW4tbResult@@PAUSDirect3DParameters@@PAUHWND__@@@Z)" in Funktion "_WinMain@16".

1>D3DAbzählung.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""struct HWND__ * g_hWindow" (?g_hWindow@@3PAUHWND__@@A)".

1>D3DAbzählung.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""enum tbResult __cdecl InitWindow(int,int,char *,struct HICON__ *)" (?InitWindow@@YA?AW4tbResult@@HHPADPAUHICON__@@@Z)" in Funktion "_WinMain@16".

1>D3DAbzählung.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""enum tbResult __cdecl GetDirect3DParameters(struct SDirect3DParameters *)" (?GetDirect3DParameters@@YA?AW4tbResult@@PAUSDirect3DParameters@@@Z)" in Funktion "_WinMain@16".

1>C:\Users\Emil\Documents\Visual Studio 2008\Projects\regsvr32.exe\TriBase2\Debug\TriBase2.exe : fatal error LNK1120: 6 nicht aufgelöste externe Verweise.

Werbeanzeige