.dll Question how do i get started on making DLL's?

i do have VC++ '08 express edition

and when i open it from the start menu it shows a "start page" with lot's of new about VC++ and other things as well as a few other windows like a projects page and solution explorer


That IS the IDE!!!

Go to File ===> Open ===> Project/Solution and open the project you want to.
 
thank you, i never would have gotten that one on my own.

---------- Post added at 04:06 PM ---------- Previous post was at 12:02 PM ----------

i have gotten to a point where all i need is to move a bunch of .h files to the OrbiterSDK/include file. if i just move the required from the Microsoft platform SDK file to that address then is stops asking for it. should i just go ahead and move all the platform SDK .h files? it would be much faster than moving them one at a time

---------- Post added at 11:07 PM ---------- Previous post was at 04:06 PM ----------

i think i broke something, now i'm getting lot's of errors and still have not gotten it compiled and all i did was change the additional include directories from an incorrect path to the proper path of: "C:\Program Files\microsoft platform sdk\v6.1\Include"


1>------ Rebuild All started: Project: Mustang testing, Configuration: Release Win32 ------
1>Deleting intermediate and output files for project 'Mustang testing', configuration 'Release|Win32'
1>Compiling...
1>Mustang testing.cpp
1>.\Mustang testing.cpp(48) : error C2470: 'testing' : looks like a function definition, but there is no parameter list; skipping apparent body
1>.\Mustang testing.cpp(55) : error C2653: 'testing' : is not a class or namespace name
1>.\Mustang testing.cpp(55) : error C2146: syntax error : missing ';' before identifier 'clbkSetClassCaps'
1>.\Mustang testing.cpp(55) : error C2182: 'Mustang' : illegal use of type 'void'
1>.\Mustang testing.cpp(63) : error C2144: syntax error : 'void' should be preceded by ';'
1>.\Mustang testing.cpp(63) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>.\Mustang testing.cpp(63) : error C2653: 'testing' : is not a class or namespace name
1>.\Mustang testing.cpp(63) : error C2146: syntax error : missing ';' before identifier 'clbkSetClassCaps'
1>.\Mustang testing.cpp(63) : error C2182: 'Mustang' : illegal use of type 'void'
1>.\Mustang testing.cpp(63) : error C2086: 'int Mustang' : redefinition
1> .\Mustang testing.cpp(55) : see declaration of 'Mustang'
1>.\Mustang testing.cpp(64) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>.\Mustang testing.cpp(67) : error C3861: 'SetSize': identifier not found
1>.\Mustang testing.cpp(69) : error C3861: 'SetEmptyMass': identifier not found
1>.\Mustang testing.cpp(70) : error C3861: 'SetCW': identifier not found
1>.\Mustang testing.cpp(71) : error C3861: 'SetWingAspect': identifier not found
1>.\Mustang testing.cpp(72) : error C3861: 'SetWingEffectiveness': identifier not found
1>.\Mustang testing.cpp(73) : error C3861: 'SetCrossSections': identifier not found
1>.\Mustang testing.cpp(74) : error C3861: 'SetRotDrag': identifier not found
1>.\Mustang testing.cpp(75) : error C3861: 'GetFlightModel': identifier not found
1>.\Mustang testing.cpp(76) : error C3861: 'SetPitchMomentScale': identifier not found
1>.\Mustang testing.cpp(77) : error C3861: 'SetBankMomentScale': identifier not found
1>.\Mustang testing.cpp(79) : error C3861: 'SetPMI': identifier not found
1>.\Mustang testing.cpp(80) : error C3861: 'SetTrimScale': identifier not found
1>.\Mustang testing.cpp(81) : error C3861: 'SetCameraOffset': identifier not found
1>.\Mustang testing.cpp(82) : error C3861: 'SetLiftCoeffFunc': identifier not found
1>.\Mustang testing.cpp(83) : error C3861: 'SetDockParams': identifier not found
1>.\Mustang testing.cpp(84) : error C3861: 'SetTouchdownPoints': identifier not found
1>.\Mustang testing.cpp(87) : error C3861: 'CreatePropellantResource': identifier not found
1>.\Mustang testing.cpp(111) : error C3861: 'AddExhaust': identifier not found
1>.\Mustang testing.cpp(113) : error C3861: 'AddExhaust': identifier not found
1>.\Mustang testing.cpp(116) : error C3861: 'CreateThruster': identifier not found
1>.\Mustang testing.cpp(117) : error C3861: 'CreateThrusterGroup': identifier not found
1>.\Mustang testing.cpp(118) : error C3861: 'AddExhaust': identifier not found
1>.\Mustang testing.cpp(120) : error C3861: 'CreateThruster': identifier not found
1>.\Mustang testing.cpp(121) : error C3861: 'CreateThrusterGroup': identifier not found
1>.\Mustang testing.cpp(122) : error C3861: 'AddExhaust': identifier not found
1>.\Mustang testing.cpp(123) : error C3861: 'AddExhaust': identifier not found
1>.\Mustang testing.cpp(125) : error C3861: 'AddExhaustStream': identifier not found
1>.\Mustang testing.cpp(126) : error C3861: 'AddExhaustStream': identifier not found
1>.\Mustang testing.cpp(127) : error C3861: 'AddExhaustStream': identifier not found
1>.\Mustang testing.cpp(128) : error C3861: 'AddExhaustStream': identifier not found
1>.\Mustang testing.cpp(129) : error C3861: 'AddExhaustStream': identifier not found
1>.\Mustang testing.cpp(130) : error C3861: 'AddExhaustStream': identifier not found
1>.\Mustang testing.cpp(132) : error C3861: 'CreateThruster': identifier not found
1>.\Mustang testing.cpp(133) : error C3861: 'CreateThruster': identifier not found
1>.\Mustang testing.cpp(134) : error C3861: 'CreateThruster': identifier not found
1>.\Mustang testing.cpp(135) : error C3861: 'CreateThruster': identifier not found
1>.\Mustang testing.cpp(136) : error C3861: 'CreateThruster': identifier not found
1>.\Mustang testing.cpp(137) : error C3861: 'CreateThruster': identifier not found
1>.\Mustang testing.cpp(138) : error C3861: 'CreateThruster': identifier not found
1>.\Mustang testing.cpp(139) : error C3861: 'CreateThruster': identifier not found
1>.\Mustang testing.cpp(140) : error C3861: 'CreateThruster': identifier not found
1>.\Mustang testing.cpp(141) : error C3861: 'CreateThruster': identifier not found
1>.\Mustang testing.cpp(142) : error C3861: 'CreateThruster': identifier not found
1>.\Mustang testing.cpp(143) : error C3861: 'CreateThruster': identifier not found
1>.\Mustang testing.cpp(144) : error C3861: 'CreateThruster': identifier not found
1>.\Mustang testing.cpp(145) : error C3861: 'CreateThruster': identifier not found
1>.\Mustang testing.cpp(151) : error C3861: 'CreateThrusterGroup': identifier not found
1>.\Mustang testing.cpp(157) : error C3861: 'CreateThrusterGroup': identifier not found
1>.\Mustang testing.cpp(163) : error C3861: 'CreateThrusterGroup': identifier not found
1>.\Mustang testing.cpp(169) : error C3861: 'CreateThrusterGroup': identifier not found
1>.\Mustang testing.cpp(175) : error C3861: 'CreateThrusterGroup': identifier not found
1>.\Mustang testing.cpp(181) : error C3861: 'CreateThrusterGroup': identifier not found
1>.\Mustang testing.cpp(185) : error C3861: 'CreateThrusterGroup': identifier not found
1>.\Mustang testing.cpp(189) : error C3861: 'CreateThrusterGroup': identifier not found
1>.\Mustang testing.cpp(193) : error C3861: 'CreateThrusterGroup': identifier not found
1>.\Mustang testing.cpp(197) : error C3861: 'CreateThrusterGroup': identifier not found
1>.\Mustang testing.cpp(199) : error C3861: 'CreateThrusterGroup': identifier not found
1>.\Mustang testing.cpp(200) : error C3861: 'CreateThrusterGroup': identifier not found
1>.\Mustang testing.cpp(203) : error C3861: 'AddMesh': identifier not found
1>.\Mustang testing.cpp(204) : warning C4508: 'clbkSetClassCaps' : function should return a value; 'void' return type assumed
1>.\Mustang testing.cpp(216) : error C2061: syntax error : identifier 'Mustang'
1>.\Mustang testing.cpp(224) : error C2146: syntax error : missing ')' before identifier 'testing'
1>.\Mustang testing.cpp(224) : error C2541: 'delete' : cannot delete objects that are not pointers
1>.\Mustang testing.cpp(224) : error C2059: syntax error : ')'
1>Build log was saved at "file://c:\Documents and Settings\Austin\My Documents\Visual Studio 2008\Projects\Project1\Mustang testing\Mustang testing\Release\BuildLog.htm"
1>Mustang testing - 74 error(s), 1 warning(s)
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========
 
