Linker



  • Hey,
    ich habe grade einen Code geschrieben um Funktionen aus einer DLL zu laden. Hier der Code:

    //Hook.h
    #include <windows.h>
    #include <stdio.h>
    
    ...
    
    typedef bool (CALLBACK *MYFUNC)(void);
    
    LRESULT CALLBACK WindowProcedure(HWND, UINT, WPARAM, LPARAM);
    
    ...
    
    MYFUNC SetHook;
    MYFUNC RemoveHook;
    
    #include <windows.h>
    
    #include "Hook.h"
    
    int WINAPI WinMain (HINSTANCE hThisInstance,
    					HINSTANCE hPrevInstance,
    					LPSTR lpszArgument,
    					int nFunsterStil)
    
    {
    	 HINSTANCE hDLL = LoadLibrary("dll.dll");
    	 if(hDLL == NULL)
    		{
    		 MessageBox(NULL, "Fehler beim Laden der DLL: dll.dll", "Fehler", MB_OK);
    		return FALSE;
    		}
    
    	 SetHook = (MYFUNC) GetProcAddress(hDLL, "SetHook");
    	if(SetHook == NULL)
    	{
    		MessageBox(NULL, "Fehler beim Laden der Funktion: SetHook nicht gefunden!", "Fehler", MB_OK);
    		return FALSE;
    	}
    	RemoveHook = (MYFUNC) GetProcAddress(hDLL, "RemoveHook");
    	if (RemoveHook == NULL)
    	{
    		MessageBox(NULL,"Fehler beim laden der Funktion: RemoveHook nicht gefunden!", "Fehler",MB_OK);
    		return FALSE;
    	}
    
    	 return 0;
    }
    

    Wenn ich das nun compielen will treten folgende Fehler auf:

    Fehler 1 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_main" in Funktion "___tmainCRTStartup". MSVCRTD.lib
    Fehler 2 fatal error LNK1120: 1 nicht aufgelöste externe Verweise.

    Kann mir Jemand sagen welche .lib ich linken muss? Bzw wie ich sowas in MSDN herrausbekomme(noch nicht wirklich damit geabreitet :/)?



  • Zeig mal deine DLL her. Für Windows-Applikationen braucht die DLL als Einstieg eine Funktion DllMain. Normalerweise übernehmen die Linker-Einstellungen die
    IDEs der Compiler.


Log in to reply