This project has moved and is read-only. For the latest updates, please go here.

Application can't redirect printing messages to file.

Jul 9, 2013 at 4:11 AM
Edited Jul 9, 2013 at 4:22 AM
I wrote an application include vld.h by VS2012, and I found the IO redirection does not work in win7 32-bit or 64-bit OS (XP won't have this problem). (ex. "test.exe > test.log", test.log is empty if test.exe is debug build, with vld)
So I searched code by IsWin7OrBetter(), and found if I mark
m_patchTable[0].exportModuleName = "kernelbase.dll";
in
    else
    {
        assert(m_patchTable[0].patchTable == m_kernelbasePatch);
        //m_patchTable[0].exportModuleName = "kernelbase.dll";
        if (kernelBase)
            m_original_GetProcAddress = (_GetProcAddressType *) GetProcAddress(kernelBase,"GetProcAddress");
    }
The IO redirection works again.

Is there any difference between patching kernelbase.dll and kernel32.dll?
And does that mean GetProcAddress will be patched by using kernel32.dll, or GetProcAddress won't be patched?
Thanks!