C++ Dll Problem

07/09/2011 15:12 jonaz92#1
Ich wollte mit einer DLL ein Thread erstellen und mit zeiger eine Adresse verändern, aber es passiert gar nichts, auch die Messagebox kommt nicht. Es liegt auf jeden Fall nicht am Injector, die DLL wird injected. Woran könnte das liegen?
Code:
#include <windows.h>
#include <cstdio>
#include <iostream>
using namespace std;
void Funktionen()
{
     int *x=(int*)0x2051F774;
     Sleep(100);
     *x=999;
     MessageBoxA(0, "4","4", 0);
}
BOOL WINAPI DllMain(HINSTANCE hInstDLL,DWORD fdwreason,LPVOID lpvreserved) 
{     
        switch(fdwreason)     
        {
        case DLL_PROCESS_ATTACH:
        MessageBoxA(0, "2","2", 0);
                CreateThread(0, 0, (LPTHREAD_START_ROUTINE) Funktionen, 0, 0, 0); 
                break;        
        case DLL_PROCESS_DETACH:
           MessageBoxA(0, "3","3", 0);  
        }
        return true;
}
P.S. Hab schon gegoogelt und das Forum durchsucht und nichts gefunden.
Hab das Problem gelöst :) sorry für die Unnötige Frage ich musste nur " extern "C" " vor Bool WINAPI... schreiben also
Code:
#include <windows.h>
#include <cstdio>
#include <iostream>
using namespace std;
void Funktionen()
{
     int *x=(int*)0x2051F774;
     Sleep(100);
     *x=999;
     MessageBoxA(0, "4","4", 0);
}
extern "C" BOOL WINAPI DllMain(HINSTANCE hInstDLL,DWORD fdwreason,LPVOID lpvreserved) 
{     
        switch(fdwreason)     
        {
        case DLL_PROCESS_ATTACH:
        MessageBoxA(0, "2","2", 0);
                CreateThread(0, 0, (LPTHREAD_START_ROUTINE) Funktionen, 0, 0, 0); 
                break;        
        case DLL_PROCESS_DETACH:
           MessageBoxA(0, "3","3", 0);  
        }
        return true;
}