DLL importieren und exportieren

Schnoogle

Mitglied
Hallo,

ich versuche seit Stunden eine ein von mir erstelltes C-Modul (*.h + *.c) als Bibliotheke zu kompilieren und diese Bibliotheke in einer Applikation zu importieren.

ich habe also meine Funktionen folgendermaß im Header file definiert:

Code:
//Header.h

#define EXPORT

#ifdef EXPORT
#include "windows.h"
#define DLL extern "C" __declspec(dllexport)
#else
#define DLL extern "C" __declspec(dllimport)
#endif

DLL void function(void);

Nach dem Kompilieren, kommentiere ich #define EXPORT aus und importieren das Header file in der Main.c meines neuen Projekts.

Code:
//Main.c

#include <windows.h>
#include "Header.h"

int main(int argc, char** argv)
{
     return(0);
}

Wenn ich jetzt versuche in der main Funktion ein FUnktion aus Header.h aufzurufen erhalte ich eine Fehlermeldung.

Könnte mir jemand bitte Hilfestellung geben.

Ich arbeite mit Visual Studio C++ Express 2008.
 
Main.obj : error LNK 2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__xlOpenDriver" in Funktion "_main".
fatal error LNK1120: 1 nicht aufgelöste externe Verweis
 
Hallo,

wenn du die DLL erstellst, wird u.a. auch eine *.lib erzeugt. Diese sogenannte Importlibrary muss zu dem Projekt hinzugelinkt werden, welches die DLL verwenden soll.
Übrigens könntest du die die Zeile "#define EXPORT" sparen und "EXPORT" stattdessen in den Projekteinstellungen der DLL definieren. Damit könntest du den Header ohne Änderungen in beiden Projekten verwenden.

Gruß
MCoder
 
Zurück