Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Nokia Innovation Day 2026: la sovranità europea passa dal mercato unico e dai laboratori italiani del gruppo
Nokia Innovation Day 2026: la sovranità europea passa dal mercato unico e dai laboratori italiani del gruppo
Politica, accademia e industria a confronto su mercato unico, sicurezza e competitività. Nei laboratori di Vimercate, Nokia ha mostrato le nuove generazioni di chip ottici e i test che ogni prodotto deve superare prima di arrivare sul mercato
In sella alla Fiido Nomads Pro: e-bike con motore centrale da 100 Nm per il divertimento a 360 gradi
In sella alla Fiido Nomads Pro: e-bike con motore centrale da 100 Nm per il divertimento a 360 gradi
Abbiamo assemblato e provato la Fiido Nomads Pro, evoluzione del modello da trekking già presente nella gamma, che migliora in tutto, soprattutto grazie al motore centrale, fluido e potente. Ottima app, costruzione solida e prezzo ok completano il quadro
ASUS Zenbook 14 (UX3480AA): tanta autonomia con uno chassis bello e robusto
ASUS Zenbook 14 (UX3480AA): tanta autonomia con uno chassis bello e robusto
Lo chassis in Ceraluminium è il cuore di questo notebook in edizione 2026, un modello pensato per garantire produttività con le tipiche applicazioni di produttività personale e capace di offrire un'autonomia di funzionamento lontano dalla presa di corrente da riferimento. Potenza, facilità di trasporto e costruzione robusta tutto in un notebook compatto.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 13-06-2005, 14:43   #1
ghiotto86
Senior Member
 
L'Avatar di ghiotto86
 
Iscritto dal: Jul 2004
Città: Napoli
Messaggi: 2029
DirectInput con directx 9.0

ho letto su msdn che ci sono alcune cose da cambiare per utilizzarle con dx 9.0
bhe io l'ho fatto ma mi dà sempre errore di linkaggio

-Set "#define DIRECTINPUT_VERSION 0x0800" before the include statement for Dinput8.h.
FATTO

-Call DirectInput8Create instead of DirectInputCreateEx.
FATTO

-Link to the Dinput8.lib library instead of Dinput.lib.
come si fa??? è automatico???
ghiotto86 è offline   Rispondi citando il messaggio o parte di esso
Old 13-06-2005, 16:28   #2
okay
Senior Member
 
Iscritto dal: Feb 2002
Messaggi: 906
devi*includere*nelle*opzioni*del*compilatore*dinput8.lib
fai*progetto*tasto*destro*del*mouse*e*scegli*proprietà*vai*nella
sezione*c++*e*clicca*su*input*scrivi*la*lib*dinput8.lib

ciao
okay è offline   Rispondi citando il messaggio o parte di esso
Old 13-06-2005, 17:44   #3
ghiotto86
Senior Member
 
L'Avatar di ghiotto86
 
Iscritto dal: Jul 2004
Città: Napoli
Messaggi: 2029
Quote:
Originariamente inviato da okay
devi*includere*nelle*opzioni*del*compilatore*dinput8.lib
fai*progetto*tasto*destro*del*mouse*e*scegli*proprietà*vai*nella
sezione*c++*e*clicca*su*input*scrivi*la*lib*dinput8.lib

ciao
okay mi sei di grande aiuto grazie.
strano però che non lo spiega dettagliatamente nemmeno sull'msdn.
grazie
ghiotto86 è offline   Rispondi citando il messaggio o parte di esso
Old 13-06-2005, 18:08   #4
ghiotto86
Senior Member
 
L'Avatar di ghiotto86
 
Iscritto dal: Jul 2004
Città: Napoli
Messaggi: 2029
ops okay non è tutto okay.

mi da quest'errore

Eccezione first-chance a 0x00412b73 in Meshes.exe: 0xC0000005: Violazione di accesso nella lettura del percorso 0x00000000.
Eccezione non gestita a 0x00412b73 in Meshes.exe: 0xC0000005: Violazione di accesso nella lettura del percorso 0x00000000.

