Category Archives: Programming

Posts about programming topics

Two more useful flags for cl.exe

/Be appears to spit out a make file1 snippet that contains the recipe to reproduce a given run of cl.exe. It takes into account variables. Check it out: all: @cd D:\17.7.5\x64 @set INCLUDE= @set LIB= @set LIBPATH= @set CL=/nologo /utf-8 … Continue reading

Posted in C/C++, Reversing, Software | Tagged | Leave a comment

Log build command lines with cl.exe, link.exe and friends

Turns out you can enable detailed logging of the command lines run by MSBuild when building from Visual Studio or the command line. This may not seem like much, until you realize that technically you rarely get to see the … Continue reading

Posted in C/C++ | Tagged , , | Leave a comment

Aiding reproducibility in builds with MS Visual C++

<AdditionalOptions>%(AdditionalOptions) /d1trimfile:”$(SolutionDir)\”</AdditionalOptions> In your .vcxproj file or a Directory.Build.props when passed to the compiler (cl.exe, ClCompile) this should trim the leading path used for __FILE__. The backslash is actually required here, because SolutionDir ends in a backslash itself, but we … Continue reading

Posted in C/C++, Programming, Software | Tagged | Leave a comment

Initialization of static variables (reminder)

Nice blog article which I ran across again recently: gynvael.coldwind.pl/?id=406 PS: probably also worth a look: Paged Out

Posted in C/C++, Uncategorized | Leave a comment

Floating point precision … printf-VS2013-vs.-later-VS-version edition

As developers we probably all know that floating point precision can be an issue1. It can haunt us in various ways. Generally when we talk about precision, though, we probably don’t have in mind printf as the first thing. This … Continue reading

Posted in C/C++, EN, Programming | Tagged , , | Leave a comment

Bash training I gave some years ago

This is a Bash training I gave some years ago, which I had — however — prepared on my own time. Some parts may be outdated. Others may need some touching up, but in general I think it can be … Continue reading

Posted in Bash, EN | Tagged | Leave a comment

That trick I learned with the Visual Studio debugger

Alright, I’ll admit it it: I am in team WinDbg. Sure, I’ll happily use WinDbgX — the “Preview” version of the “new” WinDbg which has been in preview for ages now — but I always was a bit unhappy with … Continue reading

Posted in C/C++, EN, Programming | Tagged , | Leave a comment

dumbin.exe, editbin.exe, lib.exe …

They’re all just slim wrappers around the actual link.exe, not using a common DLL or so, but actually invoking: dumpbin.exe simply invokes “link /dump” and failing that “link.exe link /dump” editbin.exe simply invokes “link /edit” and failing that “link.exe link … Continue reading

Posted in EN, Programming, Reversing | Tagged , | Leave a comment

What does adding masm targets do under the hood

If in Visual Studio when you right-click a C/C++-project in the Solution Explorer, you choose Build Customizations…, the following dialog will be presented: If you check the item for masm, the following changes will be done to your .vcxproj file: … Continue reading

Posted in C/C++, EN, Programming | Tagged , , | Leave a comment

PowerShell

Within the last two years or so I have started to use more and more PowerShell scripting at work and for my private administration tasks on Windows. The thing I find coolest about PowerShell is that you can tap into … Continue reading

Posted in Administration, EN, Programming | Tagged | Leave a comment

Changing local Git clone from master to main

I never understood why Git chose master as the default branch name, MAIN in CVS seemed more sensible, but perhaps Torvald’s animosity towards CVS and SVN plays a role. Presumably trunk in SVN is a reference to the tree-like structure, … Continue reading

Posted in EN, Software, VCS | Tagged | Leave a comment

Running old Ubuntu versions as chroot with proot

Currently I am working on building a modern Clang/LLVM-based toolchain for ancient Ubuntu versions. In order to do that I wrote a few helper scripts I am using in conjunction with proot to run old Ubuntu rootfs1 inside a chroot … Continue reading

Posted in Bash, EN, Linux, Programming, Software, Unix and unixoid | Tagged , | Leave a comment

I’m in love with my Rust, turning angel wings to dust 😁

Sing to the tune of “I wish I had an angel” from Nightwish. The more of Rust I am learning, the more I fall in love with it. Behold this beautiful and expressive use of the match keyword: let leapyear: … Continue reading

Posted in EN, Programming, Rust | Tagged | Leave a comment

youtube-dl

Debian mirror https://git.ghnou.su/mir/youtube-dl https://codeberg.org/polarisfm/youtube-dl https://github.com/github/dmca/tree/416da574ec0df3388f652e44f7fe71b1e3a4701f Article from the Freedom Of The Press Foundation

Posted in /dev/null, EN, Programming, Python, Software | Leave a comment

So you have a WTL project but it’s not a COM server you’re writing?

Well, not exactly surprising if you write a GUI application like my NT Objects. Turns out that ATL forces you to have support for COM server registration, as soon as you use anything derived from CComModule. Doh. And yeah, that … Continue reading

Posted in C/C++, EN, Programming | Tagged , , , , , | Leave a comment

Delay-loading ntdll.lib and others …

In one of my pet projects, NT Objects – or ntobjx in short – I am making use of the delay loading mechanism offered by the Visual C++ toolchain, while at the same time using it on a DLL that … Continue reading

Posted in C/C++, EN, Programming | Tagged , | Leave a comment

Illustrated guide: install Visual Studio 2005 Professional on a modern Windows

Here is a little illustrated guide on how to install Visual Studio 2005 Professional on Windows 10. This guide should actually work the same with Windows versions Vista and newer. I had to retrace the steps for a colleague, so … Continue reading

Posted in EN, Programming, Software | Leave a comment

AgeKey – cheating in Age of Empires I/II and Age of Mythology

As I had already pointed out in 2010 in a German blog entry, a rather famous – in in the German speaking Delphi-sphere at the time – programmer named Nico wrote a little program about 17 years ago which could … Continue reading

Posted in /dev/null, Delphi, EN, Programming | Leave a comment

ntobjx jetzt auch auf Deutsch

Wie schon im April erwähnt, hatte ich ntobjx als besseren quelloffenen Ersatz für WinObj von Sysinternals/Microsoft gestartet. Ich hab nun die Dokumentation ins Deutsche übertragen und seit gestern steht ein – wie immer mit Signatur versehener – Build bereit, welche … Continue reading

Posted in C/C++, DE, Programming, Software | Tagged | Leave a comment

Re: Object Manager Namespace Viewer

A few days ago I wrote about a ten year old Delphi project. It allows one to see the Object Manager namespace of an NT system. Meanwhile I have started working on a WTL implementation of a similar tool. I … Continue reading

Posted in C/C++, EN, Programming, Software | Tagged | Leave a comment