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

11.04.2007, 20:38

D3DXLoadSkinMeshFromXof Error

Hallo mal wieder :)

so das wär jetzt vorerst das allerletzte problem mit dem ich euch auf die nerven gehen werde :)

es gibt um die funktion

C-/C++-Quelltext

1
2
3
4
5
6
7
HRESULT D3DXLoadSkinMeshFromXof( 
    PD3DXFILEDATA pxofMesh, DWORD Options,
     LPDIRECT3DDEVICE9 pD3DDevice, LPD3DXBUFFER *
     ppAdjacency, LPD3DXBUFFER * ppMaterials,
     LPD3DXBUFFER * ppEffectInstances, DWORD * 
    pMatOut, LPD3DXSKININFO * ppSkinInfo, 
    PD3DXMESH * ppMesh );


ich bekomm als fehlermeldung beim letzten parameter PD3DXMESH * ppMesh den fehler

Zitat

--------------------Konfiguration: DirectX Programme - Win32 Debug--------------------
Kompilierung läuft...
XFile.cpp
I:\Spiele Programmierung\RPG Programmierung\DirectX Programme\XFile.cpp(411) : error C2664: 'D3DXLoadSkinMeshFromXof' : Konvertierung des Parameters 1 von 'struct IDirectXFileData *' in 'struct ID3DXFileData *' nicht moeglich
Die Typen, auf die verwiesen wird, sind nicht verwandt; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat
Fehler beim Ausführen von cl.exe.

DirectX Programme.exe - 1 Fehler, 0 Warnung(en)


was ich aber nicht ganz verstehe, da mir vorkommt,dass ich ein ID3DXFileData übergebe, nämlich sMesh.

hier mal mein funktionsaufruf

C-/C++-Quelltext

1
2
3
4
5
D3DXLoadSkinMeshFromXof(pDataObj, 0,
                g_pD3DDevice,
                &Adjacency, &MaterialBuffer, NULL, &Mesh->m_NumMaterials, 
                &Mesh->m_SkinInfo, 
                &Mesh->m_Mesh)


wichtig ist nur der lezte parameter &Mesh->m_Mesh.

initialisiert als

C-/C++-Quelltext

1
sMesh         *Mesh = NULL;


hat schon wer damit gearbeitet, oder kennt sich jemand damit aus?

wäre nett :)

mfg
Simon

2

11.04.2007, 20:54

Laut Compilerfehler geht es doch um den ersten Parameter.

3

11.04.2007, 21:21

ahja :)

danke, aber dann gibt es logischerweise die funktionen nicht mehr, die ich von IDirect3DFileData hergenommen habe ...

gibts ne möglichkeit für den einen funktionaufruf von IDirect3DFileData in ID3DXFileData zu "casten" ?


btw war verwirrt,weil der blaue pfeil von visual studio auf den letzten parameter deutet nicht auf die funktionsaufrufzeile :)

aber wir wissen ja lesen >>> me :P

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

4

11.04.2007, 22:41

Re: D3DXLoadSkinMeshFromXof Error

Zitat

--------------------Konfiguration: DirectX Programme - Win32 Debug--------------------
Kompilierung läuft...
XFile.cpp
I:\Spiele Programmierung\RPG Programmierung\DirectX Programme\XFile.cpp(411) : error C2664: 'D3DXLoadSkinMeshFromXof' : Konvertierung des Parameters 1 von 'struct IDirectXFileData *' in 'struct ID3DXFileData *' nicht moeglich
Die Typen, auf die verwiesen wird, sind nicht verwandt; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat
Fehler beim Ausführen von cl.exe.

DirectX Programme.exe - 1 Fehler, 0 Warnung(en)


Die Möglichkeit steht doch direkt da -.-

C-/C++-Quelltext

