Pagina 1 di 6 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 57
  1. #1

    [VB6]Richiamare una DLL in un .EXE

    Buooooooooooongioooooooornoooooooooooo! :gren:


    Dunque, mi stavo interessanto alle DLL. E subito mi sono accorta di una cosa.
    Io creo una dll mia, con le funzioni che mi pare e la salvo come dll (...ovvio).
    A questo punto apro un nuovo progetto .exe di vb nel quale voglio usare questa dll appena creata.

    Credo di aver capito che ci sono diverse possibilità per richiamare una dll.

    Io vorrei sapere qual è la sintassi corretta per richiamarla con una DECLARE. :master: Io non sono riuscita a capirlo...


    PS: ho già consultato l'MSDN, ma se inserisco la sintassi che trovo lì sul progetto non trova la dll. bhò:



    Grazie ragazzi, come sempre...




    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  2. #2
    Utente di HTML.it L'avatar di vonkranz
    Registrato dal
    Sep 2001
    Messaggi
    1,387
    codice:
    Public Declare Sub [nome routine] Lib "[nome dll]" (parametro1,parametro2,....)
    2 cose pero':

    1- se la DLL l'hai fatta in VB deve necessariamente essere una DLL ActiveX (altrimenti non ti trova l'entry point nel prg che la usa)

    2- i parametri della funzione devono (ovviamente) essere dello stesso tipo di quelli usati nella dll.
    ...and I miss you...like the deserts miss the rain...

  3. #3
    ok, von, questo è chiaro.

    ma per far funzionare queste chiamate alla dll devo per forza inserirla tra i riferimenti del progetto? :master:






    von, come sempre fai il mio angelo custode...

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  4. #4
    Utente di HTML.it L'avatar di vonkranz
    Registrato dal
    Sep 2001
    Messaggi
    1,387
    [CUSTODE MODE]
    NO, basta che la dll sia registrata nel registro di win.
    [/CUSTODE MODE]
    ...and I miss you...like the deserts miss the rain...

  5. #5
    Originariamente inviato da vonkranz
    [CUSTODE MODE]
    NO, basta che la dll sia registrata nel registro di win.
    [/CUSTODE MODE]
    :quote: carino l'angioletto!!!


    e che vuol dire??? :master:...non basta metterla nella cartella system32 di win?





    mi sto proprio rendendo conto che la mia ignoranza raggiunge livelli preoccupanti!!!

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  6. #6
    allora, io la dll l'ho registrata così:
    Start -> Esegui --> "regsvr32 [path & nome completo dll]" --> [invio]

    ed è stato fatto.

    Ora però quando vado a richiamare dal progetto .exe una funzione sulla mia dll esterna mi dice che non trova il punto di ingresso alla
    dll...

    cmq, ora mi spiego meglio: ho creato una banalissima dll di prova che
    contiente le 4 operazioni matematiche di base; ecco il codice della
    dll "dllOperazioni.dll":
    codice:
    Private Function Addizione(num1 As Integer, num2 As Integer)_
         As Integer
    
            Addizione = num1 + num2
    
    End Function
    
    Private Function Sottrazione(num1 As Integer, num2 As Integer)_
         As Integer
    
            Sottrazione = num1 - num2
    
    End Function
    
    Private Function Moltiplicazione(num1 As Integer, num2 As Integer)_
         As Integer
    
            Moltiplicazione = num1 * num2
    
    End Function
    
    Private Function Divisione(num1 As Integer, num2 As Integer)_
         As Integer
    
            Divisione = num1 / num2
    
    End Function
    il prg .exe è composto da un modulo:
    codice:
    Public Declare Function Addizione Lib "dllOperazioni" (ByVal A As_
        Integer, ByVal B As Integer)
    Public Declare Function Sottrazione Lib "dllOperazioni" (ByVal A As_
        Integer, ByVal B As Integer)
    Public Declare Function Moltiplicazione Lib "dllOperazioni" (ByVal A_
        As Integer, ByVal B As Integer)
    Public Declare Function Divisione Lib "dllOperazioni" (ByVal A As_
        Integer, ByVal B As Integer)
    e poi ho un form con 4 bottoni, 1 x ogni operazione da eseguire:
    codice:
    Private Sub cmdAddizione_Click()
            txtAddizione = Addizione(5, 5)
    End Sub
    
    Private Sub cmdDivisione_Click()
            txtAddizione = Divisione(10, 5)
    End Sub
    
    Private Sub cmdMoltiplicazione_Click()
            txtAddizione = Moltiplicazione(5, 5)
    End Sub
    
    Private Sub cmdSottrazione_Click()
            txtAddizione = Sottrazione(10, 5)
    End Sub
    come clicco su un bottone qualunque mi dice:
    codice:
    "Errore di run-time 453:
    Impossibile trovare il punto di ingresso della DLL Addizione in
    dllOperazioni."
    dove sbaglio??? :master:

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  7. #7
    Utente di HTML.it L'avatar di vonkranz
    Registrato dal
    Sep 2001
    Messaggi
    1,387
    Rileggi il punto 1 del mio primo rpl.

    La dll che utilizzi, o e' stata fatta in C (MFC mi pare ma non ne sono sicuro)...oppure se vuoi farla tu in VB, la devi fare partendo da un "Nuovo progetto -> DLL ActiveX "

    ...altrimenti, come ti ho detto, non trova il punto di ingresso.
    ...and I miss you...like the deserts miss the rain...

  8. #8
    Originariamente inviato da vonkranz
    Rileggi il punto 1 del mio primo rpl.

    La dll che utilizzi, o e' stata fatta in C (MFC mi pare ma non ne sono sicuro)...oppure se vuoi farla tu in VB, la devi fare partendo da un "Nuovo progetto -> DLL ActiveX "

    ...altrimenti, come ti ho detto, non trova il punto di ingresso.
    von, io uso solo vb, e lo sai, come posso farla in C???
    cmq, è creata in vb facendo Nuovo --> DllActiveX
    e non funziona. :master:

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  9. #9
    Utente di HTML.it L'avatar di vonkranz
    Registrato dal
    Sep 2001
    Messaggi
    1,387
    Originariamente inviato da ladyBlu

    von, io uso solo vb, e lo sai, come posso farla in C???
    cmq, è creata in vb facendo Nuovo --> DllActiveX
    e non funziona. :master:

    ...opsss...

    ..allora prova a metterla ANCHE tra i riferimenti.
    E vedi cosa succede.
    ...and I miss you...like the deserts miss the rain...

  10. #10
    mi da lo stesso errore...:master:
    che rottura... non riesco proprio a capire...


    forse non l'ho registrata correttamente?

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.