C++ Problem mit SDK :/

  • Ich habe 1:1 dieses Tutorial nachgemacht: http://forum.sa-mp.com/showthread.php?t=295798


    Nun habe ich meine main.cpp mit den Funktionen und meine *.def:

    C
    EXPORTS
    	Supports
    	Load
    	Unload
    	AmxLoad
    	AmxUnload


    Und wenn ich nun compile, sagt der compiler:

    C
    1>------ Erstellen gestartet: Projekt: test, Konfiguration: Release Win32 ------
    1>main.obj : error LNK2001: Nicht aufgelöstes externes Symbol "_amx_Register".
    1>main.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""void * pAMXFunctions" (?pAMXFunctions@@3PAXA)".
    1>c:\users\chris\documents\visual studio 2010\Projects\test\Release\test.dll : fatal error LNK1120: 2 nicht aufgelöste externe Verweise.
    ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========


    Kenn sich da einer aus? Was muss ich machen :/

  • Code
    1>------ Erstellen gestartet: Projekt: Test, Konfiguration: Debug Win32 ------
    1>     Bibliothek "C:\Users\m4a_X\Documents\Visual Studio 2010\Projects\Test\Debug\Test.lib" und Objekt "C:\Users\m4a_X\Documents\Visual Studio 2010\Projects\Test\Debug\Test.exp" werden erstellt.
    1>Test.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""void * pAMXFunctions" (?pAMXFunctions@@3PAXA)".
    1>C:\Users\m4a_X\Documents\Visual Studio 2010\Projects\Test\Debug\Test.dll : fatal error LNK1120: 1 nicht aufgelöste externe Verweise.
    ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========


    ich habe es so wie er und bei mir ist auch ein Fehler mit pAMXFunctions

  • Sieht so aus als hättest du vergessen die SDK selbst mitzucompilen. Da sind ein paar *.c Dateien in dem SDK-Ordner die mitcompiled werden müssen.


    Also mir fehlte die Library, was 2 Errors gemacht hat. Nun habe ich nurnoch das hier :/


    C
    1>main.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""void * pAMXFunctions" (?pAMXFunctions@@3PAXA)".
  • Dir fehlt ein

    Code
    extern void     *pAMXFunctions;

    im globalen Namespace (schlaue Fachbegriffe; klatsch es einfach so hin als wärs ne globale Variable).


    Hab ich doch? :/


    C
    #pragma comment(lib, "sampgdk3.lib")
    #include "../include/sampgdk/SDK/amx/amx.h"
    #include "../include/sampgdk/SDK/plugincommon.h"
    
    
    typedef void (*logprintf_t)(char* format, ...);
    
    
    logprintf_t logprintf;
    extern void *pAMXFunctions;