Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,563

    C - Dubbi nelle librerie

    Guardando il topic precedente sulla LoadLibrary mi sono spuntati alcuni dubbi sulle librerie esterne in generale.

    Allora

    [list=1][*] Per prendere GetProcAddress serve necessariamente sapere la firma della funzione. Se ho una DLL presa da chissà quale sito, come posso vedere i servizi che offre? Non volendo usare software che fanno ciò (potete segnalarmi comunque qualche nome?), come posso "enumerare" le funzioni presenti in una DLL?[*] Il linking statico è sicuramente piu' veloce. Ma come si fa esattamente? faccio la mia DLL, creo un file export con le funzioni che voglio esportare, e poi faccio un file include su quelle funzioni esportate?[*] Se faccio un linking statico, posso comunque dinamicamente prendere funzioni non esportate nel file di export?[*] Visual Basic 6 importa solo da dll in modo statico? Ma non c'è il file .lib, però. E' implicito?[*] Se volessi importare una classe da una dll, si fa tramite LoadResource? Oppure (mio pensiero) si implementa la classe in un file .h distribuito e le funzioni vengono valorizzate tramite GetProcAddress?[/list=1]

    Qualche domanda riguardo il COM

    Come si implementa un'interfaccia COM?
    Ho letto in giro da varie parti, ma non si mettono d'accordo se ogni interfaccia deve essere ereditata da IDisposable o da IUnknown.
    Il reference counting come viene fatto? Una semplice variabile?
    Avete un esempio funzionante, anche se minimale? Anche con il GUID e tutto il resto.

    Grazie, e per qualsiasi chiarimento (sono sempre poco chiaro)...
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Troppe domande per un solo post ... per rispondere solamente a quelle di COM ci vuole un libro ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,563
    Me ne rendo conto.
    Almeno i fondamenti?Proprio l'essenziale?
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Per vedere il contenuto di una DLL, puoi usare il tool

    Dependency Walker

    di Microsoft (che trovi in rete).

    Con VB6 non puoi creare DLL standard ma ActiveX, che in pratica sono componenti COM.

    Per COM, anche per le basi, come ti dicevo, ci vuole un libro ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Me ne rendo conto.
    Almeno i fondamenti?Proprio l'essenziale?
    Ma con quelle informazioni ci faresti poco o nulla, considera che su qualsiasi libro dedicato a COM per rispondere a ciascuna domanda gli autori hanno previsto almeno un capitolo. Con una risposta "da forum" non avresti comunque le informazioni necessarie per poter fare alcunché con COM. Se ti interessa l'argomento probabilmente dovresti acquistare un buon libro...
    "Se riesci a passare un pomeriggio assolutamente inutile in modo assolutamente inutile, hai imparato a vivere."

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Per elencare le funzioni esportate puoi usare anche il tool

    dumpbin

    presente in Visual Studio.

    Ad esempio, per la DLL del runtime di VB6 lo chiamerai con

    dumpbin /EXPORTS c:\windows\system32\msvbvm60.dll
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,563
    Ok togliamo il COM da mezzo.
    Possiamo rispondere alle altre 5 domande?
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da XWolverineX
    Ok togliamo il COM da mezzo.
    Possiamo rispondere alle altre 5 domande?
    A qualcuna ti ho gia' risposto ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,563
    Non sapevo che le librerie per Visual Basic fossero ActiveX (la mia ignoranza non ha limiti).

    Io ne ho fatte alcune che ancora uso attualmente e non ho seguito alcun processo particolare nel costruirle.
    Ma non mi tornano ancora una marea di cose

    Come si fa una DLL "ActiveX?" Le ho fatte implicitamente per Visual Basic senza accorgermene?
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Con il VB6 si possono creare SOLAMENTE DLL ActiveX ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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.