Orbitersdk.h

Microsoft is so :censored: capitalist. REQUIRING A FREE REGISTRATION just to send ads.

Yes, it's incredibly capitalist of them to give out their software for free. Damn them. Damn them all to hell.
 
Unless you can find a compiler that uses the same name mangling scheme as Visual C++...

I guess then that my fate is sealed in this matter. A pity, perhaps, because installing al the VC++ stuff seems overkill just to make DLLs. Well, I guess then that I should look again at that windows.h affair.
 
I guess then that my fate is sealed in this matter. A pity, perhaps, because installing al the VC++ stuff seems overkill just to make DLLs. Well, I guess then that I should look again at that windows.h affair.

There's some #defines at the start of OrbiterAPI.h (or maybe it was OrbiterSDK.h) that have some name mangling things, i think. You may be able to modify/change those to suit your compiler.
 
There's some #defines at the start of OrbiterAPI.h (or maybe it was OrbiterSDK.h) that have some name mangling things, i think. You may be able to modify/change those to suit your compiler.
orbiter.exe expects to find the functions provided by your classes (derived from the main base classes: VESSEL, MFD, CELBODY) exported with VC++ name mangling (that is what __declspec(dllexport) tells you). The main entry point functions (InitModule, ExitModule, etc) are exported from the DLL with Windows C name mangling, which most compilers will provide. So, technically you could provide a module compiled in another compiler but you would be very restricted in the services it could provide to the core.

orbiter.exe also exports the oapiXXX functions with VC++ name mangling. Technically it would be possible for a module to use these functions if you used a demangling routine.
 
Back
Top