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. Visual Studio 6.0
Problema programma vc++ con inserimento ocx
giovedì 16 aprile 2009 - 16.24
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
chira
Profilo
| Newbie
46
messaggi | Data Invio:
gio 16 apr 2009 - 16:24
buongiorno,
ho un grosso problema :(
ho un programma in visual c++ che funziona correttamente al cui interno in una dialog principale ho inserito un ocx (fatto in vb6) creando la rispettiva classe e fin qui tutto bene. se uso i metodi dell'ocx all'interno del dialog in cui l'ho messo funziona correttamente ma se provo a "richiamarlo" da un'altra classe sia chiamando la classe del ocx sia chiamando la dialog in cui ho inserito l'ocx mi da violazione d'accesso e non so che fare.
provo a spiegare più nel dettaglio.
ho la mia diaolog Profili che ha la sua classe CProfili. qui inserisco l'ocx a cui viene associata la sua classe C_control. quindi nelle dichiarazioni della classe Profili associo una variabile di classe C_control cosi: C_Control m_OpcControl;( questo tramite wizard)
il mio ocx ha x es una funzione connessione.
se all'interno dei profili chiamo la funzione OpcControl.Connessione funziona perfettamente.
vado in un 'altra classa (non un dialog)
dichiaro una variabile di classe C_control e una di classe Profili
C_Control* TestOpc1;
CProfili* TestOpc;
provo in entrambi i casi a richiamare la funzione connessione
TestOpc->Connessione
TestOpc1->Connessione
niente errore.
ho anche provato a fare una funzione interna a CProfili chiamata leggi al cui interno richiama la mia connessione (visto che "localmente2 all'interno di CProfili) funziona ma anche in questo caso nn va dando sempre la stessa eccezione.
metto anche la call stack; questo è il caso in cui dalla classe chiamo la dialog Profili e chiamo la funzione LeggiRead al cui interno c'è il controllo ocx che chiama la connessione:
CWnd::InvokeHelper(CWnd * const 0xccccdbb8 {CWnd hWnd=???}, long 1610809351, unsigned short 1, unsigned short 0, void * 0x00000000) line 345 + 3 bytes
C_Control::connessione() line 23 + 22 bytes
CProfili::LeggiRead(short * 0x03bdfdd4, short * 0x03bdfdd4) line 3661
ScritturaSu(void * 0x02190068) line 2764 + 32 bytes
_AfxThreadEntry(void * 0x0012e324) line 112 + 13 bytes
_threadstartex(void * 0x01acb1d0) line 227 + 13 bytes
KERNEL32! 7c80b50b()
p.s in alcuni casi mi da questo CWnd * const 0xccccdbb8 {CWnd hWnd=???},
quando invece genero la variabile associata alla classe utilizzando un =new cioè cosi
CProfili* TestOpc = new CProfili;
allora la call stack diventa CWnd hWnd=0x00000000,
vi prego aiutatemi nn so + che fare!!!!
ancora grazie in anticipo..
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 !