i have gotten to a point where all i need is to move a bunch of .h files to the OrbiterSDK/include file. if i just move the required from the Microsoft platform SDK file to that address then is stops asking for it. should i just go ahead and move all the platform SDK .h files? it would be much faster than moving them one at a time

No, don't move them. All you will do is make a mess of the OrbiterSDK. Leave them where they were installed. The fact that you think you need to move them clearly shows that you have not read and followed either the OrbiterWiki tutorial or my instructions, specifically:
Yes, which you do by getting the Platform SDK, adding the include path and the library path and adding the libraries (all those links are from the same document we have been talking about for the last four posts - please read it all).

i think i broke something, now i'm getting lot's of errors and still have not gotten it compiled and all i did was change the additional include directories from an incorrect path to the proper path of: "C:\Program Files\microsoft platform sdk\v6.1\Include"


1>------ Rebuild All started: Project: Mustang testing, Configuration: Release Win32 ------
1>Deleting intermediate and output files for project 'Mustang testing', configuration 'Release|Win32'
1>Compiling...
1>Mustang testing.cpp

We are trying to help you but you are not doing what we are asking you to do. You are not using the Shuttle PB code:
Test your config by trying to compile the ShuttlePB - it is known source code and forum members are more likely to be able to debug your config if you are testing with it.
Do what RisingFury said to do and go to File|Open|Project/Solution and choose Orbiter\OrbiterSDK\samples\ShuttlePB\ShuttlePB.dsw. VC++ will ask if you want to convert the project, choose yes and let it does its thing. After it has opened, go back to the OrbiterWiki tutorial and configure the project in accordance with the instructions, at least up to and including "Compiling the addon". If you have problems after that, come back and post them here.
 
