[Please do not mail me a copy of your followup]
James Kuyper <
james...@alumni.caltech.edu> spake the secret code
<pfonmu$bp3$
1...@dont-email.me> thusly:
>Would anyone care to recommend some texts I should study to cover the
>other items on those lists?
I'll give it a shot.
>Requirements:
>* Windows and Visual Studios 2015 working knowledge.
There used to be books on VS, before the web was used to look things
up, but generally your best bet now is to rely on the MSDN documentation
in order to get the details. Use a tailored google search to avoid
stuff from the "Microsoft Community" sites. IMO, those community
"answers" are worthless for developers. Stick to the MSDN
documentation or even use the built-in help links (which just invoke
the web browser to a URL now anyway).
Aside from familiarizing yourself with keyboard shortcuts and menus,
etc., the big difference here is going to be the build sytem. If
you're using CMake, then you won't care about how VS organizes stuff
because you'll be generating project/solution files from CMake.
Otherwise, the basics are:
- A solution file (*.sln) is a bag of projects. Commit this file.
- A solution options file (*.suo) is custom options you have set for
your solution, like which project should be started when you launch
the debugger. Do not commit this file. Later editions of VS put
stuff in a .vs folder. Similarly, do not commit this folder.
- A project file (*.vcxproj) is a bag of source files along with
commands for how to build them into a target: library (static or
dynamic) or executable (console of Windows subsystem).
- In C++ projects, the view of files in the Solution Explorer is not
necessarily 1-to-1 with the organization of files on disk. While
this is typical, it is not required. The *.vxproj.filters files
hold the mapping from files on disk to files in the Solution
Explorer. Commit these files.
- Per-project user settings are stored in *.vcxproj.user files; don't
commit these files.
- All compile flags and options for a target and the corresponding
source files are found through the Properties item on the context
menu for the item (project or file) in the Solution Explorer pane.
- VS defines a bunch of variables for a solution and a project that
allow you to parameterize the compiler options. You will see these
in the settings as $(SolutionDir).
- VS organizes the build into different settings for every combination
of "Platform" (e.g. Win32 and x64) and "Configuration" (e.g. Debug,
Release). When changing settings through the Properties dialog,
make sure you have the correct setting for Platform and
Configuration from the drop-down menu or you will be confused why
your changes aren't taking effect. The most common use case is to
select "All Configurations" and "All Platforms" so that the settings
are applied uniformly.
- While the Properties dialog box is open, you can click on items in
the Solution Explorer pane to switch the settings shown to you in the
Properties box. This is a little unexpected because the Properties
dialog box is modal.
- Bags of common compiler settings can be parameterized into "Property
Sheet Pages". This is more of an advanced thing, but helps you keep
funky settings consistent between files and projects.
- Dependencies between targets are manipulated through the
"References" folder in Solution Explorer. Use "Add Reference..."
from the context menu on the References folder to setup
dependencies between targets.
- If your Solution has lots of targets, it can be useful to group them
into "Solution Folders" just for organizing purposes. It is
cosmetic only and has no bearing on how/when projects are built.
Solution Folders are recorded in the .sln file, so they persist in
source control.
>Desired:
>* Prior experience with M&S software coding.
>* Prior experience with building M&S environment/terrain generators.
This sounds really market specific -- "modeling and simulation
environment/terrain generators"? Any chance your new position is with
Rockwell Collins? :-) I don't have specific advice here.
>* Qt Graphical User Interface (GUI) Software experience.
In my experience, once you learn one GUI toolkit, they are all the
same more or less. Qt has some things that make it a little funky
like the moc processor that generates signal/slot boiler plate code
for wiring up the events (signals) emitted by UI elements with the
handlers (slots) that process the events. Unless you want to be
disgusted, don't dig into the Qt implementation too deeply :-).
However, unlike VS there are good books out there for Qt. Ones I have
read and would recommend are:
"C++ GUI Programming with Qt 4" by Jasmin Blanchette, Mark Summerfield
<
https://amzn.to/2JBCCV8>
"Advanced Qt Programming: Creating Great Software with C++ and Qt 4"
by Mark Summerfield
<
https://amzn.to/2t3TkFB>
The titles are self-explanatory. Both have Amazon "Look Inside"
previews. You probably won't need the advanced book unless you need
to really dig into the model/view framework used in Qt.
--
"The Direct3D Graphics Pipeline" free book <
http://tinyurl.com/d3d-pipeline>
The Terminals Wiki <
http://terminals-wiki.org>
The Computer Graphics Museum <
http://computergraphicsmuseum.org>
Legalize Adulthood! (my blog) <
http://legalizeadulthood.wordpress.com>