LNK2001 und LNK2019 bei Klasse in DLL



  • Hallo, ich will eine Klasse in einer DLL kapseln und dann einfach in einer anderen Anwendung ohne lib einbinden und verwenden, aber dabei bekomme ich obige Linker Fehler:
    Code Header der DLL:

    class __declspec(dllexport) dllclass
    {
    public:
    
    	static int fkt1();
    	int fkt2();
    };
    

    Code CPP der DLL:

    #include "stdafx.h"
    
    #ifdef _MANAGED
    #pragma managed(push, off)
    #endif
    
    BOOL APIENTRY DllMain( HMODULE hModule,
                           DWORD  ul_reason_for_call,
                           LPVOID lpReserved
    					 )
    {
        return TRUE;
    }
    
    int dllclass::fkt1()
    {
    	return 3;
    }
    
    int dllclass::fkt2()
    {
    	return 5;
    }
    
    #ifdef _MANAGED
    #pragma managed(pop)
    #endif
    

    Code der Anwendung in der ich Klasse inkl. der statischen Memberfunktion nutzen will:

    class __declspec(dllimport) dllclass
    {
    public:
    
    	static int fkt1();
    	int fkt2();
    };
    
    #define  DLL_DIRECTORY L".\\test.dll"
    
    int main (void)
    {
    	HMODULE x = LoadLibrary(DLL_DIRECTORY);
    	dllclass instanz;
    	instanz.fkt1();
    	return 0;
    };
    

    Kann mir bitte jemand helfen. Ich versteh die beiden Linker Fehler nicht.
    LNK2001 bzgl. fkt1() und LNK2019 bzgl. fkt2().

    Was ist falsch, ist doch alles nach "Vorschrift"?

    Danke.C**C



  • WO ist den die Fehlermeldung?
    WAS machst Du mit "_MANAGED"?
    WARUM machst Du kein native Win32 Projekt?
    Du muss sicherstellen, dass die Header genau gleich sind!!! Alsa, falls Du /clr aktiviert hast, musst Du das managed-off auch im Header machen...


Anmelden zum Antworten