Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Chiamare da una DLL C++ una DLL VBasic

    Qualcuno può darmi dritte su come richiamare da C il Basic? In genere avviene il contrario, ma la mia esigenza è di chiamare da una DLL scritta in VC++6.0, una DLL in VB6.0.

    Le tipologie di dati da passare fra subroutine sono le basilari: int, float, double e array numerici ad una dimensione.

    Grazie per l'aiuto che riuscirete a fornirmi



  2. #2
    Normalmente le dll scritte in VB6 sono componenti COM, per cui devi usare COM per interfacciarti con essa; se non ricordo male VB6 assieme alla dll genera un file TLB, da cui con qualche giro si dovrebbe riuscire a generare il file IDL e gli header con i vari stub da usare da lato C++ (tramite MIDL).

    (occhio comunque che non ho praticamente mai usato COM da C++, per cui potrei aver detto delle castronerie, aspetta qualcuno che ne sa di più sull'argomento )

    ---edit---

    Ah guarda, c'è addirittura un articolo KB sull'argomento:
    http://support.microsoft.com/kb/194873/en
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    No, una DLL VB6 è un componente COM e non può essere richiamata come una DLL normale.

    Utilizzare un componente COM da C non è facilissimo e ti consiglierei di rivedere l'architettura del tuo progetto rifacendo il codice della DLL in C. In ogni caso, utilizzare un componente VB6 non è consigliabile su sistemi moderni (non si sa bene in futuro che compatibilità ci sarà) e dovrai sempre portare il runtime di VB6 con te...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  4. #4
    Grazie ad entrambi per le info e la rapidà di risposta,
    vedo cosa riesco a cavare....



  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Se hai il codice sorgente VB6 ti consiglio vivamente di trasformarlo in C ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Originariamente inviato da oregon
    Se hai il codice sorgente VB6 ti consiglio vivamente di trasformarlo in C ...
    Decisamente... COM è sempre e comunque una brutta gatta da pelare, e VB6 è ormai obsoleto da un decennio, se riesci ad evitare è meglio.
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #7
    Sottoporrò le vs considerazioni al mio capo progetto.

    Non mi entusiasma impegnare tempo e risorse per un qualcosa che non è garantito nella sua funzionalità...

    Ok, nel caso mi rifarò presente nel forum.... Grazie ancora.....




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.