[S0rry] Detours Frage: Brauch die Library, Help!



  • *rofl* Comedy am Abend 😉

    greetz, Swordfish



  • ja ich hab die vcvarsall.bat noch nie gebraucht.



  • Kann ich dann evtl. Hilfe von euch erwarten, im Bezug auf das Linkerproblem was auftritt, wenn ich versuche meinen Code zu compilieren?

    1>------ Build started: Project: MyDLL, Configuration: Release Win32 ------
    1>Compiling...
    1>dllmain.cpp
    1>Linking...
    1>detours.lib(detours.obj) : error LNK2001: unresolved external symbol "struct HINSTANCE__ * __stdcall Detoured(void)" (?Detoured@@YGPAUHINSTANCE__@@XZ)
    1>C:\Dokumente und Einstellungen\Steiner\Eigene Dateien\Visual Studio 2008\Projects\DLLInjector\Release\MyDLL.dll : fatal error LNK1120: 1 unresolved externals
    ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
    

    Gruß Tobi.



  • Naja, ich schätze, du musst die detours.lib linken...

    greetz, Swordfish



  • hab ich:

    #pragma comment( lib, "detours.lib" )
    


  • Na, bist du sicher, dass Detoured( ) zur Detours API gehört? In meiner Doku steht auf jedenfall nichts davon. 😉

    greetz, Swordfish



  • Aber ich habe nirgendwo eine Funktion Detoured( ) aufgerufen. Ich habe das gestern da mit nmake alles compiliert und die so entstandene library und header Datei in meinen Projektordner gepackt. die Header inkludiert und die library gelinkt, und dann rufe ich in der DLLMain nur das hier auf:

    BOOL WINAPI DllMain( HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) {
    
    	switch ( ul_reason_for_call ) {
    
    		case DLL_PROCESS_ATTACH: {
    
    			DWORD dwPID = GetCurrentProcessId( );
    
    			// ***** Look up for the process *****
    			EnumWindows( EnumWindowsProc, dwPID );
    
    			if( hWindow ) {
    
    				DetourTransactionBegin( );
    				DetourUpdateThread( GetCurrentThread( ) );
    				DetourAttach( (PVOID*)lpOrigMsgBox, MyMessageBox );
    				DetourTransactionCommit( );
    			}
    			break;
    	    }
    
    		case DLL_THREAD_ATTACH: {
    
    			break;
    	    }
    
    		case DLL_THREAD_DETACH: {
    
    			break;
    	    }
    
    		case DLL_PROCESS_DETACH: {
    
    			break;
    	    }
    	}
    	return TRUE;
    }
    

    Mehr nicht.

    Gruß Tobi.



  • Dann eben detoured.lib ...

    greetz, Swordfish



  • Wie, dann eben detoured.lib?



  • Na dann linkst du eben noch zusätlich gegen die detoured.lib und deine Probleme sind gelöst. Ich sag' dazu jetzt nichts mehr.

    greetz, Swordfish



  • 🙂 Man dankt.

    Gruß Tobi.


Anmelden zum Antworten