> Hi,
> 
> I finally wrote the tutorial about using external declarations.

Great!

> 
> It is a long text and perhaps difficult, but I didn't find any other way
> to put it in a simpler form: the problem of interfacing gambas to
> external libraries, from the perspective of a gambas user, is not simple.
> 
> I wrote it using zim, a nice wiki editor. I attach what I exported from
> the document, in both html and "Txt2Tags" (?) format.

This is not HTML, but plain text. If you can make an HTML version of your 
document, with formatted text, I will be able to add it to the wiki.

> 
> Feel free to modify it as needed, to include it in the wiki, or
> whatever. I attach two projects related to the explanation, one short
> and simple and one much more complex, but more funny.
> 
> This document regards Gambas2. When it will be corrected/approved, I
> will port projects and documentation to Gambas3.
> 
> Now some technical question.
> 
> In the Drum Machine project, after having verified that it works
> correctly using pointers for read/write, I tried to create a new class
> which should be a gambas representation for an alsa event (which is a C
> struct). It does not work, and I don't know how to debug it (well, I
> could, using gdb or similar, but I was looking for a more direct way).

Give me the C declaration, and your class declaration, and I will be able to 
see if they correctly match.

> My idea was to point a pointer to the instance of the class CEvent, and
> then dump a few bytes to see them. But gambas does not let me to assign
> a pointer to a class instance ("wanted integer, found object").
> 
> Moreover, in the gambas 3 documentation there is nothing that makes me
> think that "write #pointer, ..." is no more supported. Either gambas3
> supports it (but it does not seems to me), or the documentation is wrong.

It is explicitely said that "WRITE #Pointer" is not supported anymore in 
Gambas 3, in the WRITE documentation page. And so on for the READ instruction.

> 
> Another thing is that if I declare a constant as a byte, and then try to
> "write #pointer, my_byte_constant", 4 bytes are written instead of just
> one. I had to mention it in the document.

Mmm. it could be a bug in Gambas 2. A workaround would be using CByte() 
explicitely.

> 
> I am really curious to give a try to gambas3 structures, but I want
> firstly terminate with gambas2.
> 
> Best regards,
> Doriano Blengino

The Gambas 3 structures were implemented for the use of extern C structures. 
Moreover, in Gambas 3, you can now use Gambas functions as C function pointer  
(as known as "callbacks") almost transparently.

Regards,

-- 
Benoît Minisini

------------------------------------------------------------------------------
Sell apps to millions through the Intel(R) Atom(Tm) Developer Program
Be part of this innovative community and reach millions of netbook users 
worldwide. Take advantage of special opportunities to increase revenue and 
speed time-to-market. Join now, and jumpstart your future.
http://p.sf.net/sfu/intel-atom-d2d
_______________________________________________
Gambas-user mailing list
Gambas-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gambas-user

Reply via email to