I found the example below on the forums (which I cannot seem to find again), but when I run it, Blitzmax unloads itself. I cannot figure out what is wrong...
class.cpp
class.bmx
class-glue.cpp
class.cpp
class MyClass { public: MyClass(); void DoSomething(); } MyClass::MyClass() {} void MyClass::DoSomething() {}
class.bmx
SuperStrict Import "class-glue.cpp" Extern "C" Function create_new_myclass:Byte Ptr() Function myclass_dosomething(myclass:Byte Ptr) End Extern Local b:Byte Ptr = create_new_myclass() myclass_dosomething(b)
class-glue.cpp
#include "class.cpp"; extern "C" { MyClass * create_new_myclass(); void myclass_dosomething(MyClass * myclass); } MyClass * create_new_myclass() { return new MyClass(); } void myclass_dosomething(MyClass * myclass) { myclass->DoSomething(); }