|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Feb 2002
Messaggi: 906
|
Misteri della programmazione??
ho fatto una dll activex in vb6 che è richiamata da codice c++ (in pratica il contrario di quello che si trova su google [ho i miei motivi per fare questo]).
Ho fatto una applicazione console win32 con vc6 questo è il codice: Codice:
#include <stdio.h> #import "progetto1.dll" no_namespace void main() { BSTR bstrDesc; try { CoInitialize(NULL); long st = 2; long ts = 3; long st1; _Class1Ptr ptr; ptr.CreateInstance(__uuidof(Class1)); st1 = ptr->MyVBFunction(&st); st1 = ptr->AddTest1(&st, &ts); MessageBoxW(NULL, L"OKAY", L"Messaggio",MB_OK); } catch(_com_error &e) { bstrDesc = e.Description(); MessageBoxW(NULL, L"ERRORE", L"Messaggio",MB_OK); } CoUninitialize(); } Il problema è il seguente: ho fatto un'altra applicazione console win32 ma con Visual Studio NET 2003 ho copiato lo stesso codice e messo nella dir la dll vb6 la compilazione e il link è uguale ma all'avvio alla prima chiamata della funzione il flusso và nel try, ho tolto il try è ho un errore nel file comip.h se lancio l'exe su win98 dove ho il tool vc6 funziona perfettamente. se porto l'exe oppure compilo come detto sopra su xp tutto passa nel try{...} ... misteri della programmazione?? se volete potete provare il tutto quì potete scaricare la dll e la lib: http://www.twork.it/work/Dllvb6.zip |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:00.