Come faccio a rendere visibili delle classi che ho creato in C++ a VB? Le classi sono raggruppate in una dll!
Come faccio a rendere visibili delle classi che ho creato in C++ a VB? Le classi sono raggruppate in una dll!
devi crare la dll come progetto alt com se hai vc++ 6
ovviamente con il file idl che permette aglia ltri linguaggi di capire cosa fa la tua dll
Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te
Dove posso trovare maggiori info a riguardo?
Mi serve creare proprio un ATL COM
non saprei io non l'ho mai fatto faccio come ti ho spiegato in un'altra discussione ma la trattazione delle problematiche com è lunga e insidiosa non credo in rete ci possano essere tutorial soddisfacentiOriginariamente inviato da Grunt
Dove posso trovare maggiori info a riguardo?
Mi serve creare proprio un ATL COM
Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te
Ho creato un gioco, gli scacchi, praticamente tutto il motore è in C++, solo l'interfaccia è in VB, devo solo riuscire a conservare i dati creati (scacchiera, disposizione dei pezzi ecc - Sono classi). Mi basterebbe poter dichiarare alcune classi esterne in VB e passarle per riferimento in modo da mantenere i valori calcolati.
Tutto ciò che riguarda COM è sempre difficoltoso, creare "un ATL COM" non vuol dire una mazza, ATL è solo una libreria di template Microsoft per facilitare la scrittura di componenti COM, puoi scrivere COM anche senza usare ATL, oppure usando MFC.
In rete non trovi quasi nulla di valido, io ho acquistato il libro Inside DCom di MS Press qualche annetto fa, è buono ma forse puoi trovare qualcosa di più recente, e soprattutto che spieghi ATL, conoscendo il quale ti faciliti il lavoro, altrimenti rischi di scrivere piu codice per gestire i dettagli di COM che per il programma che stai facendo.
Comunque per memorizzare dati in una dll normale, in dllMain quando fdwReason == DLL_THREAD_ATTACH inizializzi un'area di memoria permanente per il thread corrente chiamando TlsAlloc, vedi MSDN, oppure usi una variabile globale nella Dll (occhio che questa memoria è condivisa da tutto il processo che usa la dll).
Grazie sei stato davvero gentile.... cercherò sicuramente qualche manuale perchè l'argomento mi interessa molto...
Come mai quando inserisco la Dllmain mi dice che è già definita?
Per far funzionare la dll devo omettere la dllmain!
Se la tolgo però non posso utilizzare quelle variabili che mi servono nelle successive chiamate!?!?
Non ce la faccio + queste dll non riesco proprio a capirle!!!!
forse hai usato il dll wizard di vc++...
vai su project/setting/C++
nella combo settings for metti "all config"
nella combo category metti "precompiled header"
scegli "not using precompiled header"
elimina tutti gli include di MFC tipo "afxXXXX.h"
poi prendi questo codice
e salvalo in un file "preprocessor.bat"codice:CL /I "%include%" /EP %1> %1.preprocessed.txt
da riga di comando digita preprocessor MioFile.cpp
ti crea un file che si chiama MioFile.cpp.preprocessed.txt, che è ciò che viene dato in pasto al compilatore, ripeti l'operazione per tutti i file cpp, e vedi se in qualcuno dei file preprocessati c'è già una DllMain oltre a quella che hai scritto tu (usa la funzione Cerca del notepad").
Grazie seguirò alla lettera il tuo consiglio.... e spero di riuscire in tutto!!!! Ciao e grazie ancora!!!!