PDA

Visualizza versione completa : Errore VB! Aiuto!


wilhelm
17-09-2003, 08.10.50
Ho creato un'applicazione in VB6 e l'ho compilata sotto Windows 2000.
L'applicazione utilizza alcune API e quando provo a eseguirla sotto Windows ME mi da un problema:

"Run-time Error '453':

Can't find DLL entry point SetLayeredWindowsAtributes in user32.dll"
.

Guarda caso quella è proprio una delle API adoperate!
Come risolvo il problema?
Tra l'altro, quelle dichiarazioni le ho prese da un ltro sorgente e con l'API Viewer questa è l'unica che non trovo, però Windows 2000 non dà nessun problema e riesce a compilare e a far girare il programma!

Krakatau
17-09-2003, 11.09.34
devi installare VB anche su ME... quindi ricompilare...

LoryOne
17-09-2003, 11.54.33
Quando programmi applicativi per Windows ed utilizzi le API la prima cosa che devi fare è controllare che quella API sia compatibile con la versione di Windows sotto la quale il tuo applicativo deve funzionare.

Quell'errore è dovuto al fatto che la funzione API che richiami non è inclusa nella libreria dinamica user32.dll di ME, ma solo in Windows 2000.

Ricorda che le API sono nate prima del S.O. stesso e che quest'ultimo su di esse basa il suo funzionamento ;)

Sergio Neddi
17-09-2003, 13.18.34
Confermo, il problema è sicuramente quello.

wilhelm
17-09-2003, 13.22.30
Grazie, provvederò!

wilhelm
19-09-2003, 11.20.59
Ho cercato un po' e ho trovato che la SetLayeredWindowsAtributes in user32.dll esiste solo in Win2000.
Cosa posso usare per WinME?

Krakatau
19-09-2003, 11.56.29
dipende da cosa vuoi fare...

ce l'hai l'Api viewer? è lì che troverai la risposta...

Sergio Neddi
19-09-2003, 13.31.29
Originariamente inviato da wilhelm
Ho cercato un po' e ho trovato che la SetLayeredWindowsAtributes in user32.dll esiste solo in Win2000.
Cosa posso usare per WinME?

Dipende da cosa deve fare qualla funzione, potrebbe essere che la stessa cosa si possa fare in altra maniera oppure no.

Alcune cose, infatti, non si possono proprio fare con Windows più vecchi.

wilhelm
19-09-2003, 14.52.27
H cercato con l'Api Viewer, ma non la trovo!
Quella funzione serve a dare un livello di trasparenza a una form!

Sergio Neddi
19-09-2003, 21.30.19
Originariamente inviato da wilhelm
H cercato con l'Api Viewer, ma non la trovo!
Quella funzione serve a dare un livello di trasparenza a una form!

Ad occhio mi aveva l'aria di una funzione così: purtroppo in Win9x-ME non è supportata la trasparenza, e tutti i programmi che ho visto che ne fanno uso quando vengono utilizzati nei suddetti sistemi operativi hanno questa funzione disabilitata.

Dovresti quindi testare la versione del sistema operativo prima di utilizzare questa funzione: puoi averla solo da Win2k in poi.

wilhelm
20-09-2003, 08.14.32
Grazie, è quello che immaginavo anch'io!
Alla prossima!