Autore Topic: Si puo' creare l'equivalente di una DLL in Gambas?  (Letto 1641 volte)

Offline ZioCrick

  • Gamberetto
  • *
  • Post: 31
    • Mostra profilo
Si puo' creare l'equivalente di una DLL in Gambas?
« il: 18 Marzo 2013, 11:35:02 »
Cari amici (se me lo permettete ... considero amici tutti coloro che si occupano di software libero  ;)) ..
nell'ottica di abbandonare definitivamente Windows e VB avrei bisogno di fare il porting di almeno una piccola parte di un grosso applicativo che ho sviluppato in VB6.
Dopo aver fatto alcune prove con le strutture di base di Gambas 3.4 ora avrei bisogno di creare l'equivalente di una DLL che avevo fatto in VB6.
Ho cercato un po sul web ma ho trovato molti che richiamano DLL scritte in C o C++.
In Gambas si puo' fare qualcosa di simile e se SI, come si parte?

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.311
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Si puo' creare l'equivalente di una DLL in Gambas?
« Risposta #1 il: 18 Marzo 2013, 12:13:16 »
Ho cercato un po sul web ma ho trovato molti che richiamano DLL scritte in C o C++.
In Gambas si puo' fare qualcosa di simile e se SI, come si parte?

Tu vuoi creare una Libreria esterna in C o in Gambas ?
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline ZioCrick

  • Gamberetto
  • *
  • Post: 31
    • Mostra profilo
Re: Si puo' creare l'equivalente di una DLL in Gambas?
« Risposta #2 il: 18 Marzo 2013, 12:14:08 »
In Gambas.

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Si puo' creare l'equivalente di una DLL in Gambas?
« Risposta #3 il: 18 Marzo 2013, 12:33:30 »
La DLL è un concetto puramente Windows, per cui già siamo fuori ambito.
In Linux esistono le librerie, come anche esistono in Windows, e derivano dalla programmazione C/C++.

Ad ogni modo, Gambas fà parte dei linguaggi interpretati, e quindi non hanno il concetto di libreria dinamica.
Con Gambas puoi collegare funzionalità contenute in librerie esterne (bada bene, librerie, quelle in genere con estensione .so ecc...), ma non puoi creare librerie come si può invece fare con il C.
Il concetto di libreria è solo inteso come codice riutilizzabile, e basta...

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.311
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Si puo' creare l'equivalente di una DLL in Gambas?
« Risposta #4 il: 18 Marzo 2013, 13:01:34 »
...fermo ben restando quanto già detto da md9327 circa le Librerie in Linux e più specificamente in Gambas, un modo per poter utilizzare delle funzionalità esterne scritte con codice Gambas è quello di creare un applicativo Gambas da far dialogare con il programma principale Gambas attraverso il passaggio di dati dall'uno all'altro...



              Si... può... fareee !
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline ZioCrick

  • Gamberetto
  • *
  • Post: 31
    • Mostra profilo
Re: Si puo' creare l'equivalente di una DLL in Gambas?
« Risposta #5 il: 18 Marzo 2013, 13:11:47 »
Con Gambas puoi collegare funzionalità contenute in librerie esterne (bada bene, librerie, quelle in genere con estensione .so ecc...), ma non puoi creare librerie come si può invece fare con il C.
Acc! Questa risposta sommata a quella sull'ereditarieta' delle Form:
http://www.gambas-it.org/smf/index.php?topic=2591.new;topicseen#new
mi fa desumere che forse Gambas non e' il linguaggio che cercavo.
Per alcuni aspetti mi stava piacendo ....   :)
Mi sa che devo fermarmi un attimo a riflettere e cercare se, ad oggi,  esistono alternative in grado di soddisfare i 4 punti illustrati dall'utente rik-rs in questa discussione
http://forum.ubuntu-it.org/viewtopic.php?f=67&t=394131&start=20
che ho trovato poco fa.

Offline ZioCrick

  • Gamberetto
  • *
  • Post: 31
    • Mostra profilo
Re: Si puo' creare l'equivalente di una DLL in Gambas?
« Risposta #6 il: 18 Marzo 2013, 13:14:33 »
un modo per poter utilizzare delle funzionalità esterne scritte con codice Gambas è quello di creare un applicativo Gambas da far dialogare con il programma principale Gambas attraverso il passaggio di dati dall'uno all'altro...
Questo lo facevo anch'io in VB6 ma per esigenze specifiche che nulla hanno a che fare con il concetto di codice riutilizzabile dinamicamente da altri programmi (quindi senza dover far partire 2 o piu' programmi contemporaneamente).

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.311
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Si puo' creare l'equivalente di una DLL in Gambas?
« Risposta #7 il: 18 Marzo 2013, 13:21:26 »
ma per esigenze specifiche che nulla hanno a che fare con il concetto di codice riutilizzabile dinamicamente da altri programmi (quindi senza dover far partire 2 o piu' programmi contemporaneamente).

Sì, è così come dici: solo per esigenze molto particolari.
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.311
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Si puo' creare l'equivalente di una DLL in Gambas?
« Risposta #8 il: 25 Aprile 2013, 20:38:07 »
Vorrei ritornare su questo interessante argomento, e mi domando se una risposta alla domanda dell'amico ZioCrick possa giungere da questo messaggio precedentemente inserito da milio:

http://www.gambas-it.org/smf/index.php?topic=1077.0
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline ZioCrick

  • Gamberetto
  • *
  • Post: 31
    • Mostra profilo
Re: Si puo' creare l'equivalente di una DLL in Gambas?
« Risposta #9 il: 25 Aprile 2013, 21:01:33 »
Grazie vuott.
In realta' la risposta di md9327 era molto chiara ed esauriente.
Per ora mi sono fermato con Gambas perche' sto studiando Java.
Pero' non si sa mai ... se prossimamente proseguiro' con Gambas terro' conto delle indicazioni ricevute.
Grazie a tutti.

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.311
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Si puo' creare l'equivalente di una DLL in Gambas?
« Risposta #10 il: 25 Aprile 2013, 22:30:47 »
Pero' non si sa mai ... se prossimamente proseguiro' con Gambas terro' conto delle indicazioni ricevute.
Grazie a tutti.

Carissimo ZioCrick, io ho fatto ora delle prove al riguardo: l'invocazione di funzioni e proprietà poste in librerie .gambas funziona.

Spero tu possa, comunque, restare fra i nostri.
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline ZioCrick

  • Gamberetto
  • *
  • Post: 31
    • Mostra profilo
Re: Si puo' creare l'equivalente di una DLL in Gambas?
« Risposta #11 il: 25 Aprile 2013, 23:19:16 »
Carissimo ZioCrick, io ho fatto ora delle prove al riguardo: l'invocazione di funzioni e proprietà poste in librerie .gambas funziona.
Ottimo.  :ok:

Citazione
Spero tu possa, comunque, restare fra i nostri.
Certo, mica mi volatizzo..   ;D

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.311
  • Ne mors quidem nos iunget
    • Mostra profilo
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline ZioCrick

  • Gamberetto
  • *
  • Post: 31
    • Mostra profilo
Re: Si puo' creare l'equivalente di una DLL in Gambas?
« Risposta #13 il: 26 Aprile 2013, 09:11:39 »
Mi sono permesso di farne un riassuntino:

http://www.gambas-it.org/wiki/index.php?title=Importare_ed_utilizzare_librerie_.gambas
Bravissimo! Sara' sicuramente utile a qualcuno. :)