Project Blue Streak F3(DLL)

I'm trying to run the de-bugger, and getting "Binary was not built with debug information."error message.
Check if you have set this:
Project -> Properties... -> Configuration Properties -> C/C++ -> General -> Debug Information Format -> Program Database for Edit & Continue (/ZI)
 
Also, be sure your build setting (in the drop-down box) is set to "Debug" and not "Release".
 
For Orb:
Checked that, and its as you say.

For dbeachy1:
Its on the debug setting,

Thanks folks.
Its still doing that error message, I'll keep checking the properties form, and have a bit more play!

N.
 
I just remembered something -- you're debugging Orbiter.exe as the binary, correct? In that case, that message is normal because Orbiter.exe indeed has no debug information since it's a release build. Your DLL, however, should have debug information now, but you'll still get that warning on startup. So it's safe to ignore that message. Here's how to verify that your DLL has debug info:

1. Put a breakpoint inside your vessel's constructor or one of the callbacks, like clbkSetClassCaps. You can do that by moving the cursor to the line you want and then setting a breakpoint via the menu, a hotkey, or by clicking in the far-left edge of the window on that line (unless they've changed that since VS 2005). A little red circle should appear on the left edge when the breakpoint is set.

2. Run the debugger. You will see the "not built with debug information" warning, but that is normal since you're debugging Orbiter.exe.

3. When your vessel loads the debugger should pop up when your breakpoint is hit. The move the mouse over a few local variables in your method and see if the values pop up. If you can see that, your debugger is working!

4. Congratulations! It will now be much easier to create bug-free add-ons! :)
 
Thanks dbeach1 that all makes sense, I'll have a go at that.

Haven't stopped laughing at item 4)....

N.

---------- Post added 04-08-10 at 01:03 PM ---------- Previous post was 04-07-10 at 08:24 PM ----------