il mio codice nel winmain è solo questo
Codice:
HRESULT hr;	        
	hr = DirectInput8Create(hInst, DIRECTINPUT_VERSION, 
						    IID_IDirectInput8, (void**)&g_lpDI, NULL); 
	

	hr = g_lpDI->CreateDevice(GUID_SysKeyboard, &g_lpDIDevice, NULL); 

	if FAILED(hr) 
	{ // DirectInput not available; take appropriate action 
		//DI_Term(); 
        MessageBox(hWnd,"Errore","SCEM !!",MB_OK);
		return FALSE; 
	}
perchè mi da quest'errore in runtime.
ghiotto86 è offline   Rispondi citando il messaggio o parte di esso
Old 13-06-2005, 18:49   #5
okay
Senior Member
 
Iscritto dal: Feb 2002
Messaggi: 906
metti*deibreackpoint*edebugga*perchè*non*posso*certo*capire*cosa*sta*succedendo.
quel*000000000*mi*sembra*il*puntatore*del*device*non*inizializzato*.*posta*più*cpdice*dell'inizializzazione*delle*input*oppure*debugga*e*guarda*quake*è*la*linea*incriminata.
okay è offline   Rispondi citando il messaggio o parte di esso
Old 13-06-2005, 18:53   #6
ghiotto86
Senior Member
 
L'Avatar di ghiotto86
 
Iscritto dal: Jul 2004
Città: Napoli
Messaggi: 2029
eh si ho visto col debug e da errore qua

hr = g_lpDI->CreateDevice(GUID_SysKeyboard, &g_lpDIDevice, NULL);

i puntatori g_lpDI e g_lpDIDevice uaguali a NULL.

che error è ?
ghiotto86 è offline   Rispondi citando il messaggio o parte di esso
Old 13-06-2005, 18:58   #7
ghiotto86
Senior Member
 
L'Avatar di ghiotto86
 
Iscritto dal: Jul 2004
Città: Napoli
Messaggi: 2029
ah ecco c'è altro

quando arrivo a sta linea di codice

Codice:
hr = DirectInput8Create(GetModuleHandle(NULL), DIRECTINPUT_VERSION, 
						    IID_IDirectInput8, (void**)&g_lpDI, NULL);
mi dice nella finestra di debug
che hr 0x8007047e Il programma specificato richiede una versione più aggiornata di Windows. HRESULT


che significa??
ghiotto86 è offline   Rispondi citando il messaggio o parte di esso
Old 13-06-2005, 19:13   #8
okay
Senior Member
 
Iscritto dal: Feb 2002
Messaggi: 906
LPDIRECTINPUT8 g_lpDI=NULL;
LPDIRECTINPUTDEVICE8 m_pKeyboard=NULL;




DirectInput8Create(hInst, DIRECTINPUT_VERSION,
IID_IDirectInput8, (void**)&g_lpDI, NULL)


g_lpDI->CreateDevice(GUID_SysKeyboard, &m_pKeyboard, NULL)

metti un breackpoint dopo queste istruzioni e vedi se questi breack point sono passati vedi dove è che si blocca

la dichiarazione l'hai fatta?
okay è offline   Rispondi citando il messaggio o parte di esso
Old 13-06-2005, 19:49   #9
ghiotto86
Senior Member
 
L'Avatar di ghiotto86
 
Iscritto dal: Jul 2004
Città: Napoli
Messaggi: 2029
fatto okay ma mi da sempre quell'errore. ti sposto uno screen


???
ghiotto86 è offline   Rispondi citando il messaggio o parte di esso
Old 13-06-2005, 21:44   #10
okay
Senior Member
 
Iscritto dal: Feb 2002
Messaggi: 906
Certo che meno male che hai messo uno shoot se no mi mandavi al manicomio pure a me................... ma che faì!!!!!!!!!!

Non devi mai inizializzare le input e quantaltro prima che venga creato il device delle directx.

tutte le inizializzazioni di input sound e quantaltro le devi fare solo dopo che è stato inizializzato il pd3Device delle directx nel tuo caso delle 9.
Trova il punto di questa inizializzzazione e tienilo sempre a mente (lo devi avere nelle Common in DXUT.cpp le righe sono:
pD3D = DXUT_Dynamic_Direct3DCreate9( D3D_SDK_VERSION );
GetDXUTState().SetD3D( pD3D );
) questo è un errore gravissimo proprio da principiante che non ha letto un bel niente e fà solo copia & incolla.

