C++/CLI debug support under VS2015 - c++

Using Visual Studio, I have created Excel addin (.xll), where part of the code (the main project) is written in Native C++, but additional static library is written in C++/CLI (I need to use .NET dlls directly). Whole addin is compiled and started in Excel correctly - I can also debug it using Visual Studio 2013, BUT I cannot debug it using Visual Studio 2015. I can breakpoint in the Native C++ code, but when I try to Step Into C++/CLI function, I can see debugger behaves as doing Step Over. I am aware of this article:
https://blogs.msdn.microsoft.com/visualstudioalm/2013/10/16/switching-to-managed-compatibility-mode-in-visual-studio-2013/
but it seems like "Use Managed Compatibility Mode" doesn't work in 2015 (while it works in 2013). Is anyone aware how to make VS2015 work for me?

I had the same problem but it went away. I must have fiddled with a setting but never figured out specifically what it was.
In Tools>Options>Debugging I've got:
"Use Managed Compatibility Mode" : off
"Use Native Compatibility Mode" : on
Also in Project>Properties>Debugging I have:
Debugger Type: Mixed

Related

Visual Studio 2017 wont show c++ template/extansion

I am trying to use Microsoft visual studio IDE to run my c++ code, however, when I go to create a project, I do not see the option for a c++ project. I tried reinstalling the program to see if I could somehow install the package/extension however it just won't seem to come up.
The only templates that appear are in c# or f#.
If someone could please lead me into the right direction so that I can fix this, it would be great. Thank you.
I don't see any mention of C++ in the release notes.
According to this post on MSDN, there is no C++ support in the Mac version of Visual Studio. It contains links to instructions for using Visual Studio Code, as well as the option to install a VM running Windows.
Apparently Visual Studio Code supports C++ projects, since it can execute external tools. The Microsoft Visual C++ build tools are free for Windows, but I don't think there is a version for the Mac, so some other external compiler is necessary.

General usage of c++ in visual studio

Is it possible to write a c++ code in Visual Studio without using c++.net?
I'm learning c++ at the moment - Using a book.
But I like the Visual Studio IDE but I don't know if it supports c++ or just c++.net.
I usually create a new (empty) directory and copy the source file(s) into that directory, then when creating the Visual Studio project using the name of the directory. To create a standard C++ console program, choose "... console application", then click on next, clear the check boxes below "empty project", and check "empty project". Once you're into the project, click on project, and "add existing item" to add the source file name(s).
If you want 64 bit mode, you'll need to right click on the project name, then properties, then configuration manager, then new, and select x64. It doesn't matter if you do this for debug or release build, it will set x64 mode for both build modes.
Yes, you can. Visual studio supports two types of C++ applications:
C++/CLI (also called managed C++) - Under Visual Studio project wizard, these kind of projects are grouped under CLR
Native C++ - Under Visual Studio project wizard, these are the projects grouped under Win32, MFC, ATL
Note, however, that you can always turn a project from native to managed and vice versa by going into the project properties and switching on/off the Common Language Runtime Support (/clr), so make sure this option is turned off (No CLR).
Also, be aware that different C++ compilers not always support the same C++ features (even if they are part of the standard), and some C++ compilers implement their own extensions to the language. In the case of Visual Studio, it defines Microsoft Extensions to C and C++ that can be turned off (Za) to be more ANSI compliant.
Visual Studio is actually notoriously late when it comes to supporting the C++ standard. Even now, some C++11 features are not part of the latest Visual Studio so keep this in mind when wondering why something you read in a book does not work in Visual C++.
One last note. Avoid using ATL and MFC if you try to be cross-platform compatible. Even if you don't want to be cross-platform compatible, ATL and MFC are only supported by Visual C++ and using them will lock you to using Visual Studio. Now with the Community Edition, both ATL/MFC are available for free if you are an independent developer or a small company, while historically, ATL/MFC were paid-version only as they are not part of Visual Studio Express editions.
It depends on which variant of Visual Studio you're using. If Express edition you want "for Desktop" in order to do ordinary standard C++. With full Visual Studio there's no problem.

Building Emscripten Project with an IDE?

I've recently discovered Emscripten as a way of writing native code and running it in a web browser.
I'd like to work with an IDE for code completion and be able to customize the build process for Emscripten.
The only tool I've found to build Emscripten this way is with VS2010 which has very limited c++11 support so that's not desirable.
I thought of using VS2013 and writing a custom build script but I've never used VS so I'm unsure how to do that or if it's even possible.
What are people using to work with Emscripten?
Not sure if you are aware of this. On the requirements page, the following is stated:
Visual Studio 2010 is required! Visual Studio 2012 and Visual Studio 2013 do not correctly compile Fastcomp. This issue will be fixed (eventually) when Fastcomp is migrated to use a LLVM 3.4 or later.

Native C++ programs in Visual Studio

I'm confused in my understanding of the relationship between Visual Studio and .NET. I want to write a C++ application, but not a ".NET C++" application. By this, I mean that my understanding is that everything built in .NET land gets compiled to a CLI-compatible intermediary code (just like "JVM" languages like Java and Groovy compile to the same bytecode).
But I don't want my app compiled to an intermediary bytecode...I want it compiled down to raw binary!
Does Visual Studio do this? Or is .NET forced down my throat the minute I choose VS as my C++ IDE? If so, whats a "raw C++" alternative to VS?
Thanks in advance!
Visual Studio is an IDE, which is orthogonal to any specific language or compiler.
Visual C++ is a compiler that supports the C, C++, and C++/CLI languages.
In Visual Studio, create a Visual C++ project from one of the 'Win32' (as opposed to 'CLR') project templates and your program won't have any .NET dependency.
there is that /clr compiler switch when compiling a c++ app. Without it, you will get a pure native binary and cannot use any. NET specific features within your code.
By selecting a project template or by setting the corresponding project property, VS will automatically choose if the switch is on or off.
Visual Studio still supports 100% native C++ applications as will as managed applications. When creating a new app just choose the "Win32 Console Application" to create a native application. For existing applications you can change / verify by doing the following
Right Click on the project and select "Properties"
Navigate to Configuration Properties -> C/C++
Make sure that "Common Language Runtime Support" is set to "No Common Language Runtime Support"

Is the MSTestExtensions project compatible with VS2010?

We've been using VS2008 and soon will be upgrading to VS2010. I have been using MSTestExtensions for it's database rollback feature for integration tests via MSTest. It seems the open source project has not been having much contribution in the last 2-3 years. Thus, I was curious if anyone has tried to use it with VS2010. Does it still work?
Seeing that you can download the source code to the MSTestExtensions project, it might be worth getting the source and building it in VS 2010. Since the MSTest functionality in VS 2010 has not changed that much since VS 2008 (from what I've read), I would say you have a good possibility of getting the code to build. The resulting binaries could be used for your VS 2010 development (hopefully! :)
I can now verify that the 2008 MSTestExtensions dll does indeed work with Visual Studio 2010.
The only thing is it didn't show up in the list of .net references so I had to manually browse to where it was installed. In my case that was to C:\Windows\assembly\GAC_MSIL\MSTestExtensions. Just add a reference to the version 2.0 dll (VS 2008 version) and it will work as expected.