Playing with th de-bugger, and seems to work ok. Got this from setting a breakpoint
Code:
[SIZE=1]'orbiter.exe': Loaded 'C:\Blue Streak F3(DLL)\orbiter.exe', Binary was not built with debug information.[/SIZE]
[SIZE=1]'orbiter.exe': Loaded 'C:\WINDOWS\system32\ntdll.dll'[/SIZE]
[SIZE=1]'orbiter.exe': Loaded 'C:\WINDOWS\system32\kernel32.dll'[/SIZE]
[SIZE=1]'orbiter.exe': Loaded 'C:\WINDOWS\system32\ddraw.dll'[/SIZE]
[SIZE=1]'orbiter.exe': Loaded 'C:\WINDOWS\system32\advapi32.dll'[/SIZE]
[SIZE=1]'orbiter.exe': Loaded 'C:\WINDOWS\system32\rpcrt4.dll'[/SIZE]
[SIZE=1]'orbiter.exe': Loaded 'C:\WINDOWS\system32\secur32.dll'[/SIZE]
[SIZE=1]'orbiter.exe': Loaded 'C:\WINDOWS\system32\dciman32.dll'[/SIZE]
[SIZE=1]'orbiter.exe': Loaded 'C:\WINDOWS\system32\gdi32.dll'[/SIZE]
[SIZE=1]'orbiter.exe': Loaded 'C:\WINDOWS\system32\user32.dll'[/SIZE]
[SIZE=1]'orbiter.exe': Loaded 'C:\WINDOWS\system32\msvcrt.dll'[/SIZE]
[SIZE=1]'orbiter.exe': Loaded 'C:\WINDOWS\system32\dinput.dll'[/SIZE]
[SIZE=1]'orbiter.exe': Loaded 'C:\WINDOWS\system32\winmm.dll'[/SIZE]
[SIZE=1]'orbiter.exe': Loaded 'C:\WINDOWS\system32\ole32.dll'[/SIZE]
[SIZE=1]'orbiter.exe': Loaded 'C:\WINDOWS\system32\comctl32.dll'[/SIZE]
[SIZE=1]'orbiter.exe': Loaded 'C:\WINDOWS\system32\imm32.dll'[/SIZE]
[SIZE=1]'orbiter.exe': Loaded 'C:\WINDOWS\system32\lpk.dll'[/SIZE]
[SIZE=1]'orbiter.exe': Loaded 'C:\WINDOWS\system32\usp10.dll'[/SIZE]
[SIZE=1]'orbiter.exe': Loaded 'C:\WINDOWS\system32\uxtheme.dll'[/SIZE]
[SIZE=1]'orbiter.exe': Loaded 'C:\WINDOWS\system32\d3dim700.dll'[/SIZE]
[SIZE=1]'orbiter.exe': Loaded 'C:\WINDOWS\system32\hid.dll'[/SIZE]
[SIZE=1]'orbiter.exe': Loaded 'C:\WINDOWS\system32\setupapi.dll'[/SIZE]
[SIZE=1]'orbiter.exe': Loaded 'C:\WINDOWS\system32\wintrust.dll'[/SIZE]
[SIZE=1]'orbiter.exe': Loaded 'C:\WINDOWS\system32\crypt32.dll'[/SIZE]
[SIZE=1]'orbiter.exe': Loaded 'C:\WINDOWS\system32\msasn1.dll'[/SIZE]
[SIZE=1]'orbiter.exe': Loaded 'C:\WINDOWS\system32\imagehlp.dll'[/SIZE]
[SIZE=1]'orbiter.exe': Loaded 'C:\Program Files\Norton 360\Engine\3.8.0.41\asOEHook.dll'[/SIZE]
[SIZE=1]'orbiter.exe': Loaded 'C:\WINDOWS\system32\oleaut32.dll'[/SIZE]
[SIZE=1]'orbiter.exe': Loaded 'C:\WINDOWS\system32\msctf.dll'[/SIZE]
[SIZE=1]'orbiter.exe': Loaded 'C:\WINDOWS\system32\version.dll'[/SIZE]
[SIZE=1]'orbiter.exe': Unloaded 'C:\WINDOWS\system32\version.dll'[/SIZE]
[SIZE=1]'orbiter.exe': Loaded 'C:\WINDOWS\system32\msctfime.ime'[/SIZE]
[SIZE=1]'orbiter.exe': Loaded 'C:\Blue Streak F3(DLL)\Modules\Startup\AtlantisConfig.dll', Binary was not built with debug information.[/SIZE]
[SIZE=1]'orbiter.exe': Loaded 'C:\Blue Streak F3(DLL)\Modules\Startup\DGConfig.dll', Binary was not built with debug information.[/SIZE]
[SIZE=1]'orbiter.exe': Loaded 'C:\Blue Streak F3(DLL)\Modules\Plugin\ScnEditor.dll', Binary was not built with debug information.[/SIZE]
[SIZE=1]'orbiter.exe': Loaded 'C:\WINDOWS\system32\mslbui.dll'[/SIZE]
[SIZE=1]'orbiter.exe': Loaded 'C:\Blue Streak F3(DLL)\Modules\Sun.dll', Binary was not built with debug information.[/SIZE]
[SIZE=1]'orbiter.exe': Loaded 'C:\Blue Streak F3(DLL)\Modules\Vsop87.dll', Binary was not built with debug information.[/SIZE]
[SIZE=1]'orbiter.exe': Loaded 'C:\WINDOWS\system32\msvcirt.dll'[/SIZE]
[SIZE=1]'orbiter.exe': Loaded 'C:\Blue Streak F3(DLL)\Modules\Mercury.dll', Binary was not built with debug information.[/SIZE]
[SIZE=1]'orbiter.exe': Loaded 'C:\Blue Streak F3(DLL)\Modules\Venus.dll', Binary was not built with debug information.[/SIZE]
[SIZE=1]'orbiter.exe': Loaded 'C:\Blue Streak F3(DLL)\Modules\Earth.dll', Binary was not built with debug information.[/SIZE]
[SIZE=1]'orbiter.exe': Loaded 'C:\Blue Streak F3(DLL)\Modules\Moon.dll', Binary was not built with debug information.[/SIZE]
[SIZE=1]'orbiter.exe': Loaded 'C:\Blue Streak F3(DLL)\Modules\BlueStreak_F3.dll', Symbols loaded.[/SIZE]
[SIZE=1]The thread 'Win32 Thread' (0x908) has exited with code 0 (0x0).[/SIZE]
[SIZE=1]'orbiter.exe': Unloaded 'C:\Blue Streak F3(DLL)\Modules\Startup\AtlantisConfig.dll'[/SIZE]
[SIZE=1]'orbiter.exe': Unloaded 'C:\Blue Streak F3(DLL)\Modules\Startup\DGConfig.dll'[/SIZE]
[SIZE=1]'orbiter.exe': Unloaded 'C:\Blue Streak F3(DLL)\Modules\Plugin\ScnEditor.dll'[/SIZE]
[SIZE=1]'orbiter.exe': Loaded 'C:\WINDOWS\system32\apphelp.dll'[/SIZE]
[SIZE=1]The thread 'Win32 Thread' (0x6a4) has exited with code 0 (0x0).[/SIZE]
[SIZE=1]The program '[3244] orbiter.exe: Native' has exited with code 0 (0x0).[/SIZE]

It behaved itself, and I coud see some variables. Never done any de-bugging, so I hope this is normal?

