How to link NuGet package to a native C++ application using CMake and Visual Studio

The Microsoft.Web.WebView2 component is distributed through the Nuget package repository (https://www.nuget.org). 

How to link it to a native C++ project that uses CMake and is compiled using Visual Studio without vcpkg?

Monitoring the external interface (UL / DL) of a Keenetic router in a desktop widget (Rainmeter Plugin)

Keenetic Rainmeter Plugin

Once, I wanted to see a graph of my Keenetic Viva (KN-1910) router's WAN channel load right on my Windows 10 desktop.

Having found no ready-made solutions, I started looking for a desktop widget program that would let me create custom widgets. I liked the open-source program Rainmeter.

After reading the documentation on creating widgets (called "skins" in their terminology) and external plugins, I wrote a plugin in C++. The plugin communicates with the router via a REST API.

How to pass multiple files to shell context menu command (Windows Explorer)

You can achieve it with my program called singleinstance (source code). No shell extensions involved.

The main idea is that one instance of my program is launched for each file you select. It checks if another instance of the singleinstance program is running, and uses Inter-Process Communication to notify the existing instance that other files have been selected.

What an ideal C++ programmer should know, in a vacuum

Many companies often have unreasonable requirements for programmers.

Here's what an ideal C++ programmer job posting might look like:

1. C++, the standard, Stroustrup/D&E/Josuttis, Dewhurst/Meyers/Sutter, RAII, the rule of three, exception safety, Alexandrescu/Abrahams-Gurtovoy, type erasure, CRTP, NVI, SFINAE, Koenig lookup, Duff's device, Boost, Czarnecki-Eisenecker, TR1, TR on C++ performance, the Stepanov test, the forwarding problem, SPECS, C++0x

2. Compilers, standard implementation quirks, implementation limits, intrinsics, differences between standard libraries (containers, rand), ABI, implementation of virtual functions, virtual inheritance, exceptions, RTTI, switch statements, function and member pointers; optimizations, copy elision (RVO, NRVO), sizeof on different platforms, compiler and environment defines, __declspec, compiler flags, empty-base optimization, static and dynamic linking, name mangling, distributed compilation, precompiled headers, single compilation unit, (strict) aliasing/restrict, inline/_forceinline, volatile

3. Multithreading, the dining philosophers, deadlock/race condition/starvation, atomicity, processor lock instructions, CAS or LL/SC, wait/lock/obstruction-free, the ABA problem, writing lock-free containers, spin-locks, TLS/per-thread data, OpenMP, MPI, map-reduce, critical section/mutex/semaphore/condition variable, WaitForSingleObject/WaitForMultipleObjects, green threads/coroutines, pthreads

Deploying Windows applications on Linux(Wine) with InnoSetup

First, we need to detect Wine in the InnoSetup script.

function LoadLibraryA(lpLibFileName: PAnsiChar): THandle;
external 'LoadLibraryA@kernel32.dll stdcall';
function GetProcAddress(Module: THandle; ProcName: PAnsiChar): Longword;
external 'GetProcAddress@kernel32.dll stdcall';

function IsWine: boolean;
var  LibHandle  : THandle;
begin
  LibHandle := LoadLibraryA('ntdll.dll');
  Result:= GetProcAddress(LibHandle, 'wine_get_version')<> 0;
end;