2016-11-04 6 views
0

So habe ich ein Problem. Ich habe viele Dinge gelesen, aber nichts scheint für mich zu arbeiten.Verwenden von c-DLL in C++ Projekt

Ich habe diese C-Bibliothek, und ich machte Projekt mit Datei:

//send.h 
#ifndef SEND_H 
#define SEND_H 

#ifdef __cplusplus 
extern "C" { 
#endif 
     static int Send_Sample(void); 


#ifdef __cplusplus 
} 
#endif 

#endif /* SEND_H */ 

Und ich habe

//send.c 
#include "thatLibrary.h" 
static int Send_Sample(void) 
{ return 0; } 

Also habe ich Projekt als Leere DLL und als danach i baute es und Es ist in Ordnung. Aber wenn ich ein anderes Projekt gemacht, und diese darin Bezug genommen wird, ich

#include "send.h" 

tun Und das ist arbeitet, sieht er, dass H-Datei, aber wenn ich das andere Projekt bauen, heißt es:

Error C2129 static function 'int Send_Sample(void)' declared but not defined AzureEventHubClient c:\users\v-vlvesi\documents\github\azureeventhubclibrary\azureeventhubclient\source.cpp 9 

Kann jemand das beheben?

Danke!

+0

Versuchen Sie, die 'static' Modifikator von Ihrer Funktion zu entfernen. – StaticBeagle

Antwort

1

Das Schlüsselwort 'static' verhindert, dass die Funktion aus der DLL exportiert wird. Sie müssen auch dllimport und dllexport verwenden.

Sie auf diese vorherige Antwort verweisen können, wie Ihr Code zum Instrument: Exporting functions from a DLL with dllexport

Verwandte Themen