mannaggia............mannaggia!!!!!

l'inizializzazione delle input e quantaltro falla in InitGame() che già c'è di default oppure in un'altra void tua ma sempre dopo l'inizializzazione del devide delle dx.

ciao
okay è offline   Rispondi citando il messaggio o parte di esso
Old 14-06-2005, 14:51   #11
ghiotto86
Senior Member
 
L'Avatar di ghiotto86
 
Iscritto dal: Jul 2004
Città: Napoli
Messaggi: 2029
wela okay.
infatti ci avevo pensato e ho fatto come hai detto te guarda:


il mio winmain
Codice:
INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR, INT )
{
    // Register the window class
    WNDCLASSEX wc = { sizeof(WNDCLASSEX), CS_CLASSDC, MsgProc, 0L, 0L, 
                      GetModuleHandle(NULL), NULL, NULL, NULL, NULL,
                      "D3D Tutorial", NULL };
    RegisterClassEx( &wc );

    // Create the application's window
    HWND hWnd = CreateWindow( "D3D Tutorial", "D3D Tutorial 06: Meshes", 
                              WS_OVERLAPPEDWINDOW, 100, 100, 300, 300,
                              GetDesktopWindow(), NULL, wc.hInstance, NULL );
    
	// Initialize Direct3D
    if( SUCCEEDED( InitD3D( hWnd ) ) )
    { 
		CreateKeyboard(hWnd);
        // Create the scene geometry
        if( SUCCEEDED( InitGeometry() ) )
        {
            // Show the window
            ShowWindow( hWnd, SW_SHOWDEFAULT );
            UpdateWindow( hWnd );

            // Enter the message loop
            MSG msg; 
            ZeroMemory( &msg, sizeof(msg) );
            while( msg.message!=WM_QUIT )
            {
                if( PeekMessage( &msg, NULL, 0U, 0U, PM_REMOVE ) )
                {
                    TranslateMessage( &msg );
                    DispatchMessage( &msg );
                }
                else
                    Render();
				    ProcessKBInput();
            }
        }
    }

    UnregisterClass( "D3D Tutorial", wc.hInstance );
    return 0;
}
se va bene l'inizializzazione 3d cioè richiamando
Codice:
HRESULT InitD3D( HWND hWnd )
{
    // Create the D3D object.
    if( NULL == ( g_pD3D = Direct3DCreate9( D3D_SDK_VERSION ) ) )
        return E_FAIL;

    // Set up the structure used to create the D3DDevice. Since we are now
    // using more complex geometry, we will create a device with a zbuffer.
    D3DPRESENT_PARAMETERS d3dpp; 
    ZeroMemory( &d3dpp, sizeof(d3dpp) );
    d3dpp.Windowed = TRUE;
    d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
    d3dpp.BackBufferFormat = D3DFMT_UNKNOWN;
    d3dpp.EnableAutoDepthStencil = TRUE;
    d3dpp.AutoDepthStencilFormat = D3DFMT_D16;

    // Create the D3DDevice
    if( FAILED( g_pD3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,
                                      D3DCREATE_SOFTWARE_VERTEXPROCESSING,
                                      &d3dpp, &g_pd3dDevice ) ) )
    {
        return E_FAIL;
    }

    // Turn on the zbuffer
    g_pd3dDevice->SetRenderState( D3DRS_ZENABLE, TRUE );

    // Turn on ambient lighting 
    g_pd3dDevice->SetRenderState( D3DRS_AMBIENT, 0xffffffff );

    return S_OK;
}
allora inizializzo l'input da tastiera richimando CreateKeyborad() cioè
Codice:
HRESULT CreateKeyboard( HWND hWnd )
{
	HRESULT hr;
    // Create a DInput object
    hr = DirectInput8Create( GetModuleHandle(NULL), DIRECTINPUT_VERSION, 
                                         IID_IDirectInput8, (VOID**)&g_lpDI, NULL ); 
    
    hr = g_lpDI->CreateDevice( GUID_SysKeyboard, &m_pKeyboard, NULL );
       
    hr = m_pKeyboard->SetDataFormat( &c_dfDIKeyboard );
      
    hr = m_pKeyboard->SetCooperativeLevel( hWnd, DISCL_FOREGROUND | DISCL_NONEXCLUSIVE );

    m_pKeyboard->Acquire();


    return S_OK;
}
ma da sempre lo stesso errore.
che sbaglio?????