A small thing; when I changed the Output File to "C:\Blue Streak F3(DLL)\Modules/BlueStreak_F3.dl" in Linker -> General, I get:
Code:
[SIZE=1]
------ Rebuild All started: Project: ShuttlePB, Configuration: Debug Win32 ------
Deleting intermediate and output files for project 'ShuttlePB', configuration 'Debug|Win32'
Compiling...
ShuttlePB.cpp
Compiling manifest to resources...
Microsoft (R) Windows (R) Resource Compiler Version 6.1.6723.1
Copyright (C) Microsoft Corporation. All rights reserved.
Linking...
LINK : C:\Blue Streak F3(DLL)\Modules/BlueStreak_F3.dll not found or not built by the last incremental link; performing full link
Creating library .\Debug/ShuttlePB.lib and object .\Debug/ShuttlePB.exp
Embedding manifest...
Microsoft (R) Windows (R) Resource Compiler Version 6.1.6723.1
Copyright (C) Microsoft Corporation. All rights reserved.
Build log was saved at "file://c:\Orbitersdk\samples\ShuttlePB\Debug\BuildLog.htm"
ShuttlePB - 0 error(s), 0 warning(s)
========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ==========
[/SIZE]

It puts the .dll in the right place, just curious why it can't find something it needs?

thanks, N.
 
Playing with th de-bugger, and seems to work ok. Got this from setting a breakpoint

(-code snip-)

It behaved itself, and I coud see some variables. Never done any de-bugging, so I hope this is normal?
This status looks normal, if you exited Orbiter.

A small thing; when I changed the Output File to "C:\Blue Streak F3(DLL)\Modules/BlueStreak_F3.dl" in Linker -> General, I get:
Code:
...
LINK : C:\Blue Streak F3(DLL)\Modules/BlueStreak_F3.dll not found or not built by the last incremental link; performing full link
...
ShuttlePB - 0 error(s), 0 warning(s)
========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ==========

It puts the .dll in the right place, just curious why it can't find something it needs?
You changed the output path, so it can't find the previous version for incremental link, if you use incremental builds, but it doesn't need it at all. Linker will link created by compiler .obj (and .lib) files anyway. There are 0 errors and 0 warnings, so it doesn't need anything else.
 
Thanks orb, I think I'm pushing my luck a bit re-naming some files from ShuttlePB to BlueStreak_F3. Its working now, so time for some developement...

N.
 
I've installed it, and been reading through the documentation. It looks very good, at least I will have tidy bugs...

N.
 
Trying to get two vessels(projects) into the Visual C++ "Solution". One is BlueStreak_F3, the other LauncherMechanism. This is the state:
http://i89.photobucket.com/albums/k207/Notebook_04/Projects.jpg

Did this by copying BS_F3 .cpp and .h files and renaming throughout as LauncherMechanism. Then messed about with "add project" till it looked right...

Getting lots of linker errors from LauncherMechanism when building, I guess because Orbiter.lib and Orbitersdk.lib are not in LauncherMechanim project? Not sure why, they both have the same include and lib paths?
I also notice that BlueStreak_F3 project title is in bold and LauncherMechanism is not?

What I'd like to do is for Blue Streak to be attached to LauncherMechanism untill various conditions are met on BlueStreak, then released. So, some inter-vehicle comms is required.

Is it best to do this as two vessels(projects) in one Solution, or would it be best to make each one in its own Solution?

All help appreciated, N.
 
Did this by copying BS_F3 .cpp and .h files and renaming throughout as LauncherMechanism. Then messed about with "add project" till it looked right...
For future reference, there is an option like "Add Project from existing code" IIRC. I've found that to be quite easy to use in the past.

Getting lots of linker errors from LauncherMechanism when building, I guess because Orbiter.lib and Orbitersdk.lib are not in LauncherMechanim project? Not sure why, they both have the same include and lib paths?
Are those paths correct? The BluseStreak_F3 project will link them regardless of the path settings because you've added them as project files. The LauncherMechanism does not have them in the list of project files, so they will only be linked if the path settings for the linker are correct.

What I'd like to do is for Blue Streak to be attached to LauncherMechanism untill various conditions are met on BlueStreak, then released. So, some inter-vehicle comms is required.
You could do something like this:

