Visual Studio, library source when debugging - visual-studio

Just maybe trivial, maybe stupid question.
I have two solutions:
1) The main app
2) The sets of libraries
The first solution is accessible via the SourceSafe with the dll files(from the 2 solution) placed in its lib directory.
In order to debug the main app with the ability to jump to the source code of the libraries from the 2 solution Do i have to add the projects from 2 to 1? And Is it the only one option?
Even if I added (if it is possible to add with omitting certain projects in the SC) projects from 2 to 1 solution, I would have to change dll references in the app which is controlled via SourceSafe and I would mess it up for my colleagues.
What Can I do?

To debug all you need is that all third-party dlls have their corresponding pdb in the same directory. When you step into a third-party function for which you have pdb, Visual Studio will prompt you for the source, At this time you may browse to a local or network share where you have a the third-party source.

The place I used to work for used .NET Reflector to step through external DLLs. It's a Visual Studio add-on that uses reflection to allow you to debug through the source code of .NET binaries (actually their MSIL reversed equivalents) and is pretty simple and efficient when it comes to non-obfuscated code.

Related

Convert Visual Studio exe-project in lib-project

I am developing an application (exe) in c++ with visual studio. I am not that experienced. Now, I came to the conclusion that it might be better to compile the general program functionality into an lib or dll file, which I then would use in a different visual studio project, where I basically implement the functions from the lib files for the more specific purpose of my project. With my current setup, I get the impression that I am starting to mix the gerenal functionality with the specific problem statement.
Basically I am asking for a way to convert my current full visual studio project into two separate projects, one for the gerenal lib files representing the classes and program modules, and one for the specific problem implementation. Is it possible to also keep everything in one visual studio project (edit: solution) for convenience?

Attach sources to binary library in Visual Studio debugger?

In Eclipse, it's possible to "match" a zip archive (or a folder) containing sources to a compiled jar. This allows the debugger to do source-stepping on the associated sources with relatively low ceremony.
I'd like to do something similar in Visual Studio, given a dll, its associated pdb and the source code in some form.
The problem I'm trying to fix is that I'm creating a tools library that is delivered to QA in binary form and used in different projects (made of automatically generated code, FWIW). The QA engineers then need to be able to do source stepping inside the library method calls.
A related problem is, the QA engineer can't use "Go to definition" on a library method in the VS editor while not debugging.
For problem #1, the QA engineer currently needs to get the appropriate sources from the SVN server and manually specify their location to the debugger.
From what I can tell, in Visual Studio (and other debuggers) the traditional way is to use a symbol server which would provide both the pdbs and the sources, having only the library dll as input.
I know about SymbolSource.org - it uses 'NuGet symbol packages' (which I currently generate) but management won't agree to host off-site. I had a feeble attempt to set up their free source server offering locally, without much success.
So... is there an easier way (a la Eclipse)?

Where on Earth are the Visual Studio 2010 MFC build scripts?

Does anyone know where the Visual Studio 2010 (Service Pack 1 to be specific) build scripts are (I assume they're .vcxprojs these days, but can find neither these of .mak's).
I urgently need to build a instrumented set of release mode MFC DLLs that use the same coupling as the standard parts (i.e. these need to be extention DLLs - just pulling the MFC sources directly into the project is not going to hack it).
Any help pointers to the build scripts would be super helpful.
I don't understand your need. Maybe you simply need to use MFC in a static lib configuration?
Try 'Use MFC in a Static Library' on project settings.
If you are writing a dll maybe this help:
Regular DLLs Statically Linked to MFC

Visual Studio 2010 Runtime Libraries

I wrote a tool that many users would use on their computers. I noticed however, that users who do not have visual studio installed, cannot open my executable. The error says that msvcp100.dll is missing. I found in internet a redistributable package from microsoft, that should apparently provide these dlls. My question is: is there another way to bypass this problem? Something like an option in the project properties?
Yes, you can change a compiler setting to link the C++ standard library classes into your program instead of having a dependency on the DLL. Right-click your project in the Solution Explorer window, Properties. Switch to the Release configuration (upper left). C/C++, Code Generation, Runtime Library setting. Select /MT.
Only do this when you only have a single monolithic EXE. When you use your own DLLs then you really need msvcr100.dll and msvcp100.dll so that the runtime library gets shared between all modules.
It is part of C++ runtime and the target machine needs it. THere are couple of ways to address it.
Please check following link from Microsoft MCVCP100.DLL

Can .dll's be automatically released with main executable?

Is there any way in Visual Studio or something else that allows the programmer to export the main executable with the dynamic libraries without the need to copy manually some important .dll's from system32 or somewhere else?
For example, OpenGL programs need (beside glut32.dll and opengl32.dll) msvcr100.dll to run.
Is there any efficient or professional way of deploying applications that use dynamic libraries?
There are two ways to do this in Visual Studio Setup and Deployment project:
Project - Properties - Prerequisites.
Project - Add - Merge Module.
The second way is more flexible and may be used for third-party merge modules, not included in Prerequisites dialog.
Of course, if you don't have Setup and Deployment project yet, create one for your application.

Resources