|
|||||||
|
|
|
![]() |
|
|
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: 20:03.



















