Hola estoy siguiendo un tutorial, y al compilar esté simple código me da errores:
Código:
#include <windows.h>
#include "detours.h"
#pragma comment(lib, "detours.lib")
BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
switch (ul_reason_for_call) {
case DLL_PROCESS_ATTACH: {
DisableThreadLibraryCalls(hModule);
// Apply the hook
}
}
return TRUE;
}
typedef HMODULE (WINAPI *LoadLibrary_t)(LPCSTR);
LoadLibrary_t orig_LoadLibrary; // holds address of original non-detoured function
// Our hooked LoadLibrary
HMODULE WINAPI LoadLibrary_Hook ( LPCSTR lpFileName )
{
HMODULE hM = orig_LoadLibrary( lpFileName ); // keep functionality
return hM;
}
// When the dll loads
orig_LoadLibrary = (LoadLibrary_t)DetourFunction((LPBYTE) LoadLibraryA, (LPBYTE) LoadLibrary_Hook );
El error que me envía al compilar es este:
1>------ Operación Generar iniciada: proyecto: dll, configuración: Debug Win32 ------
1>Compilando...
1>dllmain.cpp
1>c:\users\jorge\documents\visual studio 2008\projects\dll\dll\dllmain.cpp(30) : error C4430: falta el especificador de tipo; se presupone int. Nota: C++ no admite default-int
1>c:\users\jorge\documents\visual studio 2008\projects\dll\dll\dllmain.cpp(30) : error C2373: 'orig_LoadLibrary' : nueva definición; modificadores de tipo distintos
1> c:\users\jorge\documents\visual studio 2008\projects\dll\dll\dllmain.cpp(18) : vea la declaración de 'orig_LoadLibrary'
1>c:\users\jorge\documents\visual studio 2008\projects\dll\dll\dllmain.cpp(30) : error C2440: 'inicializando' : no se puede realizar la conversión de 'LoadLibrary_t' a 'int'
1> No existe un contexto en el que sea posible realizar esta conversión
1>El registro de compilación se guardó en el "file://c:\Users\Jorge\Documents\Visual Studio 2008\Projects\dll\dll\Debug\BuildLog.htm"
1>dll - 3 errores, 0 advertencias
========== Generar: 0 correctos, 1 incorrectos, 0 actualizados, 0 omitidos ==========
¿Alguien me puede orientar para saber cómo corregirlo?