Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    119

    [VB6] Creazione e utilizzo di dll

    Salve,

    ho creato una dll di prova per mostrare il problema..

    Ho creato il file somma.dll (da un modulo di classe)

    codice:
    Function somma(ByVal a As Double, ByVal b As Double, ByVal c As Double)
    somma = a + b + c
    End Function
    e la voglio usare nel mio programma:

    codice:
    Option Explicit
     Private Declare Function somma Lib "C:\blablabla\somma.dll" (ByVal a As Double, _
                        ByVal b As Double, ByVal c As Double) As Double
    
    Private Sub Command1_Click()
    Dim uno, due, tre, sum
    uno = 10
    due = 20
    tre = 30
    sum = somma(uno, due, tre)
    Command1.Caption = sum
    End Sub
    ..ma dice "impossibile trovare punto di ingresso .."

    Dov'è l'errore?

    Grazie..

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    L'errore sta nel fatto che non sai che con VB6 NON si possono creare DLL standard.

    Le Dll create con VB6 espongono le proprie funzionalita' come un componente OLE.

  3. #3
    Originariamente inviato da oregon
    L'errore sta nel fatto che non sai che con VB6 NON si possono creare DLL standard.

    Le Dll create con VB6 espongono le proprie funzionalita' come un componente OLE.
    Pero', leggendo qui, sembrerebbe....
    http://www.visual-basic.it/articoli/agDllByVB.htm
    IceCube_HT (VB6 fan Club)

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    119
    Originariamente inviato da oregon
    L'errore sta nel fatto che non sai che con VB6 NON si possono creare DLL standard.

    Le Dll create con VB6 espongono le proprie funzionalita' come un componente OLE.
    :master: Ora mi sento più ignorante e va bene così..

    Ma un suggerimento in più per risolvere ?

  5. #5
    Be', puoi creare una dll standard in C/C++ o in VB con il metodo suggerito da icecube_HT (anche se è un po' una "sporca"). In alternativa puoi usare la tua dll creata con VB come andrebbe usata, ossia come dll COM, aggiungendola tra i riferimenti del progetto che ne fa uso.
    Amaro C++, il gusto pieno dell'undefined behavior.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    119
    Credevo fosse più semplice...

    Ma Vb.Net e successive versioni hanno ancora questo "difetto" di Vb6 ?
    O è una prerogativa di C++?

  7. #7
    Originariamente inviato da Dexter1983
    Ma Vb.Net e successive versioni hanno ancora questo "difetto" di Vb6 ?
    Non si tratta di un difetto: come direbbe Microsoft in un KB, "This behaviour is by design", VB è basato su COM e pertanto genera solo dll COM. Neanche VB.NET (e in generale tutti i linguaggi .NET) può generare dll standard e nemmeno dll native, infatti i linguaggi .NET vengono compilati in MSIL, un linguaggio intermedio JIT-compilato al momento dell'esecuzione.
    Amaro C++, il gusto pieno dell'undefined behavior.

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    119
    Grazie per la delucidazione..

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da icecube_HT
    Pero', leggendo qui, sembrerebbe....
    http://www.visual-basic.it/articoli/agDllByVB.htm
    Ti assicuro che conosco quell'articolo (e il metodo ) ma non e' affidabile per tanti motivi, oltre una certa "complessita'" di utilizzo della DLL ... va benissimo dal lato puramente "didattico" e per implementare "semplici" DLL che gestiscono tipi semplici di dati (gia' con le stringhe cominciano ad esserci problemi).

    E inoltre, come fatto intendere dall'autore, e' un "trucco" che non va applicato come soluzione "supportata" per applicazioni in produzione.

    (Se vuoi ulteriori chiarimenti ne parliamo in privato)

  10. #10
    Originariamente inviato da oregon
    Ti assicuro che conosco quell'articolo (e il metodo ) ma non e' affidabile per tanti motivi, oltre una certa "complessita'" di utilizzo della DLL ... va benissimo dal lato puramente "didattico" e per implementare "semplici" DLL che gestiscono tipi semplici di dati (gia' con le stringhe cominciano ad esserci problemi).

    E inoltre, come fatto intendere dall'autore, e' un "trucco" che non va applicato come soluzione "supportata" per applicazioni in produzione.

    (Se vuoi ulteriori chiarimenti ne parliamo in privato)
    Ti ringrazio, pensavo anch'io che fosse un po' "sporca" e non ho ancora provato a sperimentarla... ma se mi dici che gia' con le stringhe da' dei problemi...
    Peccato...
    IceCube_HT (VB6 fan Club)

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.