General Question Starting out with Orbiter SDK

boogabooga

Bug Crusher
Joined
Apr 16, 2011
Messages
2,999
Reaction score
1
Points
0
I'm interested in developing a module for Orbiter. As I have some experience coding in JAVA (which I greatly enjoyed), I figure there is no excuse for me to not learn to develop for Orbiter.

However, I have some questions trying to get over the initial hurdles.

I've checked out the developer resources, but they seem to be a little outdated. I understand that I need some form of Visual Studio and/or Visual C++. I've downloaded Visual Studio "Community" 2013: http://www.visualstudio.com/en-us/products/visual-studio-community-vs

This seems to be the current "Free developer tool." However, I see a lot of references to various "Express" versions of Visual Studio on the forum, so I am wondering how I would know if "Community" is going to work.

Edit: I see now that Community is an, er, enhanced version of Express. But perhaps a bit like learning to drive in a Porsce...

While I do have coding experience, I don't have much in the neighborhood of development (working with an SDK, including needed libraries, debugging, etc.) so any additional starting advice would be appreciated.

Is the advice in this video still relevant: https://www.youtube.com/watch?v=VBRLkN__YIo
Edit: For example, I'm trying to get the debugging command to Orbiter.exe, but the procedure does not seem to be the same in 2013 Community. Is there something analogous that I need to do? Is this the kind of thing that the "property sheets" are for?


Is this tutorial still relavant: [ame="http://www.orbithangar.com/searchid.php?ID=4159"]MFD Wizard for Visual Studio[/ame]
??

Another question, would other IDEs work, such as the C++ version of eclipse: https://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers/lunasr2

It seems that Visual Studio wants me to obtain a "developer license" for Windows 8.1. Is this something that others have had to obtain?
 
Last edited:

Blake

Addon Developer
Addon Developer
Joined
Mar 9, 2009
Messages
238
Reaction score
124
Points
58
Location
Lehi, Utah
Go here:

Express 2013 for Windows Desktop

You want Express 2013 for Windows Desktop (not Windows 8.1). You don't need a developers license to develop add ons for Orbiter.

I have not gone through the other resources so cannot comment on them. At the end of the day, an Orbiter add on is just a Windows DLL.

Disclaimer, I use the full VS 2013, but the express version should do everything needed.
 

boogabooga

Bug Crusher
Joined
Apr 16, 2011
Messages
2,999
Reaction score
1
Points
0
Per this thread: http://www.orbiterwiki.org/wiki/Free_Compiler_Setup#Get_the_Compiler

Where are the "project property sheets" and how do I use them in Orbiter 2010? What is it that they take care of?

Go here:

Express 2013 for Windows Desktop

You want Express 2013 for Windows Desktop (not Windows 8.1). You don't need a developers license to develop add ons for Orbiter.

Okay, but when I try to download that, it wants me to sign in to a Microsoft account, which makes me nervous. The "Community" version is plugged as "free" at the top of the page and required no log-in.

Am I going to get charged if I download the "Express" version? I would prefer not to have to create an account.



Edit: Nevermind the last part. I installed Express. I did it! I did it! I got the show sim time module working in Orbiter from the demo youtube video! :woohoo:

I have an extra .ilk file in my plugins folder. Any idea what this is?
 
Last edited:

Blake

Addon Developer
Addon Developer
Joined
Mar 9, 2009
Messages
238
Reaction score
124
Points
58
Location
Lehi, Utah
The requirement for an account may be new, but you should not be charged for use of Express VS.


The property pages are in Orbiter\OrbiterSDK\Resources\

Do an Orbiter Forum search for 'property manager', there are several threads that discuss them. Its a feature that is somewhat hidden in Visual Studio.

And congrats on your first working addon. :cheers:
 

boogabooga

Bug Crusher
Joined
Apr 16, 2011
Messages
2,999
Reaction score
1
Points
0
I'm trying to use the property sheets in the resources folder for my project.

It seems that they are in .vsprops format, while the latest version of Visual Studio uses .props format.

Could someone please explain in detail how to go through the conversion process, or if it is possible?

My own search found this:
http://www.orbiter-forum.com/showthread.php?p=468275&postcount=5
and this:
http://www.orbiter-forum.com/showthread.php?t=34971&highlight=property+manager
But I still do not understand...
 
Last edited:

orb

New member
News Reporter
Joined
Oct 30, 2009
Messages
14,020
Reaction score
4
Points
0
ould someone please explain in detail how to go through the conversion process, or if it is possible?

First modify the value of "OrbiterDir" path in the original Orbitersdk\resources\orbiterroot.vsprops file with a text editor (e.g. notepad, or edited as a text in Visual Studio) to point it to your Orbiter directory.

Next open in Visual Studio solutions from OrbiterSDK samples for example of ShuttlePB and next MFDTemplate.

Opening a sample of a vessel project (e.g ShuttlePB) will convert property sheet used for vessels and opening a project of a plug-in (e.g. MFDTemplate) will convert property sheet used for plug-in projects.

