Ho scritto una semplicissima DLL da usare in VB6...
Lasciamo stare il fatto che VisualBasic ha già funzioni per scaricare files,volevo giusto fare una prova e dunque ho creato una dichiarazione del genere...codice:#define DOWNLOAD_OK 0 #define NO_DISK_SPACE 2 #define ERROR_CONNECTION 1 BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { return TRUE; } extern "C" __declspec(dllexport) unsigned int __stdcall DettDownload(LPCSTR Url,LPCSTR SavePath) { HRESULT t = URLDownloadToFile(NULL,Url,SavePath,0,NULL); if (t == S_OK) { return DOWNLOAD_OK; //Download eseguito } else { if (t == INET_E_CONNECTION_TIMEOUT) return ERROR_CONNECTION; //Impossibile connettersi else return NO_DISK_SPACE; //Forse non c'è spazio sul disco fisso } }
Ora volevo sapere, un char* in C equivale a una string di Vb6?codice:Public Declare Function DettDownload Lib "Ceil.dll" (ByRef Url As String, ByRef SavePath As String) As Integer
Ad ogni modo quando uso la funzione,questa mi restituisce sempre e solo 2 (ossia NODISKSPACE), mentre se incollo la funzione in un semplice programma C e la uso, tutto è ok...
Credo di aver sbagliato nella dichiarazione della funzione in VisualBasic, ma non capisco ancora dove...
Grazie!

Rispondi quotando