Newsgroup: it.comp.lang.visual-basic
Titolo: VB2005: come gestire la seriale?

Sto convertendo in VB2005 una vecchia applicazione per VB6. Nell'originale, 
avevo messo nella form principale (frmMain) un controllo MSComm chiamato 
com0. Quando avevo bisogno di fare riferimento a questo controllo, usavo il 
formato frmMain.com0.<quello che serve> (per esempio, per inviare una 
stringa alla seriale, usavo la seguente linea:
frmMain.com0.Output = stringa
Con VB2005 questo non posso più farlo. L'esecuzione di quella linea mi dà un 
errore che dice: "COMException non è stata gestita" e più sotto: "Eccezione 
da HRESULT: 0x800A017C (CTL_E_INVALIDPROPERTYVALUE)". La guida in linea 
parla di metodi COM, comunicazione tra Visual Studio e il processo host e in 
generale di eccezioni, ma non nomina proprio la comunicazione seriale. La 
pagina al seguente indirizzo...
http://msdn2.microsoft.com/en-us/library/ms364066(VS.80).aspx
...dice di usare un controllo di tipo SerialPort, ma non capisco se questo 
può essere visto in modo globale come un controllo MSComm (che è quello che 
servirebbe a me) oppure è gestito come una variabile (che viene dichiarata 
all'interno di una sub, di una form o di un modulo).
Per questo vorrei sapere: esiste un semplice metodo per continuare a usare i 
controlli MSComm in VB2005? (e se esiste qual è?) Oppure devo stravolgere il 
codice? 

 ha scritto nel messaggio 
news:45672ab0$0$7632$4faf...@reader1.news.tin.it...

Per evitare tutti questi casini io ti consiglio vivamente di evitare di 
usare VB2005 come se fosse VB6.
C'è un bel componente managed SerialPort per .net 2.0: usa quello e in 
generale evita come la peste i controlli COM/ActiveX.
Ciao 

generale evita come la peste i controlli COM/ActiveX.
Perche' vanno evitati?
Ciao e grazie

 ha scritto nel messaggio 
news:qphgm25s0dhkhh8d8...@4ax.com...

Perchè mal digeriti da .net che non riesce a interfacciarsi in modo nativo.
Ciao 

 generale evita come la peste i controlli COM/ActiveX.
Grazie, ora ho l'ho inserito e ho modificato le parti di codice in modo che 
usino quello invece del controllo MSComm. Però quando ho cercato di eseguire 
il codice, è apparso un errore di permesso negato. Ho cercato la soluzione, 
che secondo questa pagina 
http://samples.gotdotnet.com/quickstart/howto/doc/security/RequestPermissions.aspx
 
consiste nell'inserire la seguente linea nell'assembly:
<Assembly: SecurityPermission(SecurityAction.RequestMinimum, 
Unrestricted:=True)>
Io l'ho fatto, ma compare immediatamente un errore che dice "Tipo 
"SecurityPermission" non definito". Cosa sto sbagliando? Forse non ho capito 
la procedura?

 capito la procedura?
Se non trova il tipo significa semplicemente che non hai fatto l'imports del 
namespace che lo contiene.
Ciao

 del namespace che lo contiene.
Scusami ma questa parte non l'ho capita. Cosa dovrei fare?

 Scusami ma questa parte non l'ho capita. Cosa dovrei fare?
dichiarare i namespaces che intendi importare in testa ai moduli.
Mai visto
Imports System.qualchecosa
?
Ciao 

 ?
Confesso di averlo visto per la prima volta nel tuo messaggio.
Comunque oggi ho provato a inserire le seguenti linee nell'assembly:
Imports System
Imports System.IO
Imports System.Collections
Imports System.Security
Imports System.Security.Permissions
e più sotto:
<Assembly: FileIOPermission(SecurityAction.RequestMinimum, 
Unrestricted:=True)>
<Assembly: SecurityPermission(SecurityAction.RequestMinimum, 
Unrestricted:=True)>
Adesso i tipi li trova, ma mi nega ancora il permesso di accedere alla 
seriale. 

 seriale.
Mi spiace, ma sulle permission non ti so aiutare.
Prova a chiedere in un ng della gerarchia microsoft.public.it.dotnet.*
Ciao