Logo UGIdotNET

Discussione 'Re: Problemi per utilizzare un dll non gestita. '

# Pubblicato il 18 nov 2003 22.24 - Rispondi
Raffaele Rialdi [MVP]
Re: Problemi per utilizzare un dll non gestita.
Nuova discussione in risposta a http://www.ugidotnet.org/forum/b.asp?m=28024


> Perchè la mia NotifyError non viene più richiamata?
Potrebbe essere dovuto al fatto che i parametri associati al messaggio
(wParam e lParam) non sono quelli corretti.

> Nella dll (in C) non gestita i messaggi vengono inviati utilizzando
> PostMessage(...): è ancora corretto utilizzare questa funzione?
La PostMessage (e la SendMessage) sono funzioni ancora utili in dotnet
richiamabili via Pinvoke.

--
Raffaele Rialdi
Microsoft .NET MVP http://mvp.support.microsoft.com - http://italy.mvps.org
UGIdotNET - User Group Italiano .NET http://www.ugidotnet.org
Weblog: http://www.ugidotnet.org/2082.blog



----------------------
Questo messaggio è stato postato da microsoft.public.it.dotnet.vb.
# Pubblicato il 19 nov 2003 10.25 - Rispondi
Elisa Ricci
Re: Problemi per utilizzare un dll non gestita.
> > Perchè la mia NotifyError non viene più richiamata?
> Potrebbe essere dovuto al fatto che i parametri associati al messaggio
> (wParam e lParam) non sono quelli corretti.

Guardando con Spy++ mi sembra che i parametri siano quelli corretti.

> > Nella dll (in C) non gestita i messaggi vengono inviati utilizzando
> > PostMessage(...): è ancora corretto utilizzare questa funzione?
> La PostMessage (e la SendMessage) sono funzioni ancora utili in dotnet
> richiamabili via Pinvoke.

La PostMessage è utilizzata nella dll non gestita e non in VB .NET.
Non posso ricevere i messaggi che arrivano alla window utilizzando la NotifyError come si faceva in VB 6?

Ciao e grazie
# Pubblicato il 19 nov 2003 23.46 - Rispondi
Raffaele Rialdi
Re: Problemi per utilizzare un dll non gestita.
Allora c'erano un paio di cose che non avevo capito.

Prova a fare l'override della WndProc (vedi msdn) e mettere un if che cattura il numero del messaggio che ti interessa.

Raffaele
# Pubblicato il 20 nov 2003 8.25 - Rispondi
Elisa Ricci
Re: Problemi per utilizzare un dll non gestita.

> Prova a fare l'override della WndProc (vedi msdn) e mettere un if che cattura il numero
> del messaggio che ti interessa.

Ma la window che riceve i messaggi è stata creata nella dll non gestita. Nel mio progetto in VB .NET ho soltanto un handle a questa finestra.
Inoltre i primi messaggi (cioè quelli relativi alla creazione della window) sono catturati dalla NotifyError: questa però non cattura quelli successivi neppure quelli relativi alla distruzione della finestra.

Devo fare una classe ereditata da NativeWindow che contiene l'override della WndProc?

Grazie e Ciao
Elisa
# Pubblicato il 25 nov 2003 23.22 - Rispondi
Raffaele Rialdi
Re: Problemi per utilizzare un dll non gestita.
> Devo fare una classe ereditata da NativeWindow che contiene l'override della WndProc?
No. Ma la situazione è sempre più intricata :~|

Riguardando il codice vedo che non fai la new del delegate che hai creato. Riverifica tutto il codice da zero e riguarda gli articoli di msdn che mostrano esempi relativi a questa tecnica.

Raffaele
# Pubblicato il 27 nov 2003 7.58 - Rispondi
Elisa Ricci
Re: Problemi per utilizzare un dll non gestita.
on 25. Nov 2003 23:22 Raffaele Rialdi wrote:
> Riguardando il codice vedo che non fai la new del delegate che hai creato. Riverifica tutto il
> codice da zero e riguarda gli articoli di msdn che mostrano esempi relativi a questa tecnica.

Sono riuscita a risolvere il problema (riguardava proprio il dalegate).
Grazie dell'aiuto.
Ciao
Elisa

© 2001 User Group Italiano UGIdotNET. Tutti i diritti riservati. Note legali. - Partita IVA 01927050185