Italian community of Lazarus and Free Pascal

Programmazione => Generale => Topic aperto da: mmxngg - Febbraio 16, 2012, 01:42:17 pm

Titolo: Newbie...o quasi
Inserito da: mmxngg - Febbraio 16, 2012, 01:42:17 pm
Ciao a tutti :)

Provo l'avventura Lazarus perchè mi serviva un ambiente gratuito che non utilizzasse le librerie .NET e devo dire che mi piace se non fosse per quel migliaio di bug che ha...diciamo che promette bene ma è ancora immaturo. Cmq...sono registrato anche sul sito internazionale e mi hanno già cazziato visto che segnalavo le anomalie sul forum (non conoscendo l'esistenza del bugreport...vabbè) quindi prima di farmi cazziare di nuovo provo di qua. Trattatemi bene  ;D

Che voi sappiate lazarus o il free pascal utilizzano un sistema particolare per la gestione dell'heap ? Ho la necessità di interfacciarmi ad una dll e condividerne la memoria e se la risposta è si prevedo noie.
Titolo: Re:Newbie...o quasi
Inserito da: xinyiman - Febbraio 16, 2012, 01:48:23 pm
Esattamente cosa devi fare?! Perchè se c'è la possibilità di usare delle funzioni native del Free Pascal ti risparmi la noia di usare una DLL

Comunque benvenuto tra noi!  ;)
Titolo: Re:Newbie...o quasi
Inserito da: mmxngg - Febbraio 16, 2012, 02:27:22 pm
L'idea è riassunta nel post di benvenuto....che naturalmente ho scritto dopo questo  ::)

Direi che è da escludere l'utilizzo del pascal...troppo lento per lo scopo. In pratica devo passare 2 aree di memoria alla DLL, la prima in input (e fin qui nessun problema), la seconda è in output e verrà riempita con un elenco di puntatori allocati dalla DLL. Ora...se non c'è un utilizzo strambo dell'heap non ci son problemi altrimenti al ritorno sicuramente crasha tutto e devo trovare una soluzione alternativa ;D
Titolo: Re:Newbie...o quasi
Inserito da: xinyiman - Febbraio 16, 2012, 02:42:49 pm
Quindi se non ho capito male il tuo problema è ottenere il dato di output attraverso la dll! Giusto?!
Titolo: Re:Newbie...o quasi
Inserito da: Legolas - Febbraio 16, 2012, 03:23:00 pm
Tutto quello che c'è da sapere sulla gestione dell'heap è qui:

http://www.freepascal.org/docs-html/prog/progse33.html

Se la gestione dell'heap di freepascal non si adatta a quello che devi fare, c'è la possibilità di scriversi il proprio memory manager e di farlo utilizzare dal compilatore :)
Titolo: Re:Newbie...o quasi
Inserito da: mmxngg - Febbraio 16, 2012, 03:36:55 pm
Perfetto...cioè...quasi...ha una gestione proprietaria :/

Grazie per l'info, io l'avrei trovata fra 200 anni.
Titolo: Re:Newbie...o quasi
Inserito da: mmxngg - Febbraio 16, 2012, 03:48:14 pm
Quindi se non ho capito male il tuo problema è ottenere il dato di output attraverso la dll! Giusto?!

Ops, non mi ero accorto della tua risposta.

Esatto, ottenere l'output dalla DLL anche se il vero problema non è tanto quello quanto il fatto che la DLL alloca di suo all'interno dell'heap e quindi farà impazzire la gestione del free pascal.