1
2
D3DXLoadSkinMeshFromXof(reinterpret_cast<ID3DXFileData*>(pDataObj), 0, 
[...]


Allerdings weiß ich nicht, ob es sinnvoller wäre, einfach ein ID3DXFileData Objekt zu haben...

5

12.04.2007, 08:52

das ID3DXFileData hab ich shcon probiert,d kommt es dann zu komplikationen mit IDirectedFileObjectData etc, und verursacht mehr fehler :D

ich probier das mal mit dem reinterpret

danke

edit: ne das funktioniert auch ned :(

naja schau mir das irgendwann mal wieder an, geht mir derzeit zu sehr auf die nerven ....

edit2:

nur noch als info,das waren die fehler

Zitat

--------------------Konfiguration: DirectX Programme - Win32 Debug--------------------
Kompilierung läuft...
XFile.cpp
Linker-Vorgang läuft...
XFile.obj : error LNK2001: Nichtaufgeloestes externes Symbol __imp__timeGetTime@0
XFile.obj : error LNK2001: Nichtaufgeloestes externes Symbol _TID_D3DRMAnimationKey
XFile.obj : error LNK2001: Nichtaufgeloestes externes Symbol _TID_D3DRMAnimation
XFile.obj : error LNK2001: Nichtaufgeloestes externes Symbol _TID_D3DRMAnimationSet
XFile.obj : error LNK2001: Nichtaufgeloestes externes Symbol _TID_D3DRMMesh
XFile.obj : error LNK2001: Nichtaufgeloestes externes Symbol _TID_D3DRMFrame
Debug/DirectX Programme.exe : fatal error LNK1120: 6 unaufgeloeste externe Verweise
Fehler beim Ausführen von link.exe.

DirectX Programme.exe - 7 Fehler, 0 Warnung(en)

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

6

12.04.2007, 21:38

winmm.lib linken?

7

12.04.2007, 22:24

jojo damit geht das timegettime weg,das weiß ich schon auch, aber die anderen 5 sachen nicht :)

ich muss nochmal schauen einfach, vl kann ich die ganzen funktionen so umbauen,dass es mit ID3DXFileData funktioniert. wird zwar ne menge arbeit denk ich, weil tuts hab ich im google keine guten gefunden, aber es ist halt zwingend notwendig, damit ich die ganzen level x.files,models, etc einladen kann.

danke trotzdem für eure bemühungen

mfg
Simon

edit: btw sry,dass ich anscheinend meine themen in letzter zeit im falschen forum aufmache. ich sollte da mehr aufpassen :(

8

15.04.2007, 15:17

so geschafft:P yipppiii^^

aber es gibt ein prob, was aber nicht an dem c code liegt :)

ich stell einfach mal hier die frage rein, weil ich ned unnötig wieder nen extra thread aufmachen will^^

also ich hab mir in milkshape mal testhalber nen cube gemacht mit ner textur (siehe screen)


(Link)


so,den exportier ich dann per Directx(JT) oder wie das heißt zu ner .x file und dann müsste im directx mesh viewer, der würfel drin sein mit der textur,wenn ich es lade.

jedoch fehlt die textur :( und im programm ist somit auch nur der weiße würfel ohne textur.

woran kann das liegen? die textur hat 512x512, also ist ein vielfaches von 2, daran liegts schonmal nicht. im ordner ist die datei sowohl als tga (für milkshape) als auch als bmp (für c++) (glaub würde aber mit tga auch in c++ gehen,wenns mich ned täuscht).

hier der screen, wie es im meshviewer aussieht.

(Link)


weiß wer woran das liegen könnte? muss ich da beim export vl noch irgendwo ein spezielles häkchen machen oder was einstellen?

mfg
Simon

Firefly

Alter Hase

Beiträge: 484

Wohnort: Irgendwoundnirgendwo

  • Private Nachricht senden

9

15.04.2007, 21:34

Hast du die Textur-Ansicht aktiviert?
Liegen die Texturen im gleichen Ordner wie das Mesh?

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

10

15.04.2007, 21:45

exportier mal als DirectX 8.0 file (also mit dem andren exporter) und schau ob der richtige texturdateiname in der .x datei drin is.

Zitat

ich stell einfach mal hier die frage rein, weil ich ned unnötig wieder nen extra thread aufmachen will^^


1 frage pro thread und vice versa :p

Zitat

im ordner ist die datei sowohl als tga (für milkshape) als auch als bmp (für c++) (glaub würde aber mit tga auch in c++ gehen,wenns mich ned täuscht).


wenn du in milkshape da ein tga draufpackst, dann wird der wohl auch wieder die tga laden. ka wie du die textur lädst, die D3DX funktionen sollten mit tga zurechtkommen...C++ limitiert dich ganz sicher nicht auf bmp^^

Werbeanzeige