Create a Visual Studio Extension with minimal impact on VS startup performance

The good news: It’s very easy to create an extension in Visual Studio. The bad news: It’s also easy to make that extension have an adverse effect on the start time of Visual Studio. Let’s examine how we can mitigate the impact on Visual Studio performance. Make sure your VS Installation has installed Extensibility by…

0

Getting started with Windows Internet of Things (Windows IoT)

With just a few items you can get started building apps for Windows Internet of Things using VB, C# or C++ on a Raspberry Pi 3. The Pi is a small quad core 64 bit ARM processor clocked at 1.2 GHz. It has built in blue tooth, WiFi, Ethernet, HDMI, and 4 USB ports. Read…

0

Cannot open include file: ‘metahost.h’: No such file or directory

You might upgrade your Visual Studio Project to VS 2017 and you might get errors like: 1>c:\memspect\vsassert\pch.h(20): fatal error C1083: Cannot open include file: ‘metahost.h’: No such file or directory On  machine with an older version of Visual Studio, I found metahost.h at: c:\Program Files (x86)\Windows Kits\8.1\Include\um\metahost.h Looking at the file, I see that there…

0

It’s easy to use Windows Hooks, even from C#

Microsoft Windows is based on showing windows of data to the user (duh). An application can create windows with which to interact with the user. Every window has a Window Handle, which is used just like an ID number. The Windows OS communicates with the application windows via Windows Messages. For example, when you type…

0

Automatically open Visual Studio Projects and Solutions using IMessageFilter

I wanted to learn more about what an IMessageFilter is and how it behaves. So I wanted to have some sample code that used it to demonstrate its behavior. So I wrote a program that starts Visual Studio, calls some properties and methods (like Get Version and MainWindow.Activate)  and then opens a solution of one…

0

Wireless HeadPhone Adventures

I wanted to get wireless headphones to listen to music. At the office I have 3 desktops, with a range of power. The most powerful has 3 monitors connected. The next has 1, while a 3rd doesn’t have any (I Remote Desktop to it). I run various flavors of Windows Server 2012 and host many…

2

See how often your code runs and how much time it takes

Last post I showed how to create your own CLR profiler. This time, we’ll add a little code to run whenever a managed method is entered and exited. We’ll do this by signing up for the  Enter and Leave function hooks by calling ICorProfilerInfo2->SetEnterLeaveFunctionHooks2 . This will allow us to count how many times a…

0

Call managed code from your C++ code

Over the decades of writing code, I’ve found that writing managed code (C#, VB) is much more productive than native code (C++). This is especially true due to the capabilities of the .Net framework libraries that can be used easily from managed code. For a given programming task, the number of lines of code is…

4

Cartoon animation works great on Surface Pro

I showed my 9 year old son a cool drawing program called Physamajig, in which users can draw objects, which behave like real physical objects, including reacting to gravity, friction, and bounce. He was having fun with it on my Surface RT and it reminded me of another program. Years ago (around 1981) when I…

1

The Visual Studio Feedback tool

  Sometimes when you use Visual Studio, or any application on a computer, there’s a notable pause when you try to do something. For example, trying to access a file on a network share somewhere, perhaps on a slow connection, the application will seem to be unresponsive for a few seconds. Sometimes, it’s not clear…

1