As the thread title says, I am compiling a DLL project using Intel Compiler and I am getting VCRUNTIME140.dll pulled in.
Of course, I am using runtime functions but I was hoping that latest Intel Compiler could fully replace it with it's own runtime.
I am asking this because I don't want my DLLs and EXEs to contain imports __telemetry_main_invoke_trigger() and __telemetry_main_return_trigger() which are in new runtime VCRUNTIME140.dll and are getting called before and after DllMain() respectively.
The options I see:
1. Recompile CRT from source and remove those entry points (whether I could redistribute that is legally questionable)
2. Patch those calls with NOPs and remove those IAT entries in a post-build step (pretty complex to do)
3. Use those few CRT functions which I need by dynamically importing from NTDLL.DLL (for that I need to find a way to disable C++ template overloads for _wcsdup() and wcscat_s() which throw error when I try to redefine them)
4. Go back to stone age and write code in MASM so that my own application can contain only the code I need and approve
Any ideas are most welcome.
Finally, and I am saying this as an end-user, not as developer -- I am seriously fed up with "modern" (read: invasive and abusive) trends in the software industry -- software testing and profiling is something that should be done on developer's own computer and their own time, not mine. How many times I start the application and which files I open are not anyone else's business but mine. Since Microsoft doesn't give us an option for privacy, Intel would do well to provide an alternative -- I am sure privacy conscious people would appreciate it.