Re: [Vala] Using Vala to hack an existing C project



Am 24.03.2010 23:59, Jordan Stinson wrote:
Hi there,

I'd like to hack on an existing GLib based C project using vala. Basically
what I'm doing is, at the beginning of my build process, using valac to
generate .c and .h files from my .vala files and then just compiling the
generated files the way I would any .c or .h file. This is probably not the
best way, but seems to be working alright for the most part. My problem is
that I'm having a hard time accessing my existing C code from my Vala code.
Is there an easy way to do this? I've tried writing my own .vapi files (I
didn't have any luck with the tool that came with vala), but I can't find
any decent documentation on how to write these. Does any exist? Do I need
one of these files to call existing C code or is there another way?

You can use the 'extern' keyword if you do not want to write a vapi file:

----- source1.c ---------------------------------------------------------
int my_c_function (const char *foo, double bar)
{
        return 42;
}
-------------------------------------------------------------------------

----- source2.vala ------------------------------------------------------
extern int my_c_function (string foo, double bar);

void main () {
        stdout.printf ("%d\n", my_c_function ("hello", 0.75));
}
-------------------------------------------------------------------------

Compile:

$ valac source1.c source2.vala -o my-program


Best regards,

Frederik



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]