Newsgroup: it.comp.lang.delphi
Titolo: privileged instruction + delphi 2005

Ciao ragazzi volevo sapere se qualcuno è riuscito a gestire
un'eccezzione come da oggetto con delphi 2005. Il mio OS è windows
2000 SP4 e quando vado a fare il free di un'oggetto mi solleva questo
tipo di eccezzione che però non riesco a gestire...... Come posso
fare???? e soprattutto perche si verifica questo tipo di eccezzione?
Sono sicurissimo che faccio la free dopo aver fatto la create
dell'oggetto eppure.......
Grazie in anticipo, buon lavoro

 un'eccezzione come da oggetto con delphi 2005. [...]
Non ho avuto alcun problema a riguardo, quindi probabilmente la causa è 
da attribuire a qualche fattore insito nel codice.
Usi componenti di terze parti? Di quali classi esegui manualmente il 
metodo /Free/? Il tuo problema si verifica anche costruendo un progetto 
vuoto ad hoc in cui inserisci solamente una /Create/ e una /Free/ di 
esempio?
Ciao,
   Marco.
-- 
MARCO «Alka» BREVEGLIERI
   (
http://www.marco.breveglieri.name
)
Leggi le FAQ di ICLD: 
http://icld.altervista.org

diciamo che non si verifica sistematicamente ma quando avviene
l'eccezzione...........avvien sempre sul free dell'oggetto. C'è un
modo per beccarla con Delphi 2005????
Il componente è di terze parti ed era per delphi 4, ma non mi ha mai
dato problemi ne con delphi 5 tantomeno con delphi 6.......

 dato problemi ne con delphi 5 tantomeno con delphi 6.......
Purtroppo, senza alcun riferimento preciso č quasi impossibile aiutarti.
Al massimo, se possiedi il codice sorgente, prova a controllare che 
ciascuna /Free/ su un oggetto non venga eseguita piů di una volta (metti 
il breakpoint nei punti giusti), oppure sostituiscila con un 
/FreeAndNil/ controllando appunto che la variabile contenente il 
riferimento all'oggetto non valga *nil* prima di eseguire la /Free/.
Cosě su due piedi, non mi viene in mente altro. :-/


magari provo con questo FreeAndNil. Ma proprio non si riesce ad
intercettarla con delphi.....sull'help c'è scritto poco e anche sull'
msdn non c'è molto

 msdn non c'č molto
Se stai parlando di /FreeAndNil/, č una funzione peculiare della RTL di 
Delphi, quindi su MSDN non troverai nulla a riguardo.
Ti basti sapere che chiama il metodo /Free/ e imposta la variabile 
passata come parametro a *nil*.
Puoi sostituirla anche con
   MyRef.Free;
   MyRef := nil;


mi riferivo a questa privileged instruction se si poteva intercettare.
Il componente è e per gestire il resource PCSC di windows come
TAPDUCard TResourceManager tutti della VAS.....hai presente?!?!?!?!?
Vengono usati per interfacciarsi con lettori di sim card per poterle
leggere...... Grazie per l'aiuto

Quello è l'errore che viene fuori quando il processore tenta di eseguire
istruzioni macchina priviligiate(ad esempio l'accesso alle porte o a certi
registri) in un contesto che non ha privilegi per farlo(istruzioni
riservate al kernel del SO che vengono eseguite in UserMode).
La causa:se stai facendo il Free di un oggetto probabilemente non
istanziato(già distrutto o mai creato) oppure nel Destroy dell'oggetto si
vanno a distruggere oggetti non istanziati o mai creati. Fai il debug con
il supporto dei sorgenti.
Bye,
Raktzo

 ha scritto nel messaggio 
news:1119007638....@o13g2000cwo.googlegroups.com...


 Ciao Giorgio
Ciao,
Andrea

dell'oggetto eppure.......
Se è un'interfaccia non c'è bisogno di fare il free
Se è stata creata impostando l'owner su create non è necessario fare il 
free... ci pensa l'owner.
Se l'oggetto è stato fatto con i piedi devi avere il sorgente e correggere 
l'errore
Ciao
P.

 P.
Andrea

 Andrea
Non volevo dire creato a runtime, ma fatto in fretta: classi instanziati e 
non liberati, variabili usati in contesti diversi, ecc...
Io ho avuto la possibilità di lavorare in una ditta che aveva molta fretta 
di consegnare i lavori e con tanti copia/incolla e senza verifiche 
consegnava i lavori...
Ciao
P.