Changing the OrbiterDir in the orbiterroot.vsprops file is quite important, because any further conversion you could make would overwrite the set OrbiterDir in converted orbiterroot.props file.
 

boogabooga

Bug Crusher
Joined
Apr 16, 2011
Messages
2,999
Reaction score
1
Points
0
Tried to compile:

error LNK1561 entry point must be defined

Oops nevermind, this was due to not being in Configuration Type .dll

I can now get it to build in Debug mode, but not in Release mode.
 
Last edited:

meson800

Addon Developer
Addon Developer
Donator
Joined
Aug 6, 2011
Messages
405
Reaction score
2
Points
18
I can now get it to build in Debug mode, but not in Release mode.

That's caused because VS has different settings and properties for each compile mode. You likely (as I did at first), just edited the properties of the currently active property sheet, debug, so the Release settings are all still the default, nonfunctional, ones.

To fix this, simply edit your settings again, but going to the top of the dialog box, and switching "Configuration" to "All Configurations"
This will let you edit settings globally.

all_configurations.PNG
 
Last edited:

orb

New member
News Reporter
Joined
Oct 30, 2009
Messages
14,020
Reaction score
4
Points
0
I can now get it to build in Debug mode, but not in Release mode.
Did you add the Orbiter property sheets to both configurations? You can do it quite fast on Property Manager tab, where you can see in the tree view which configurations have which property sheets already added.
 

n122vu

Addon Developer
Addon Developer
Donator
Joined
Nov 1, 2007
Messages
3,196
Reaction score
51
Points
73
Location
KDCY
Express is really all you need for developing for Orbiter. Looks like you're well on your way to getting it configured.

For what it's worth, Community Edition is basically marketed as a more robust version of Express, and I believe is intended to be its successor. Unlike previous versions, Community Edition is able to utilize extensions, most of which are free, that are available online via the gallery, which before could only be used in the paid or subscription versions of Visual Studio.

http://www.visualstudio.com/en-us/news/vs2013-community-vs.aspx
 

boogabooga

Bug Crusher
Joined
Apr 16, 2011
Messages
2,999
Reaction score
1
Points
0
That's caused because VS has different settings and properties for each compile mode. You likely (as I did at first), just edited the properties of the currently active property sheet, debug, so the Release settings are all still the default, nonfunctional, ones.

To fix this, simply edit your settings again, but going to the top of the dialog box, and switching "Configuration" to "All Configurations"
This will let you edit settings globally.

all_configurations.PNG

Did you add the Orbiter property sheets to both configurations? You can do it quite fast on Property Manager tab, where you can see in the tree view which configurations have which property sheets already added.

I followed Orb's conversion.

Then I followed these directions:
http://www.orbiter-forum.com/showthread.php?t=34971&highlight=property+sheet

So yes, I have property sheets assigned to release mode.
 

orb

New member
News Reporter
Joined
Oct 30, 2009
Messages
14,020
Reaction score
4
Points
0
So whet is the problem with it? "Not getting it to build" is not an answer to the question.
 

boogabooga

Bug Crusher
Joined
Apr 16, 2011
Messages
2,999
Reaction score
1
Points
0
Code:
Error	4	error LNK2005: "private: __thiscall type_info::type_info(class type_info const &)" (??0type_info@@AAE@ABV0@@Z) already defined in LIBCMT.lib(typinfo.obj)	C:[[B]Redacted[/B]]\MSVCRT.lib(ti_inst.obj)	ExpressPropertySheetTest


Error	5	error LNK2005: "private: class type_info & __thiscall type_info::operator=(class type_info const &)" (??4type_info@@AAEAAV0@ABV0@@Z) already defined in LIBCMT.lib(typinfo.obj)	C:[B][Redacted][/B]MSVCRT.lib(ti_inst.obj)	ExpressPropertySheetTest


Error	6	error LNK1169: one or more multiply defined symbols found	C:[B][Redacted][/B]\ExpressPropertySheetTest.dll	1	1	ExpressPropertySheetTest

Errors do not occur in debug mode.
 

orb

New member
News Reporter
Joined
Oct 30, 2009
Messages
14,020
Reaction score
4
Points
0
Did you change the project to link it statically (/MT switch), or something?
 

orb

New member
News Reporter
Joined
Oct 30, 2009
Messages
14,020
Reaction score
4
Points
0
For now change it to inherit from parent or project defaults and check if it compiles fine.
 

orb

New member
News Reporter
Joined
Oct 30, 2009
Messages
14,020
Reaction score
4
Points
0
For starting out with Orbiter SDK it should be just fine leaving it how the project parent (Orbiter property sheets and then Visual Studio defaults) defines it. I myself prefer dynamic linking as it will use less memory when you use more than one Orbiter module compiled with the same version of Visual C++.

However if you really need to link it statically, you'll additionally need to add msvcrt.lib to ignored default libraries to make it link without problems when you link against OrbiterSDK, which sets the msvcrt as a default library.
 
Top