Personally, for a project like this, I would just export a member function from the LauncherMechanism class that the BlueStreak could call when it needs to be released. This means that the BlueStreak DLL would have a dependency on the LauncherMechanism DLL and the user would need both of them in the scenario for that function to work (ie, you couldn't launch the Blue Streak without the launcher) but I don't see that as a big issue for a project like this.

Is it best to do this as two vessels(projects) in one Solution, or would it be best to make each one in its own Solution?
Personal preference, but it is logical to put them in the same solution IMHO.
 
Thanks for all that tb, I did use "add Project..." but not happy with what I did. Not sure where the shuttle_PB files came from.
If that is the correct way to build this, I'll go through the help files, and sort it out.

Personally, for a project like this, I would just export a member function from the LauncherMechanism class that the BlueStreak could call when it needs to be released.

What I was working toward was mimicing this sequence:
http://i89.photobucket.com/albums/k207/Notebook_04/img014-1.jpg
http://i89.photobucket.com/albums/k207/Notebook_04/img015-1.jpg

from event 12 onward. Assuming if Engine Complete signal is given, then LauncherMechanism breaks the attachment between the vehicles.

N.

Edit: This diagram also has the firing sequence:
http://i89.photobucket.com/albums/k207/Notebook_04/Blue%20Streak/img012.jpg
 
Last edited:
Assuming if Engine Complete signal is given, then LauncherMechanism breaks the attachment between the vehicles.
It looks to me like all those steps take place on the BlueStreak itself. All you need to do is break the attachment to the launch pad at T-0. If you have the BlueStreak attached as a child to the LauncherMechanism, just get the handle to the LauncherMechanism VESSEL2 interface and call the DetachChild function. No special exports required :thumbup:
 
Well thats encouraging!:)

Looking to the next variation, which will be the multistage Europa:
http://s89.photobucket.com/albums/k207/Notebook_04/Blue Streak/?action=view&current=Europa.jpg

I'd like to re-use _F3 for this, so if it has to be a PARENT (if LauncherMechanism is a CHILD), will I get any problems with the PARENT/CHILD sequence?

I'm guessing from my experience with SC3 that I can build a CHILD/PARENT -> CHILD/PARENT for each stage, finishing with the payload?
Example, _F3 has a PARENT attaching to LMech CHILD, and a CHILD attaching to the Coralie second stage PARENT, and so on.

N.
 
I'd like to re-use _F3 for this, so if it has to be a PARENT (if LauncherMechanism is a CHILD), will I get any problems with the PARENT/CHILD sequence?
You want the rocket to be the child so that when it is attached to the launch pad it stays put, regardless of what the engines are doing (provided the mass of the launch pad is high enough to prevent take-off of course). If you make the rocket the parent, it will either fly away with the launch pad attached to it (not a good look :P) or you will have to do some special tricks to make sure it does not fly away (eg, like increasing the mass until you detach) because attachments do not transfer mass information. The less tricks the better IMHO.

I'm guessing from my experience with SC3 that I can build a CHILD/PARENT -> CHILD/PARENT for each stage, finishing with the payload?
Example, _F3 has a PARENT attaching to LMech CHILD, and a CHILD attaching to the Coralie second stage PARENT, and so on.
I'd advise against using attachments for a multistage vessel. It is much better to build the rocket as one VESSEL with multiple meshes. In the various phases of flight the vessels would be made up like this:

Pre-Launch and First Stage flight: Visual model made up of first, second and third stage meshes (you can have many meshes representing one VESSEL). Mass and CoG corresponding to combined mass and CoG of all three stages. Attached as child of launch pad during Pre-Launch.

Second Stage flight: At sep, remove the first stage mesh from the visual model. Change mass and CoG to correspond to combined mass and CoG of both upper stages. Also at sep, spawn a new vessel, eg, BlueStreak_First_Stage, that has a visual model of just the first stage mesh and appropriate mass and CoG. Getting the position at which to spawn this first stage vessel right is the key to making it look seamless. Watch an AMSO launch with the vessel markers turned on and you will see what I mean.

Third Stage flight: similar to Second Stage.

Payload release: Spawn the payload from the BlueStreak. Adjust third stage mass and CoG as required.
 
thanks again tb, much fod for thought.

I was thinking of attachments as I'd used them in _F2, and I wanted to erect the Blue Streak stage as per this:
http://i89.photobucket.com/albums/k207/Notebook_04/Blue%20Streak/File0027.jpg
http://i89.photobucket.com/albums/k207/Notebook_04/Blue Streak/File0003-3.jpg

and then stack the rest of the stages on the launchermechanism.

2nd stage: Coralie and payload:
http://i89.photobucket.com/albums/k207/Notebook_04/Blue Streak/File0012.jpg
3rd stage:
http://i89.photobucket.com/albums/k207/Notebook_04/Blue Streak/File0015.jpg

but your multi-mesh makes more sense for a multi-stage. Luckily I can put it all off till _F3 is done...

N.
 
I was thinking of attachments as I'd used them in _F2, and I wanted to erect the Blue Streak stage as per this:
Ah, I see. I think the same principle should apply. Have the stages as separate vessels when you are stacking, but combine them into a single vessel once they reach the correct position (or at a user key stroke?).
 
Yes, it should be interesting making it all work...
However thats all in the future, and I suppose a few different scenarios would be needed. Not everyone would be bothered with assembly.

Back to _F3, what fun:)

N.
 
Back
Top