p.s. cmq grazie del principiante se non lo sono io
ghiotto86 è offline   Rispondi citando il messaggio o parte di esso
Old 14-06-2005, 15:32   #12
okay
Senior Member
 
Iscritto dal: Feb 2002
Messaggi: 906
è tutto okay

Ultima modifica di okay : 14-06-2005 alle 15:36.
okay è offline   Rispondi citando il messaggio o parte di esso
Old 14-06-2005, 18:08   #13
ghiotto86
Senior Member
 
L'Avatar di ghiotto86
 
Iscritto dal: Jul 2004
Città: Napoli
Messaggi: 2029
Quote:
Originariamente inviato da okay
è tutto okay
no.
mi da sempre quell'errore
se non ti da fastidio posso mandartelo per e-mail tutto il progetto così vedi l'errore sto impazzendo.
grazie cmq della mano che mi hai dato.

p.s. mandami l'email per pm.
ghiotto86 è offline   Rispondi citando il messaggio o parte di esso
Old 14-06-2005, 18:13   #14
Fenomeno85
Senior Member
 
L'Avatar di Fenomeno85
 
Iscritto dal: Jun 2002
Città: Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
non ho visto il codice non ho voglia di vederlo cmq accedi in una posizione di memoria in cui NON devi accedere controlla cmq i valori che passi se sono corretti o meno

~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio.
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso
Fenomeno85 è offline   Rispondi citando il messaggio o parte di esso
Old 14-06-2005, 18:15   #15
Fenomeno85
Senior Member
 
L'Avatar di Fenomeno85
 
Iscritto dal: Jun 2002
Città: Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
per caso il valore di hr che utilizzi come ritorno dalla prima lo utilizzi anche nella seconda funzione?? non si vede ce sta la finestra di errore.
Cmq controlla che anche nella prima non ti dia errore.

~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio.
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso
Fenomeno85 è offline   Rispondi citando il messaggio o parte di esso
Old 14-06-2005, 18:36   #16
ghiotto86
Senior Member
 
L'Avatar di ghiotto86
 
Iscritto dal: Jul 2004
Città: Napoli
Messaggi: 2029
Quote:
Originariamente inviato da Fenomeno85
per caso il valore di hr che utilizzi come ritorno dalla prima lo utilizzi anche nella seconda funzione?? non si vede ce sta la finestra di errore.
Cmq controlla che anche nella prima non ti dia errore.

~§~ Sempre E Solo Lei ~§~
alla fine hr è una variabile hresult che ti serve per vedere se le varie inizializzazione sono andate a buon fine.

anche facendo così

Codice:
VOID CreateKeyboard( HWND hWnd )
{   
	// Create a DInput object
    DirectInput8Create( GetModuleHandle(NULL), DIRECTINPUT_VERSION, 
                                         IID_IDirectInput8, (VOID**)&g_lpDI, NULL ); 
    
    g_lpDI->CreateDevice(GUID_SysKeyboard, &m_pKeyboard, NULL);
       
    m_pKeyboard->SetDataFormat( &c_dfDIKeyboard );
      
    m_pKeyboard->SetCooperativeLevel( hWnd, DISCL_FOREGROUND | DISCL_NONEXCLUSIVE );

    m_pKeyboard->Acquire();

}
nada
ghiotto86 è offline   Rispondi citando il messaggio o parte di esso
Old 14-06-2005, 18:37   #17
ghiotto86
Senior Member
 
L'Avatar di ghiotto86
 
Iscritto dal: Jul 2004
Città: Napoli
Messaggi: 2029
cmq il problema è in questa linea qui

Codice:
g_lpDI->CreateDevice(GUID_SysKeyboard, &m_pKeyboard, NULL);
ghiotto86 è offline   Rispondi citando il messaggio o parte di esso
Old 14-06-2005, 19:22   #18
ghiotto86
Senior Member
 
