Dll per condivisione memoria

di il
4 risposte

Dll per condivisione memoria

Scusate se di C non so nulla.
Sarei contento morto se riuscissi a trovare o creare una dll che mi permetta la condivisione di memoria tra processi di autohotkey
Ho letto questo articolo http://www.spadamar.com/2008/09/cc-come-condividere-dati-fra-diversi-processi-con-una-dll/

ma non riesco a far funzionare le dll.
Sarei ancor piu contento se avessi una dll per scambiare una stringa invece di un intero.

tra i miei esperimenti di creazione di una dll con codeblock
#include "main.h"
//int somma(int i1, int i2) {return i1 + i2;}


int somma(int primo,int secondo);
{
   int risultato;
   risultato = primo + secondo;
   return (risultato);
}
in autohotkey
a := 4
b := 5
risultato := DllCall("nomedll\somma",Int, a, int, b)
msgbox %  risultato " error level " errorlevel
e mi da esattamente 9

non riesco fare altrettanto con la dll per la condivisione della memoria
poi ci sono 2 versioni diverse una per visual c++
e una per Bloodshed DevC++
non mi funzione

avrei fatto la chiamata cosi per la dll di Bloodshed DevC++

processo che spedisce
var := 15
Result := DllCall("shareint\SetNumber", Int, var)
msgbox %  Result
mi da risultato 1

processo che riceve
Result := DllCall("shareint\GetNumber")
msgbox risultato2 %Result%
mi da risultato 0

Mi sono fermato qui, me se fosse possibile avere il codice per scambiare una stringa, ne sarei ben felice

Grazie a tutti
Ciao

4 Risposte

  • Re: Dll per condivisione memoria

    o
  • Re: Dll per condivisione memoria

    Grazie della risposta, ci sto sbattendo un po la testa, ho ripreso la guida su come avevo fatto la DLL che usavo su Autohotkey.

    per fare la mia dll funzioanante in autohotkey scelgo sul tipo progetto " shared library ".

    Il codice del secondo link potrei copiarlo su main.ccp e poi creare l'analogo
    main.h dove mi sembra vengano indicate le variabili delle funzioni. Purtroppo li non saprei cosa scrivere.

    poi queste righe possono crearmi problemi?
    #include <windows.h>
    #include <memory.h>



    Mi spiace ma non sapendo il c sto barcollando nel buio, ma la cosa mi interessa parecchio. Ora sono costretto ad usare la clipboard per scambiare i dati in memoria, con tutti i problemi conseguenti.
  • Re: Dll per condivisione memoria

    Purtroppo, se non conosci il C, come fai a realizzare un programma, tra l'altro neanche semplice?
  • Re: Dll per condivisione memoria

    Per me è impossibile creare la dll in c, o la trovo gia fatta o trovo il codice da compilarmi. Non ho ben capito se il secondo link
    puo essermi utile.
    Anche sulle dll che posso utilizzare su autohotkey ho un po di confusione, su codeblocks tra le varie scelte ho le dinamic link library (da cui non ho fatto nulla di funzionante) e le shared library, da cui ho ottenuto delle dll con cui posso interagire. Ci sono piu tipologie di DLL?


    Edit
    credo d'aver trovato la soluzione, ora devo capire come usare tale dll. Autoit non è identico a autohotkey.
    Grazie a tutti per la pazienza
    https://www.autoitscript.com/forum/topic/52375-shared-memory-via-dll/
Devi accedere o registrarti per scrivere nel forum
4 risposte