I noticed that MHS creates a random named DLL, which I suppose is the compiled code of my loaded script?
It is the DLL that is injected into the target process to allow you to call functions in the target process. It has a random name so that it can not be detected and patched out (for example, the target process could detect “InjectMe.dll” and go into anti-cheat mode, but since the name of my DLL is different every time it can not do this).
The code for your script is compiled internally.
The version I posted detects if the preprocessor fails and then goes to the normal compilation routine. It should already be working for you.
Since it is apparently not, I will compile a special version that simply does not attempt to preprocess the scripts.
As expected, you will not be able to use macros.
L. Spiro