Pagina 1 di 5 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 47
  1. #1

    Comunicazione tra c++ e vb.net

    ciao a tutti,

    io sto creando un bot per una video chat e ho il codice sorgente in c++ gia pronto e funzionante ma correi mettere in comunicazione il codice c++ con vb.net immodo di facilitare il tutto.

    Io ho pensato di mettere in campo una comunicazione socket tra c++ e vb e ce lo fatta solo che in vb lo fatto solo con aplicazioni console e qui viene il brutto non riesco a trasformarla in windows aplication.

    1) come posso usare a lato vb creare un server windows aplication che non crasha alla prima comunicazione corretta che fa visto che funziona.

    2) ce un modo piu facile di far parlare la dll c++ con windows aplication senza il soket


    grazie in anticipo

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da darkrurik
    io sto creando un bot per una video chat e ho il codice sorgente in c++ gia pronto e funzionante ma correi mettere in comunicazione il codice c++ con vb.net immodo di facilitare il tutto.
    Perchè ? Cosa c'entra il VB.NET ? Se il codice è C++, a cosa ti serve il VB.NET ?

    Spiegati meglio ...

    Io ho pensato di mettere in campo una comunicazione socket tra c++ e vb e ce lo fatta solo che in vb lo fatto solo con aplicazioni console e qui viene il brutto non riesco a trasformarla in windows aplication.
    Ovvero, qual è il problema ?

    1) come posso usare a lato vb creare un server windows aplication che non crasha alla prima comunicazione corretta che fa visto che funziona.
    Ne hai fatto uno che "crasha"? Spiega il senso di questa frase ...

    2) ce un modo piu facile di far parlare la dll c++ con windows aplication senza il soket
    C'è sicuramente il modo (ad esempio tramite scambio di messaggi oppure, dato che è una DLL, direttamente, dichiarando le funzioni come se fossero API), ma non è che con i socket sia difficile ... e comunque bisogna conoscere il codice della DLL e cosa fa (quali dati scambia, di che tipo, quando li scambia ...) ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    1) conosco il c++ e il vb.net e mi trovo a mio agio col secondo e quindi visto che non posso fare a meno della libreria in c++ vorrei appunto trovare il modo di comunicare tra i 2 sistemi.

    2) il problema e che l'appilicazione c++ e vb.net console funziona bene ma io volevo aposto di usare la console usare una windows aplication cosi da mettere vari bottoni e textbox pero non ho trovato esempi validi di come creare un server socket su windows aplication quindi che rimanga sempre in ascolto e quando riceve i messaggi non si disconetta.

    3) "crasha"? ovvero che il processo si chiuda dasolo in un colpo.

    4) ok sai consigliarmi esempi pratici sulla comunicazione dll tra c++ e vb.net ho trovato qualcosa ma non funziona nulla potresto indicarmi qualcosa di utile.

    Grazie in anticipo

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Quindi la prima soluzione che vedo è quella di scrivere in .NET il codice della libreria C++. Con qualche adattamento avrai un solo codice in un solo linguaggio senza necessità di far comunicare nulla.

    In realtà, non dovrebbe neanche essere necessaria una "comunicazione" tra i due programmi. Dovresti poter usare le funzioni della DLL all'interndo del programma .NET come se fossero delle API (te lo avevo gia' suggerito).

    La strada della comunicazione via socket la vedo poco utile...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    ok le api pero ho guardato in giro ho trovato molti esempi di costruzione dll di comunicazione pero niente di chiaro cmq grazie cerco ancora se ai dei degli esempi in c++ e vb.net per dll ti prego di mettere il link.

    grazie ancora

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da darkrurik
    ok le api pero ho guardato in giro ...
    Non mi sono spiegato ... puoi usare lo stesso tipo di dichiarazione delle API per dichiarare le funzioni che hai all'interno della DLL e usarle direttamente nel tuo programma VB.NET (naturalmente disponi dei sorgenti della DLL C++, giusto?)
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    si dispongo dei sorgenti ma ti faccio una domanda prima di usare la libreria e complicare le cose ho provato queto codice che pero da errore mi dici dove sbaglio da questo codice modifichero le librerie e faro il tutto ecco qua:

    Lato c++:

    /* mydll.dll */

    #include <windows.h>

    /* ENTRY-POINT */
    BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved )
    {
    return TRUE;
    }

    /* Funzione Somma */
    extern "C" __declspec(dllexport) int Somma(int a, int b)
    {
    return a+b;
    }
    si compila e crea la dll che leggo in vb,net in sto modo:

    '
    Declare Function Somma Lib "Z:\Documenti\Documents\Visual Studio 2008\Projects\Dll\DDO_Impiccato\Debug\DDO_Impiccat o.dll" (ByVal a As Long, ByVal b As Long) As Long
    '
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    '
    TextBox1.Text = Somma(1, 1)
    '
    End Sub
    '
    se eseguo normalmente mi fa vedere la testbox vuota se invece clicco sul eseguibile mi dice



    perche fa questo

  8. #8
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    non dovrebbe essere un problema ma la funzione in c++ ritorna un int mentre la funzione dichiarata in vb.net un long

    in vb.net un int di c++ è uno short

  9. #9
    non e cambiato nulla sempre lo stesso errore

    codice c++
    /* mydll.dll */

    #include <windows.h>

    /* ENTRY-POINT */
    BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved )
    {
    return TRUE;
    }

    /* Funzione Somma */
    extern "C" __declspec(dllexport) short Somma(short a, short b)
    {
    return a+b;
    }
    Codice vb.net

    '
    Declare Function Somma Lib "Z:\Documenti\Documents\Visual Studio 2008\Projects\Dll\DDO_Impiccato\Debug\DDO_Impiccat o.dll" (ByVal a As Integer, ByVal b As Integer) As Integer
    '
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    '
    TextBox1.Text = Somma(1, 1)
    '
    End Sub
    '
    Errore:


  10. #10
    puo essere che lerrore dipenda dal fatto che sono con windows 7 a 64bit

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.