L'Avatar di ghiotto86
 
Iscritto dal: Jul 2004
Città: Napoli
Messaggi: 2029
guardate qua


è come se non fosse inizializzato g_lpDI che è messo a 0.


che succede???
ghiotto86 è offline   Rispondi citando il messaggio o parte di esso
Old 14-06-2005, 20:30   #19
Fenomeno85
Senior Member
 
L'Avatar di Fenomeno85
 
Iscritto dal: Jun 2002
Città: Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
Codice:
if(FAILED(DirectInput8Create(hInst, DIRECTINPUT_VERSION, IID_IDirectInput8, (void**)&m_pDirectInput, NULL))) 
  exit (-1);
~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio.
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso

Ultima modifica di Fenomeno85 : 14-06-2005 alle 20:37.
Fenomeno85 è offline   Rispondi citando il messaggio o parte di esso
Old 14-06-2005, 20:44   #20
ghiotto86
Senior Member
 
L'Avatar di ghiotto86
 
Iscritto dal: Jul 2004
Città: Napoli
Messaggi: 2029
infatti provato.
ho cambiato la funzione che crea il dispositivo così

Codice:
HRESULT CreateKeyboard( HWND hWnd )
{   
	HRESULT hr;
	// Create a DInput object
    if (FAILED(hr = DirectInput8Create( GetModuleHandle(NULL), DIRECTINPUT_VERSION, 
                                         IID_IDirectInput8, (VOID**)&g_lpDI, NULL )))
		return hr;
    
	if(FAILED(hr = g_lpDI->CreateDevice(GUID_SysKeyboard , &m_pKeyboard, NULL)))
		return hr;
      
    if(FAILED(hr = m_pKeyboard->SetDataFormat( &c_dfDIKeyboard )))
		return hr;
      
    hr = m_pKeyboard->SetCooperativeLevel( hWnd, DISCL_FOREGROUND | DISCL_NONEXCLUSIVE );
	
	if( FAILED(hr) )
        return hr;
	
	m_pKeyboard->Acquire();

	return S_OK;
}
e infatti quando debuggo mi da errore qua



che non ho capito cosa ca@@o è: c'è bisogno di una versione di windows più aggiornata bhaa.

se vuoi ti posso anche mandare il prog completo così spacchi tutto anche te
il cast ci vuole perchè
Codice:
LPDIRECTINPUT8	g_lpDI	=NULL;
è la funzione come hai visto accetta solo lpvoid.
ghiotto86 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Nokia Innovation Day 2026: la sovranità europea passa dal mercato unico e dai laboratori italiani del gruppo Nokia Innovation Day 2026: la sovranità e...
In sella alla Fiido Nomads Pro: e-bike con motore centrale da 100 Nm per il divertimento a 360 gradi In sella alla Fiido Nomads Pro: e-bike con motor...
ASUS Zenbook 14 (UX3480AA): tanta autonomia con uno chassis bello e robusto ASUS Zenbook 14 (UX3480AA): tanta autonomia con ...
MSI PRO MAX: QD-OLED ultrawide per lavorare, creare e giocare MSI PRO MAX: QD-OLED ultrawide per lavorare, cre...
Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura Samsung Micro RGB R95H, il primo LCD a LED rossi...
VMware HyperArmor: una nuova protezione ...
AMD conferma una 'potenziale vulnerabili...
Arlo Pro 6 a 139€ su Amazon: telecamera ...
CPU più care, Intel aumenta fino ...
Fastweb ha lanciato l'opzione Fibra 10 G...
GeForce RTX 5080 da 24 GB: debutto nel p...
2 termoventilatori compatti e silenziosi...
AirPods Pro 3 a 199€ su Amazon: cancella...
Il nuovo trailer di Blade Runner 2099 sv...
DK400Max, la e-bike a trazione integrale...
iPhone Duo è 'uno spreco di soldi...
Più di 3000 al mese vendute su Am...
Intel presenta le GPU D-Series fino a 48...
Un attacco informatico può far ma...
AMD Helion, fino a 32.768 core Zen 6 per...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 08:47.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v