Cannot locate ECManGen - c++

I am wanting to write unmanaged C++ code that reads from and writes to the event log. I am working with VS2017 and Windows 10. Everything I have read states that there is a utility ECManGen that is used to create the manifest file that is then run through the message compiler (mc). I have the latest Windows 10 SDK installed. According to what I have read, the executable is in the Bin directory under the SDK. I have scanned my entire drive and have not been able to find the utility. Has the utility been deprecated for something else? Is there somewhere I can obtain the utility? It does not seem to be available for download from Microsoft as a component.

ecmangen was removed from the Windows 10 SDK starting with version 10.0.16299.15. If you install an older version of the SDK (side-by-side installation is supported, so you can keep the newer versions as well), it will be available again.

Related

How to set version of a Qt application (made by QtIF)?

Just noticed a File version (4.2.0.0) from a Qt application, when mouse goes over the file. However that seems to be the QtIF version, not my application version.
How to set that (mouser over) version of a Qt application (made by QtIF)?
This may be considered the expected behavior (f.ex. when used as an online installer), as the installer is able to install multiple versions of your program and/or upgrade your installation once a new version of your software becomes available. So, the installer is not directly related to a specific version of your software. See for example the Qt installer itself.
If you really want to control the version number, you should compile the installer from source and change the version string of the installer itself by slightly modifying the source code. In case you use the installer as a pure offline installer, this may indeed be appropriate.

d3dx12.h gives a bunch of errors

I'm trying to learn DirectX 12 and i found out these tutorials on github. I downloaded everything and i tried to run the HelloWindow project. I linked the d3d12.lib in Debug->Options->Linker->Input. Unfortunately, it gives me a bunch of errors from d3dx12.h. For most of them, Intellisense says to include d3d12.h even if i already did it. For example, D3D12_RESOURCE_DESC1 is undefined and all his attributes too etc. Did i missed something if yes pls help me.
You are using the 'latest' copy of D3DX12.H which requires you use the 'latest' version of the Windows 10 SDK (19041). If D3D12_RESOURCE_DESC1 is undefined, you are using an older Windows 10 SDK.
Note that there are three different options for fixing this mismatch:
Install the latest Windows 10 SDK (19041). For VS 2019, this is done by running Visual Studio Installer and selecting the new Windows 10 SDK as a component. For VS 2017, you need to run the standalone installer. VS 2015 and earlier are not supported.
Use a version of the D3DX12.H utility header that supports older SDKs. I maintain a version of the 'latest' D3DX12.H header that contains a bunch of preprocessor conditionals so that it will support Windows 10 SDK (14393) or later. That happens to be last version of the Windows 10 SDK to support VS 2015. Obtain it from GitHub: directx-vs-templates.
Use GitHub DirectX-Headers: A new option is to get the latest headers including D3DX12.H as a set from GitHub. You still need a Windows 10 SDK for the link libraries.
See this blog post for details on why D3DX12.H is not part of the Windows 10 SDK.
The samples on DirectX-Graphics-Samples in the main/master branch assume you are using the latest Windows 10 SDK (19041).
As you are new to DirectX 12, you may want to take a look at DirectX Tool Kit for DX12 as a more gentle introduction to the latest version of the API.

How to get installed version of Microsoft Visual C++ Redistributable(x64) in mfc application

I working on mfc application in which I need to check currently installed version Microsoft Visual C++ Redistributable.
Is there any way?
Each VS Version has its own redistributable files and they are named with a version number in the name.
So there is no "current" version. There may be several installations for different VS-Versions.
Usually the files are installed in the Windows\System32 directory for 64bit. So lookup the file you need and search for (i.e. MFC140u.dll) and you can determine it's version.
Also some programs may have a local copy of the runtime DLLs in their application directory...
I’ve written an application that inspects the customer installation. It works somewhat like the Microsoft Troubleshooters in that it identifies certain information about the user installation so that our tech support people can identify a potential problem with the customer installation. One of the things it reports on is the VC redistributables that are installed.
I accomplish this by interrogating the following LOCAL MACHINE registry key:
SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall
The code iterates through the sub-keys looking for a match on the “DisplayName” attribute of each sub-key. I look for “Microsoft”, “Visual”, “C++”, and “Redistributable”. If all strings are found, I collect the “DisplayVersion” attribute and report it to a dialog.
While this scheme will not indicate the "current" version, it should provide access to all versions that are installed.

iads.h / VS2005 / W2003 SP2 - which SDK and what are the side-effects?

I'm trying to compile someone elses C++ program using VS2005 on Windows 2003 (SP2).
The compile fails because it can't find iads.h
Which SDK should I install to get this header ?
When I install the SDK is there a danger I might break something already in use ? As far as I can tell the W2003 has no SDK's installed but if it did would installing a different one cause problems ?
You need to the windows sdk. The SDK doesn't install like a regular application. Just because you "installed" it it doesn't change any settings in your compiler.
You will still have to add the directories to header files and libraries in the vs settings page.
You can have multiple version of the windows sdk, you just need to update the directories in the vs options page.
It should be found in the vc\PlatformSDK\include folder. If not then you need to check your installation or you can install the Windows SDK.
The normal Windows SDK includes <iads.h>. I virtually never run a copy of Windows without an SDK installed, so I'm probably not in a good position to say what might work differently if it wasn't, but not much seems broken to me...

How to install MinGW correctly on Windows

I have recently started learning C++, but I require a compiler. I have tried the one packaged with Code::Blocks, but I have been told it is out of date.
I have tried reading the instructions on the website, but I simply don't know which files to download and un-zip. Is there a list of files to download? (latest version) and a folder structure I need?
I was the person that pointed you at the more up-to-date version at Twilight Dragon. The file you want there is http://sourceforge.net/projects/tdm-gcc/files/TDM-MinGW%20Installer/1.908.0/tdm-mingw-1.908.0-4.4.1-2.exe/download which is a Windows binary installer - you just run it. Note that you don't actually need to do this - the version that comes with Code::Blocks will work OK for someone starting to learn C++.
I recommend using a pre-packaged MinGW that includes some common APIs like Boost, SDL etc: http://nuwen.net/mingw.html
If I remember correctly, the only thing you must do to get it working is to modify Windows's PATH environment variable.
edit: OpenAL is not included in this package.
Here are some instructions to have a MinGW setup that I used to build Octave modules.
I have switched to using the build environment for msysgit. Just download the netinstall file and it will setup GCC, Make, etc. along with Git.