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
App. WinForms / WPF .NET
Eccezione Stranissima
lunedì 06 giugno 2011 - 14.57
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
giamisan
Profilo
| Newbie
48
messaggi | Data Invio:
lun 6 giu 2011 - 14:57
Ciao a tutti, sto iniziando a utilizzare delle dll sviluppate da una software house per crearmi il mio programmino. Questa azienda, per aiutare gli sviluppatori, mette a disposizione un codice di esempio in C#. Io scrivo in VB e più in particolare ho Visual Studio 2010.
Provando a lanciare in debug il loro esempio mi viene sempre costantemente sollevata una eccezione.
Siccome il loro programma è un po' complesso, per cercare di capirci meglio mi sono creato una mia soluzione semplicissima, ho importato tutti i riferimenti che loro utilizzano nel loro esempio, ho inserito un modulo nel mio progetto con una SubMain all'interno del quale creo gli oggetti che mi servono e alla fine apro il Form.icazione.
Ho bisogno di creare 6 oggetti, riesco a crearne tranquillamente 5 ma sul sesto mi si impasta sempre tutto generandomi un'eccezione.
L'eccezione in questione è:
System.AccessViolationException
{"Tentativo di lettura o scrittura della memoria protetta. Spesso questa condizione indica che altre parti della memoria sono danneggiate."}
Ho chiesto assistenza alla casa del software i quali ovviamente hanno risposto che per loro funziona tutto alla perfezione. Perchè allora sul mio pc non va?
QUalcuno ha idea di come possa uscirne fuori?
Grazie mille
Giacomo
nico839
Profilo
| Senior Member
232
messaggi | Data Invio:
lun 6 giu 2011 - 15:24
ciao,
qui
http://www.dotnethell.it/forum/messages.aspx?ThreadID=28245
hanno la tua stessa eccezione su Vista con un controllo activeX e hanno risolto...
Ciao.
Nicolas
http://perledinico.blogspot.com
giamisan
Profilo
| Newbie
48
messaggi | Data Invio:
lun 6 giu 2011 - 16:06
Ciao,
avevo già letto quel post però non mi sembrava potesse fare il caso mio per due motivi:
1) Io sono su Windows7
2) si tratta di disabilitare in modo forzato l'UAC di Windows che io peraltro ho già disabilitato di default nelle impostazioni account utente. Inoltre l'UAC di Windows protegge soltanto, per quello che ho potuto capire, la cartella Programmi mentre la mia applicazione la cartella programmi non la sfiora nemmeno
Cosa dici?
jackk87
Profilo
| Junior Member
106
messaggi | Data Invio:
lun 6 giu 2011 - 21:01
fai due prove:
1- esegui il programma come amministratore
2- compila il progetto solo per CPU x86
facci sapere
giamisan
Profilo
| Newbie
48
messaggi | Data Invio:
mar 7 giu 2011 - 08:50
Ciao,
avevo già provato a fare le due prove che mi hai consigliato ma su entrambe l'esito è lo stesso.
Ho però forse scoperto una cosa, che mi pare strana. Se io vado in visualizzatore oggetti, nel namespace dove è presente la classe che devo istanziare la trovo immediatamente e si chiama cInfoService se ci clicco sopra, nella parte di destra in alto mi escono tutti i metodi, eventi, proprietà ecc...ecc....della classe ma vedo però che non vi è un metodo NEW. Nella parte destra in basso vedo giustamente "Public Class cInfoService Membro di ETInfoService".
Fin qui, a parte l'assenza del metodo NEW sembra tutto ok.
Quando vado nel codice e digito:
Dim mInfo as New cInfoService
una volta che sono andato a capo mi colora in azzurrino "cInfoService" e se ci vado sopra vedo: Interface cInfoService
Strano che da una parte me la veda come Class e dall'altra come Interfaccia. C'è però anche da dire che oltre a questo oggetto ne istanzio degli altri nello stesso identico modo, tutti vengono visti come Interface, ma nessuno da errore.....
Ho però anche notato un'altra cosa utilizzando IntelliTrace. L'eccezzione viene venerata all'ingresso della funzione System.Activator.CreateIstance perchè System.Type è sconosciuto.
Bohhhhhhh!!!!!
nico839
Profilo
| Senior Member
232
messaggi | Data Invio:
mar 7 giu 2011 - 09:21
ciao, potresti postare un po di codice?
Magari oltre al tuo, anche quello di esempio della ditta?
Ciao.
Nicolas
http://perledinico.blogspot.com
giamisan
Profilo
| Newbie
48
messaggi | Data Invio:
mar 7 giu 2011 - 09:55
Forse ho capito il problema.
cInfoService è una interfaccia per la classe cInforServiceClass.
Il problema qual è? Che se io apro VisualStudio con la mia soluzione e vado nel Visualizzatore Oggetti non vedo l'interfaccia cInfoService con il simbolo interfaccia ma me la visualizza con il simbolo di classe.
Se io invece in Visual Studio carico la loro soluzione di esempio, apro il Visualizzatore di Oggetti, vado nello stesso Namespaces vedo sia la classe cInfoServiceClass sia l'interfaccia cInfoService.
A questo punto invece di dichiarare
Dim mInfo as new cInfoService
ho provato a dichiarare
Dim mInfo as new cInfoServiceClass
e qui mi da errore perchè mi dice di utilizzare l'interfaccia corretta.
Ma a questo punto mi chiedo: perchè da una parte vedo sia l'interfaccia sia la classe (nel loro progetto) mentre nel mio vedo solo la classe e non l'interfaccia??!!!
giamisan
Profilo
| Newbie
48
messaggi | Data Invio:
mar 7 giu 2011 - 10:54
Ok forse ho risolto, ditemi se ho fatto un cavolata...devo ancora provarlo ma almeno ora non mi da quella noiosa eccezione e tutto sembra essere inizializzato correttamente.
Ho aggiunto alla mio progetto una classe all'interno della quale ho scritto
Implements cInfoService
Come ho dato INVIO lui i ha caricato tutta una serie di eventi, function e proprietà.
A questo punto invece di fare come facevo prima (Dim mInfo as New cInfoService) ho dichiarato:
Dim mInfo as New ImpClcInfoService
dove ImpClInfoService è la classe che implementa la mia interfaccia cInfoService.
Pensate possa funzionare?
Grazie
Giacomo
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 !