Autore Topic: Uso funzioni esterne in Gambas 2.24  (Letto 767 volte)

Offline g.grandi

  • Gambero
  • **
  • Post: 51
    • Mostra profilo
Uso funzioni esterne in Gambas 2.24
« il: 07 Dicembre 2012, 16:56:24 »

Ciao a tutti.
Oggi mi sono addentrato nella creazione di una libreria esterna condivisa con l'intento di poter riutilizzare del codice c++ scritto prima di scoprire Gambas. Mi sono scaricato dal Wiki del sito l'articolo "crare una libreria condivisa" che guida passo a passo nella creazione e uso di tale potenzialità. Ho provato il primo esempio, ma nel momento in cui clicco sul pulsante che richiama la libreria esterna, mi genera l'errore "illegal instruction". E' un problema legato alla versione che uso io?

Grazie
Giovanni

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.305
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Uso funzioni esterne in Gambas 2.24
« Risposta #1 il: 08 Dicembre 2012, 02:50:43 »

 mi genera l'errore "illegal instruction". E' un problema legato alla versione che uso io?

 :-\

Io ho riprovato quell'esempio in C  (con Gambas 3.3.90), e a me funziona regolarmente dandomi il risultato di  128.

Uhmmm.... prova a generarti la libreria con questo mio piccolo applicativo specifico:
http://www.gambas-it.org/smf/index.php?topic=2175.0

(riguardo al primo esempio di quella pagina della Wiki, i due file .so della libreria generata vanno caricati nella cartella "Dati" del progetto)
« Ultima modifica: 11 Dicembre 2012, 11:12:11 da vuott »
« 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 g.grandi

  • Gambero
  • **
  • Post: 51
    • Mostra profilo
Re: Uso funzioni esterne in Gambas 2.24
« Risposta #2 il: 10 Dicembre 2012, 21:10:58 »
Ho scaricato l'applicativo ma è fatto per la versione 3,  quindi viene rifiutato. Purtroppo lavoro su una Red Hat 5.5 che non supporta Gambas 3 e non posso aggiornarmi come vorrei... Comunque mi sono letto il sorgente ed ho visto che i comandi usati nella shell, combaciano esattamente con i miei. A questo punto posso solo pensare ad un baco, però nella sezione specifica del forum non ho trovato nulla a riguardo della versione 2. Allego il sorgente del programmino comprensivo pure di librerie... Nella speranza che mi sia sfuggito qualcosa  :o

Ciao
Giovanni

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.305
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Uso funzioni esterne in Gambas 2.24
« Risposta #3 il: 10 Dicembre 2012, 23:07:53 »
Ho scaricato e provato il tuo sorgente allegato, dopo averlo convertito automaticamente per Gambas 3: non funziona neppure a me.

Poi ho scaricato il file primo.c, allegato nel tuo progetto, e ho ricreato la libreria da capo, e l'ho riutilizzata: ha funzionato.

Forse c'è un problema nella creazione della libreria con l'attuale tuo sistema.  :-\

Non credo che l'ostacolo sia Gambas 2, poiché esso è capace di leggere le librerie esterne. Infatti i miei primissimi passi compiuti nello studio delle API di ALSA (e quindi dell'uso dela libreria esterna Libasound), sono stati con Gambas 2 !


Ti passo le due librerie che ho ricreato e che a me funzionano. Provale e dimmi se ti funzionano.   :ciao:
« Ultima modifica: 11 Dicembre 2012, 00:01:45 da vuott »
« 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 g.grandi

  • Gambero
  • **
  • Post: 51
    • Mostra profilo
Re: Uso funzioni esterne in Gambas 2.24
« Risposta #4 il: 11 Dicembre 2012, 11:16:03 »
Ho provato ormai in tutte le salse possibili (con le tue e anche senza le librerie) ma il risultato è sempre lo stesso. Purtroppo, non avendo alcun indizio in più, non riesco neppure a capire DOVE sia il problema...

Giovanni

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.305
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Uso funzioni esterne in Gambas 2.24
« Risposta #5 il: 11 Dicembre 2012, 11:22:17 »
Mi viene da pensare che ci vorrebbe qualcun'altro, avente la tua medesima versione di Gambas, per provare quelle librerie, al fine di vedere se riscontra i problemi da te incontrati.

Non saprei... però il fatto che la libreria creata da te non abbia funzionato da me e mi abbia sollevato un errore di una classe (se non ricordo male) ELF (o qualcosa del genere), nonostante il codice C fosse esattamente identico, mi induce a supporre che qualcosa nel tuo sistema non solo crea in modo errato le librerie, ma mal digerisce quelle certamente funzionanti...

Putroppo, non so cosa dirti. :-\

........forse dovresti provare a caricare altre librerie.... non ricordo se ho ancora la DrumMachine per Gambas 2. Eventualmente te la passo per provare la libreria di ALSA.
« Ultima modifica: 11 Dicembre 2012, 11:26:45 da vuott »
« 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. »