Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
.NET Framework
Poblema API e QTEK2020
venerdì 04 novembre 2005 - 10.48
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
nicolacicco
Profilo
| Newbie
19
messaggi | Data Invio:
ven 4 nov 2005 - 10:48
Salve,
ho un qtek 2020 e ho realizzato in vb.net una classe tale da aprire la com a cui è associato il bluetooth(COM5) e leggere i dati che essa riceve.IL punto di partenza dell'applicazione è la chiamata della API:
Private Declare Function CreateFile Lib "coredll.dll" (ByVal lpFileName As String, ByVal dwDesiredAccess As Integer, ByVal dwShareMode As Integer, ByVal lpSecurityAttributes As Integer, ByVal dwCreationDisposition As Integer, ByVal dwFlagsAndAttributes As Integer, ByVal hTemplateFile As Integer) As IntPtr
Il probelm è proprio qui perchè la chiamata della funzione:
mhRS = CreateFile("\\.\COM" & miPort.ToString, GENERIC_ READ, 0, 0, OPEN_EXISTING, iMode, 0)
mi restituisce sempre un valore mhrs=-1 e cio mi scaturisce di conseguenza il messaggio:Unable to open COM5
Ho fatto diverse prove passando all'interno di CeateFile diversi paremetri ma il risultato nn cambia
Penso che il problema sia a monte.Puo esistere una sorta di incompatibilità tra il QTEk e le librerie che uso (coredll.dll)?Sapete indicarmi dove posso reperire maggiori informazioni?
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
ven 4 nov 2005 - 13:35
Ciao,
se non l'hai già fatto ti consiglio la lettura della reference relativa a CreateFile per Windows CE:
http://msdn.microsoft.com/library/en-us/wceobjst/html/cerefCreateFile.asp
Sia in VB6 ma anche per VB.NET e quindi anche sotto Windows CE per parlare con le porte COM è necessario usare la CreateFile come giustamente hai indicato. Anche io ho lavorato in passato in questo senso e non sono stati pochi i problmei che ho riscontrato durante lo sviluppo dell'applicazione. Infatti anche a me le varie funzioni ritornavano sempre valori di errore. Cambiando un po' i parametri alla fine sono riuscito a farlo funzionare.
Quello che ti chiedo innanzitutto è provare a fare delle prove su cose di cui sei certo. Esempio sei certo che la COM5 sia quella corretta ? Se hai una certezza per esempio anche sul PC locale che la COM1 sia funzionante, creati un esempio tipo su Windows Form classica utilizzando la CraeteFile che apra la porta COM1 locale così almeno dai per scontato che i parametri della API siano funzionanti e che quindi il problema sta altrove.
Riguardo la compatibilità non credo ci siano proprio problemi. dalla documentazione al link che ti ho fornito noterai che la API CreateFile è compatibile Windows CE quindi con qualunque versione di Pocket PC.
Ciao
David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/
nicolacicco
Profilo
| Newbie
19
messaggi | Data Invio:
ven 4 nov 2005 - 15:30
Ciao David,
grazie per l'nformazione,alla fine ci sono riuscito utilizzando la seguente api (leggermente diversa dalla prima):
<DllImport("coredll.dll")> _
Private Shared Function CreateFile(ByVal lpFileName As String, ByVal dwDesiredAccess As Integer, ByVal dwShareMode As Integer, ByVal lpSecurityAttributes As Integer, ByVal dwCreationDisposition As Integer, ByVal dwFlagsAndAttributes As Integer, ByVal hTemplateFile As Integer) As Integer
End Function
Le differenze con il primo caso sono : la prima CreateFile termina con un "AS IntPtr" questa invece termina con "AS Integer" ; nel campo GENERIC_READ gli passavo il valore &H80000000 ora gli passo &HC0000000.
Ho visto che nel sito di MSDN ci sono poi tutte leAPI,questa è un'altra cosa che cercavo
Grazie Ciao
niky
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
lun 7 nov 2005 - 10:11
>Ho visto che nel sito di MSDN ci sono poi tutte leAPI,questa
> è un'altra cosa che cercavo
E' abbastanza normale :) Uno dei pregi di Microsoft è che per ogni tecnologia che studia ed implementa rilascia il relativo SDK che contiene le librerie e la documentazione delle API nuove. su MSDN trovi naturalmente gli SDK di tutte le tecnologie con tutte le API disponibili. Un programmatore su sistemi operativi Microsoft non può non usare l'MSDN.
Ciao
David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !