Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Setup Stream 2 e DLL

  1. #1

    Setup Stream 2 e DLL

    Spero che qualcuno di voi abbia utilizzato questo software per creare pacchetti d'installazione e che mi possa dare una mano a risolvere un paio di problemi. Il software è davvero carino ed è scaricabile dal seguente URL http://www.virtualzone.de/

    Ho scelto lui perché permette la verifica di un seriale per procedere con l'installazione. Per fare ciò necessita di una dll che deve avere una funzione booleana chiamata CheckSerial a cui viene passata la stringa con il seriale ed un intero con la lunghezza del seriale scritto dall'utente. Questa funzione analizza il seriale inserito e restituisce TRUE se è andato tutto a buon fine o FALSE se no. Questo è il mio prima problema, sicuramente ho sbagliato qualcosa perché purtroppo in fase di prova mi dice sempre che il valore immesso è errato. Il mio algoritmo di verifica funziona perché lo utilizzo già in altri contesti e restituisce TRUE o FALSE a seconda dei casi. Probabilmente è la mia DLL ad essere strutturata male: in una prima prova ho creato un nuovo progetto come DLL ed ho inserito una funzione pubblica chiamata CheckSerial come specificato nella guida del programma in questione. Il problema è che questa funzione è specificata in un modulo di Classe, quindi è probabile che lui non riesca a farla funzionare perché prima dovrebbe istanziare la Classe. Allora ho provato ad inserire un semplice modulo con una funzione CheckSerial che istanzia la classe ed esegue la funzione di verifica del seriale. Forse sbaglio qualche impostazione nella compilazione della DLL (io ho lasciato tutti i parametri di default), ma anche in questo caso quando vado a verificare il seriale mi dice sempre che è errato quindi o non trova la funzione nella DLL (magari a seguito di un mio errore di compilazione) oppure non so perché ma mi restitutisce sempre FALSE nonostante se poi io provi la DLL da un normale progetto standard EXE funziona tutto alla perfezione... Sigh, qualcuno mi dia una mano altrimenti non riesco più ad andare avanti!

    Qui c'è il codice del modulo di classe della DLL chiamato serialChecker

    codice:
    Public Function CheckIt(Serial As String, Size As Integer) As Boolean
        'algoritmo di controllo, restituisce TRUE o FALSE a seconda dei casi
    End Function
    e qui quello della funzione nel modulo della DLL

    codice:
    Public Function CheckSerial(Serial As String, Size As Integer) As Boolean
        Dim checker As New serialChecker
        
        CheckSerial = checker.CheckIt(Serial, Size)
    End Function
    Ah, dimenticavo, io utilizzo VB 6

    -------------------------------------------------------------------------

    Inoltre, un altro piccolo problema per cui necessito un lume... Quando devo inserire i file necessari al progetto per la creazione di un pacchetto devo inserirli io manualmente (a differenza del wizard di Visual Basic 6 che li trova già quasi tutti automaticamente): come faccio a conoscere tutti i file di cui necessita? Esiste un modo più semplice che non eseguire il wizard di Visual Basic e copiare a mano la lista di tutti i file e relativi percorsi?[CODE]

  2. #2
    Scusate se UPPO ma avrei davvero bisogno di un lume...

  3. #3
    Veramente nessuno utilizza le DLL? E davvero nessuno ha mai visto questo software? :master:

  4. #4

  5. #5
    Visto che a quanto pare nessuno ha mai utilizzato questo programma o comunque nessuno sembra volermi dare dei chiarimenti, almeno spero che qualcuno mi possa dare un paio di dritte a riguardo delle DLL.

    Io ho provato a creare la mia bella DLL, ho una classe con una funzione pubblica, compilo la DLL e quando la vado a mettere nelle referenze da un altro progetto standard EXE riesco ad utilizzarla tranquillamente creando un'istanza della classe ed utilizzando il metodo da me creato. Tutto funziona perfettamente.

    Se io voglio invece che questa funzione sia eseguita correttamente da un programma esterno, scritto in non so quale linguaggio, che procedimento devo usare affinché esso possa sfruttare la funzione? Io so solamente che esso necessita di una funzione con un nome dato e che esso passa alla funzione due parametri. Non so se crea un'istanza della classe o cosa, so solo che cerca la funzione. A questo punto cosa devo fare? Devo creare un modulo nel progetto ActiveX DLL con questa funzione? Io ci ho provato, ma sembra che non la veda, poiché mi ritorna sempre un valore falso, quando invece la funzione dovrebbe ritornare vero. I casi sono due: o davvero il risultato ritornato è falso (ma questo non si spiega, dato che se testo io la DLL da un normalissimo progetto VB essa ritorna i valori esatti), oppure semplicemente non trova la funzione. Anche perché provando ad inserire un modulo con una funzione pubblica, quando io vado ad inserire la mia DLL nelle referenze di un progetto standard EXE posso solo istanziare la classe, non riesco ad avere accesso alla funzione del mio modulo... E questo mi lascia perplesso, forse sbaglio qualcosa io ma non capisco cosa e come fare per risolvere il problema...

    Un aiutino mi sarebbe MOOOOLTO utile.

    Grazie.

  6. #6
    le dll scritte in vb sono solo edesclusivamente activex perciò qualsiaaltro linguaggio le deve usare come tali quindi stanziando un oggetto e usandone metodi e proprietà
    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

  7. #7
    Capisco, quindi dici che quella DLL che serve con quel programma dovrò scriverla con qualche altro linguaggio tipo Delphi o C?

    E poi ancora una cosina, riguardo al fatto che non vedo le funzioni scritte nel modulo? E' normale? Quindi a cosa servono i moduli nei progetti ActiveX DLL? Solo per essere richiamati da routine scritte nelle classi?

    Grazie

  8. #8
    Originariamente inviato da thunderlips
    Capisco, quindi dici che quella DLL che serve con quel programma dovrò scriverla con qualche altro linguaggio tipo Delphi o C?

    E poi ancora una cosina, riguardo al fatto che non vedo le funzioni scritte nel modulo? E' normale? Quindi a cosa servono i moduli nei progetti ActiveX DLL? Solo per essere richiamati da routine scritte nelle classi?

    Grazie
    no voglio dire che un codice c++ per esempio la usa semplicemente così

    variabile = oggetto.metodo(parametri)
    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

  9. #9
    Mmmm, mi confondo sempre più... Ma io non so in che linguaggio è scritto quel programma, so solo che mi dice che devo selezionare un file .dll cche deve contenere una funzione chiamata CheckSerial. Esso passerà a questa funzione un parametro di tipo stringa ed un parametro di tipo intero. La funzione dovrà restituire un valore True o False. Non so cosa esso faccia o che cosa esso cerchi. Io so solo che ho creato una classe con un metodo chiamato CheckSerial (puoi vedere il codice più sù) e ho anche provato ad inserire semplicemente un modulo con questa funzione. In nessuno dei casi funziona una volta che testo dal programma di installazione...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.