diff --git a/msvc/zzat.vcxproj b/msvc/zzat.vcxproj index f477ff0..fb27e4c 100644 --- a/msvc/zzat.vcxproj +++ b/msvc/zzat.vcxproj @@ -63,7 +63,7 @@ CompileAsC - ws2_32.lib;%(AdditionalDependencies) + ws2_32.lib;..\..\libcaca\win32\Debug\Win32\libcaca.lib;%(AdditionalDependencies) $(OutDir)zzat.exe true $(OutDir)zzat.pdb @@ -83,7 +83,7 @@ CompileAsC - ws2_32.lib;%(AdditionalDependencies) + ws2_32.lib;..\..\libcaca\win32\Release\Win32\libcaca.lib;%(AdditionalDependencies) $(OutDir)zzat.exe true Console @@ -104,4 +104,4 @@ - \ No newline at end of file + diff --git a/msvc/zzuf.vcxproj b/msvc/zzuf.vcxproj index 485f579..3e1eb16 100644 --- a/msvc/zzuf.vcxproj +++ b/msvc/zzuf.vcxproj @@ -63,7 +63,7 @@ CompileAsC - ws2_32.lib;%(AdditionalDependencies) + ws2_32.lib;..\..\libcaca\win32\Debug\Win32\libcaca.lib;%(AdditionalDependencies) $(OutDir)zzuf.exe true $(OutDir)zzuf.pdb @@ -83,7 +83,7 @@ CompileAsC - ws2_32.lib;%(AdditionalDependencies) + ws2_32.lib;..\..\libcaca\win32\Release\Win32\libcaca.lib;%(AdditionalDependencies) $(OutDir)zzuf.exe true Console @@ -118,4 +118,4 @@ - \ No newline at end of file + diff --git a/src/libzzuf/lib-win32.c b/src/libzzuf/lib-win32.c index 9d00b05..3c9a9d7 100644 --- a/src/libzzuf/lib-win32.c +++ b/src/libzzuf/lib-win32.c @@ -44,7 +44,7 @@ static HANDLE (__stdcall *ORIG(CreateFileA))(LPCTSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, DWORD, DWORD, HANDLE); #endif -#if defined HAVE_CREATEFILEA +#if defined HAVE_CREATEFILEW static HANDLE (__stdcall *ORIG(CreateFileW))(LPCWSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, DWORD, DWORD, HANDLE); diff --git a/src/libzzuf/sys.c b/src/libzzuf/sys.c index ab9bd05..752fd73 100644 --- a/src/libzzuf/sys.c +++ b/src/libzzuf/sys.c @@ -77,6 +77,7 @@ void _zz_sys_init(void) void *list; int k; + /* Enumerate all loaded objects and overwrite some functions */ VirtualQuery(_zz_sys_init, &mbi, sizeof(mbi)); list = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, GetCurrentProcessId()); entry.dwSize = sizeof(entry); @@ -85,6 +86,7 @@ void _zz_sys_init(void) if(entry.hModule == mbi.AllocationBase) continue; /* Don't replace our own functions */ + fprintf(stderr, "diverting functions from %s\n", entry.szModule); insert_funcs(entry.hModule); } CloseHandle(list); @@ -140,6 +142,9 @@ static void insert_funcs(void *module) continue; } + fprintf(stderr, "diverting method %s (from %s)\n", + diversion->name, diversion->lib); + lib = GetModuleHandleA(diversion->lib); *diversion->old = (void *)GetProcAddress(lib, diversion->name); diff --git a/src/myfork.c b/src/myfork.c index 2855c29..adac186 100644 --- a/src/myfork.c +++ b/src/myfork.c @@ -300,7 +300,17 @@ static int run_process(struct child *child, struct opts *opts, int pipes[][2]) free(cmdline); if (!ret) + { + LPTSTR buf; + DWORD err = GetLastError(); + FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | + FORMAT_MESSAGE_FROM_SYSTEM | + FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, err, 0, (LPTSTR)&buf, 0, NULL); + fprintf(stderr, "error launching `%s': %s\n", child->newargv[0], buf); + LocalFree(buf); return -1; + } /* Insert the replacement code */ ret = dll_inject(&pinfo, SONAME);