[Gambas-devel] component

Ken Schrock schrockk at ...26...
Sun Jun 8 23:01:06 CEST 2003


Benoit Minisini wrote:

>Le Samedi 7 Juin 2003 21:18, Ken Schrock a écrit :
>  
>
>>Let's see if I have this right
>>Would this yield a component called 2Example
>>With a single read-only property called width, type integer?
>>    
>>
>Yes.
>
Ok, then when this compiles
I should have lib.gb.2example.so.0.0.0
Which goes into /usr/gambas/lib along with
Links .so and .so.0 to it, and a lib.gb.2example.la
Plus an ini type section for it in /usr/gambas/component

Pretty well cover it?

>>(which would always return 0 at this point : -)
>>HACK Hack hack Minimalist version
>>
>>/********************* short_c2example.h **********************/
>>
>>#ifndef __C2EXAMPLE_H
>>#define __C2EXAMPLE_H
>>
>>#include "gambas.h"
>>
>>#ifndef __C2EXAMPLE_C
>>
>>extern GB_DESC CExampleDesc[];
>>
>>#else
>>
>>#define THIS ((C2EXAMPLE *)_object)
>>
>>#endif
>>
>>typedef
>>  struct {
>>    GB_BASE ob;
>>    long width;
>>    }
>>  C2EXAMPLE;
>>
>>#endif
>>
>>/****************** short_c2example.c ****************/
>>
>>#define __C2EXAMPLE_C
>>
>>#include "short_main.h"
>>#include "Short_C2Example.h"
>>
>>
>>BEGIN_PROPERTY(C2EXAMPLE_width)
>>
>>  GB.ReturnInteger(THIS->width);
>>
>>END_PROPERTY
>>
>>
>>GB_DESC C2ExampleDesc[] =
>>
>>  GB_DECLARE("2Example", sizeof(C2EXAMPLE)),
>>
>>  GB_PROPERTY_READ("Width", "i", C2EXAMPLE_width),
>>
>>  GB_END_DECLARE
>>};
>>
>>/************* short_main.h *****************/
>>
>>#ifndef __MAIN_H
>>#define __MAIN_H
>>
>>#include "gambas.h"
>>
>>#ifndef __MAIN_C
>>
>>extern GB_INTERFACE GB;
>>
>>#else
>>
>>static void hook_main(int *argc, char **argv);
>>
>>#endif /* __MAIN_C */
>>
>>#endif /* __MAIN_H */
>>
>>/****************** short_main.c *********************/
>>
>>#define __MAIN_C
>>
>>#include "Short_C2Example.h"
>>#include "short_main.h"
>>
>>GB_INTERFACE GB;
>>
>>GB_DESC *GB_CLASSES[] =
>>{
>>  C2ExampleDesc,
>>  NULL
>>};
>>
>>int GB_INIT(void)
>>{
>>  GB.Hook(GB_HOOK_MAIN, (void *)hook_main);
>>  return 0;
>>}
>>
>>void GB_EXIT()
>>{
>>}
>>
>>void GB_INFO(int info, void **result)
>>{
>>  switch (info)
>>  {
>>    case GB_INFO_CONTROL:
>>      *result = (void *)NULL;
>>      break;
>>
>>    case GB_INFO_REQUIRE:
>>      *result = (void *)NULL;
>>      break;
>>  }
>>}
>>    
>>
>
>It is not necessary to manage the cases where GB_INFO returns NULL, because 
>this is the default value.
>
>  
>
>>static void hook_main(int *argc, char **argv)
>>{
>>/* main stuff */
>>}
>>
>>    
>>

-- 
Using Lindows 


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gambas-basic.org/pipermail/devel/attachments/20030608/ba05351f/attachment.html>


More information about the Devel mailing list