none
Come faccio ad utilizzare le librerie di DirectX su VB.net? RRS feed

  • Domanda

  • Ciao a tutti!

    Ho questo problema con Visual Basic Express 2010 su Windows 7! In pratica non riesco a utilizzare le librerie di DirectX. Mi sono appena avvicinato al mondo del 3D e volevo creare un programmino semplice: magari un cubo che ruota; giusto per capire un po' come funziona il 3D.

    So che VB.net non è il linguaggio più adatto a questo e che lo è il C++ ma non voglio usarlo.

    Illustro nel dettaglio il mio problema...

    Qualche settimana fa volevo appunto fare un programma del genere e ho trovato una guida a proposito su questo sito. Ho iniziato a leggere la sezione riferita a DirectX 9 (la più aggiornata!) e VB.net. Dato che la guida richiedeva DirectX aggiornato per creare il programma, e non sapendo se avevo l'ultima versione installata sul mio PC, ho scaricato l'SDK dal sito della Microsoft: l'SDK di Febbraio 2010. Ok, l'installazione va a buon fine MA, continuando a seguire la guida, mi trovo davanti ad un problema. Infatti la guida dice di andare in cerca nella cartella C:\Programmi\Microsoft DirectX SDK (February 2010)\Developer Runtime\Managed DirectX\Retail di un certo file EXE chiamato "mdxredist.exe". In problema è che la cartella "Managed DirectX\Retai" è inesistente! Riesco ad arrivare fino a "Developer Runtime", la quale è piena di file .dll, e basta. Ho provato anche a cercare tale fine EXE senza successo... Ovviamente! -.-'

    Il secondo problema si è rivelato quando ho cercato le librerie che, sempre quella guida di prima, mi diceva di integrare al mio programma aggiungendo i riferimenti. Infatti le librerie non ci sono, come era logico... Allora ne sono andato in cerca in C: e le ho trovate in "C:\Windows\Microsoft.NET\DirectX for Managed Code\". MA (Ovviamente! -.-') per prima cosa ci sono tutte quelle che mi servivano tranne "Microsoft.DirectX.Direct3DX", la quale è presente in più copie in varie cartelle, il cui nome va da "1.0.2902.0" ad "1.0.2911.0" con dimensioni e data di modifica diverse tra di loro... Boh!

    Ok, non me ne sono fatto un gran problema; le ho integrate al mio programma prendendo quella più pesante e ho iniziato a seguire il primo capitolo della guida. Ho seguito i vari passaggi, ho importato le librerie come della tramite il comando "Imports" e ho dichiarato le due variabili: Device e Settaggio. L'interprete non mi segnala errori e continuo a seguire la guida e a scrivere il mio codice:

    Settaggio.BackBufferCount = 1
    Settaggio.AutoDepthStencilFormat = DepthFormat.D16
    Settaggio.EnableAutoDepthStencil = True
    Settaggio.DeviceWindowHandle = fhWnd
    Settaggio.SwapEffect = SwapEffect.Flip
    Settaggio.Windowed = True

    Arrivato alla riga "Settaggio.DeviceWindowHadle = fhWnd" l'interprete mi segnala errore su "fhWnd" dandomi il solito errore di quando si usa una variabile non dichiarata. A questo punto ho creato un nuovo progetto in cui ho integrato le solite librerie ma con la "Microsoft.DirectX.Direct3DX" più recente al posto di quella più pesante; stesso identico problema!

    Ho cercato su Google questo errore e ho trovato una pagina in cui si parlava del mio stesso problema; affermavano che la versione dell'SDK (Rilasciato a Febbraio) non supportasse tutto Visual Studio 2010 (Rilasciato ad Aprile) e a mio parere avrebbe potuto essere possibile! Allora oggi ho ricontrollato il sito di DirectX e mi sono accorto che la nuova versione dell'SDK era stata rilasciata il 6 Giugno. La scarico, la installo e, ovviamente, stessi problemi elencati sopra! Ditemi voi qual'è il problema e come risolverlo perchè io non so proprio più che pesci pigliare!

    E' possibile che abbiano tolto de DirectX il supporto per VB.net? Mmmh... La vedo dura!

    E' possibile che le guide elencate sopra e a cui ho fatto riferimento non siano compatibili con l'attuale versione di DirectX? E' molto probabile! Ma non sapendo come funziona l'attuale versione non posso saperlo!

    Spero che abbia scritto tutto senza tralasciare nessun particolare e, in particolar modo, che mi possiate aiutare! Grazie in anticipo! =)

    mercoledì 9 giugno 2010 17:20

Risposte

Tutte le risposte