# Registering classes in a module

**URL:** <https://forum.xojo.com/t/registering-classes-in-a-module/63964>\
**Category:** SDKs\
**Created:** [June 17, 2021, 6:05am UTC](https://forum.xojo.com/t/registering-classes-in-a-module/63964 "2021-06-17T06:05:19Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![Pierre\_Vareilles](https://forum.xojo.com/letter_avatar_proxy/v4/letter/p/3be4f8/32.png) [@Pierre\_Vareilles](https://forum.xojo.com/u/Pierre_Vareilles)\
**Post date:** [June 17, 2021, 6:05am UTC](https://forum.xojo.com/t/registering-classes-in-a-module/63964/1 "2021-06-17T06:05:19Z")

</div>

Is there somewhere an example on how to include classes in a module ? All my attempt fail. This is what I actually do based on code found.

 

```nohighlight
REALclassDefinition Class1_Definition = {
    kCurrentREALControlVersion,
    "Class1",
    ......
    ......
};

REALclassDefinition Class2_Definition = {
    kCurrentREALControlVersion,
    "Class2",
    ......
    ......
};

static REALclassDefinition All_Classes[] = {
    Class1_Definition,
    Class2_Definition
};

static REALclassDefinition* ac = All_Classes;
static REALclassDefinition** All_ClassDef = &ac;

// Structures and enumerations live inside of a module,
// and so we will demonstrate how to declare them inside
// of the module.

static REALmoduleDefinition testModule = {
	kCurrentREALControlVersion,
	"TestStructEnumModule",
	testMethods,
	sizeof(testMethods) / sizeof(REALmethodDefinition),
	NULL, // Constants
	0, // Constant count
	NULL, // Properties
	0, // Property count
	testStructs,
	sizeof( testStructs ) / sizeof( REALstructure ),
	testEnums,
	sizeof( testEnums ) / sizeof( REALenum ),
    nil, // Atributes
    0, // Attribute count
    nil, // Delegates
    0, // Delegate count
    ClassDef, // Classes
    _countof(ClassDef), // Class count
};

void PluginEntry( void )
{
	REALRegisterModule( &testModule );
        // SetClassConsoleSafe(&Class1_Definition);
        // REALRegisterClass(&Class1_Definition);
        // SetClassConsoleSafe(&Class2_Definition);
        // REALRegisterClass(&Class2_Definition);
}

```

 

Doing so auto-complete doesn’t show the classes after the first one.

 

```nohighlight
Var c2 As TestStructEnumModule.Class2

```

  IDE complains that Class2 is an unknown type. Classes registered indepently work fine.

One more question. From my knowledge it is not possible to declare structures in a class. Why ?

Thanks in advance for your advices.

---

<div class="post-metadata">

**Author:** ![Christian\_Schmitz](https://forum.xojo.com/user_avatar/forum.xojo.com/christian_schmitz/32/158_2.png) [@Christian\_Schmitz](https://forum.xojo.com/u/Christian_Schmitz)\
**Post date:** [June 17, 2021, 6:20am UTC](https://forum.xojo.com/t/registering-classes-in-a-module/63964/2 "2021-06-17T06:20:54Z")

</div>

```
ClassDef, // Classes
_countof(ClassDef), // Class count

```

Are you sure this is right?

Should it be:

```
All_Classes, // Classes
_countof(All_Classes), // Class count = 2

```

and I don’t see ClassDef above defined.

---

<div class="post-metadata">

**Author:** ![Pierre\_Vareilles](https://forum.xojo.com/letter_avatar_proxy/v4/letter/p/3be4f8/32.png) [@Pierre\_Vareilles](https://forum.xojo.com/u/Pierre_Vareilles)\
**Post date:** [June 17, 2021, 8:08am UTC](https://forum.xojo.com/t/registering-classes-in-a-module/63964/3 "2021-06-17T08:08:26Z")

</div>

Christian,

I meant All\_ClassDef instead ClassDef.

I tried what you’re suggesting but I get :

 

```nohighlight
.......
.......
0, // Delegate count
ALL_Classes, // Classes Cannot initialize a member subobject of type 'REALclassDefinition **' with an lvalue of type 'REALclassDefinition [2]'
_countof(All_Classes), // Class count
};
```

---

<div class="post-metadata">

**Author:** ![Christian\_Schmitz](https://forum.xojo.com/user_avatar/forum.xojo.com/christian_schmitz/32/158_2.png) [@Christian\_Schmitz](https://forum.xojo.com/u/Christian_Schmitz)\
**Post date:** [June 17, 2021, 8:40am UTC](https://forum.xojo.com/t/registering-classes-in-a-module/63964/4 "2021-06-17T08:40:50Z")

</div>

```auto
&All_Classes, // Classes
_countof(All_Classes), // Class count = 2

```

Add an & there?

---

<div class="post-metadata">

**Author:** ![Pierre\_Vareilles](https://forum.xojo.com/letter_avatar_proxy/v4/letter/p/3be4f8/32.png) [@Pierre\_Vareilles](https://forum.xojo.com/u/Pierre_Vareilles)\
**Post date:** [June 17, 2021, 9:34am UTC](https://forum.xojo.com/t/registering-classes-in-a-module/63964/5 "2021-06-17T09:34:08Z")

</div>

Same kind of error. Just a bit different.

 

```nohighlight
 nil, // Delegates
   0, // Delegate count
    &All_Classes, // Classes Cannot initialize a member subobject of type 'REALclassDefinition **' with an rvalue of type 'REALclassDefinition (*)[2]'
    _countof(All_Classes), // Class count
};
</small>
```

---

<div class="post-metadata">

**Author:** ![Christian\_Schmitz](https://forum.xojo.com/user_avatar/forum.xojo.com/christian_schmitz/32/158_2.png) [@Christian\_Schmitz](https://forum.xojo.com/u/Christian_Schmitz)\
**Post date:** [June 17, 2021, 9:36am UTC](https://forum.xojo.com/t/registering-classes-in-a-module/63964/6 "2021-06-17T09:36:47Z")

</div>

Your compiler is picky:

`&All_Classes[0]`

maybe like this with [0] on the end?

---

<div class="post-metadata">

**Author:** ![Björn\_Eiríksson](https://forum.xojo.com/letter_avatar_proxy/v4/letter/b/da6949/32.png) [@Björn\_Eiríksson](https://forum.xojo.com/u/Bj%C3%B6rn_Eir%C3%ADksson)\
**Post date:** [June 17, 2021, 10:16am UTC](https://forum.xojo.com/t/registering-classes-in-a-module/63964/7 "2021-06-17T10:16:56Z")

</div>

Classes need to be set up like this:

static REALclassDefinition\* MyClasses[] =  
{  
&MyClass1,  
&MyClass2,  
};

Thats basically his error that their set up wrong.

---

<div class="post-metadata">

**Author:** ![Pierre\_Vareilles](https://forum.xojo.com/letter_avatar_proxy/v4/letter/p/3be4f8/32.png) [@Pierre\_Vareilles](https://forum.xojo.com/u/Pierre_Vareilles)\
**Post date:** [June 17, 2021, 10:22am UTC](https://forum.xojo.com/t/registering-classes-in-a-module/63964/8 "2021-06-17T10:22:17Z")

</div>

Björn,

That did the trick !!!

Thanks a lot both of you