sorry, i apologize.

i followed the instructions as best as i could but i do not know what to do with the "compiling and adding resource files" section of the orbiterwiki instruction. will i need to do that since i have the 2008 version of VC++? and since it says that it is not required for the ShuttlePB example i went ahead and moved on to compile. and it did not work

1>------ Build started: Project: ShuttlePB, Configuration: Release Win32 ------
1>Compiling...
1>ShuttlePB.cpp
1>Linking...
1> Creating library .\..\..\..\Modules/ShuttlePB.lib and object .\..\..\..\Modules/ShuttlePB.exp
1>Embedding manifest...
1>Project : error PRJ0003 : Error spawning 'mt.exe'.
1>Build log was saved at "file://c:\Orbiter\Orbitersdk\samples\ShuttlePB\Release\BuildLog.htm"
1>ShuttlePB - 1 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========


sorry to bother you so much, but i have no clue what i'm doing.
 
sorry, i apologize.

i followed the instructions as best as i could but i do not know what to do with the "compiling and adding resource files" section of the orbiterwiki instruction. will i need to do that since i have the 2008 version of VC++? and since it says that it is not required for the ShuttlePB example i went ahead and moved on to compile.
That's fine :cheers:

and it did not work

1>------ Build started: Project: ShuttlePB, Configuration: Release Win32 ------
1>Compiling...
1>ShuttlePB.cpp
1>Linking...
1> Creating library .\..\..\..\Modules/ShuttlePB.lib and object .\..\..\..\Modules/ShuttlePB.exp
1>Embedding manifest...
1>Project : error PRJ0003 : Error spawning 'mt.exe'.
1>Build log was saved at "file://c:\Orbiter\Orbitersdk\samples\ShuttlePB\Release\BuildLog.htm"
1>ShuttlePB - 1 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========


sorry to bother you so much, but i have no clue what i'm doing.
Hmm, I haven't seen that one before. mt.exe is used for embedding the manifest in the dll. It should be located somewhere in your Visual Studio install directory but I'm not sure on the structure of that since I am using VS2005. For me, mt.exe is located in "C:\Program Files\Microsoft Visual Studio 8\Common7\Tools\Bin". Just do a search for it with Windows Explorer. Once you have found it, go into VC++, go to Tools|Options|Projects and Solutions|VC++ Directories (again, maybe slightly different for 2008 version). Select Executable files from the drop down list and make sure the directory containing mt.exe is included in that list. If not, add it, try compiling again and report back.
 
Hey man, don't lose heart. It took me about two months, from downloading VC to learning to code, to produce my first .dll. I doubt it will take you that long, so long as you keep referring to the boards for help.

As for your various obstacles... I'm afraid I've been out of the loop for a while. But at least I can offer my encouragement. :)
 
thank you, at least so far it has not been more than a week.

and thank you tblaxland for all your help so far

---------- Post added at 11:51 PM ---------- Previous post was at 09:16 PM ----------

i was reading this thread http://www.orbiter-forum.com/showthread.php?t=7774 should i follow some of the instructions he gives for the 2008 edition?
 
Thanks, I saw those already, hence the suggestions in my earlier post. But for those fixes to work, mt.exe actually needs to be there, which The Shadow says it is not. I Googled around a bit more and this page might be more relevant, specifically the second last post.
 
Since you can't find mt.exe, download it in my attachment (from version 2008) and put it inside "C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin", then try to compile the source again.
 
Last edited:
sweet. it stopped asking for mt.exe, thanks MeDICS!

now i get this:

1>------ Build started: Project: ShuttlePB, Configuration: Release Win32 ------
1>Linking...
1> Creating library .\..\..\..\Modules/ShuttlePB.lib and object .\..\..\..\Modules/ShuttlePB.exp
1>Embedding manifest...
1>Build log was saved at "file://c:\Orbiter\Orbitersdk\samples\ShuttlePB\Release\BuildLog.htm"
1>ShuttlePB - 0 error(s), 0 warning(s)
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========



1 succeeded! thank you everyone! :cheers:
 
oops, just realized. it did not creat a DLL in the Modules file in orbiter, instead it made two files. a .lib file and a .exp. i did a search and only found the modules that exsisted in the base orbiter package and SDK except one with a path of "Modules" and not "C:/Orbiter/modules" as usual
 
oops, just realized. it did not creat a DLL in the Modules file in orbiter, instead it made two files. a .lib file and a .exp. i did a search and only found the modules that exsisted in the base orbiter package and SDK except one with a path of "Modules" and not "C:/Orbiter/modules" as usual
What settings do you have for:

1. Project|Properties|Configuration Properties|General|Output Directory?
2. Project|Properties|Configuration Properties|General|Configuration Type?
 
output is "./Modules"
config is "Dynamic Library (DLL)"
Ok, the config is good. Based on those settings and assuming the ShuttlePB project is in Orbiter\OrbiterSDK\samples\ShuttlePB (it should be), your newly compiled ShuttlePB.dll will be located in Orbiter\OrbiterSDK\samples\ShuttlePB\Modules. Normally, I will compile directly into the Orbiter\Modules directory. To do this change the output directory to "..\..\..\Modules". WARNING: this will overwrite any existing ShuttlePB.dll modules that you have in there WITHOUT backing them up - you need to back them up manually if you want to (I don't normally bother, but it is your call).
 
we got it to make a dll in the folder of choice replaced old PB dll and it works!

everything is looking like it should, thank you for your help guys, never would made it here without you
 
Back
Top