Hallo zusammen,
will ein Projekt ein eine Library kompilieren (VS 2012), klappt mit meinem jetzigem Vorgehen auch ganz gut:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
#ifdef DLL_EXPORTS
#define EXPORT_API __declspec(dllexport)
#else
#define EXPORT_API __declspec(dllimport)
#endif
namespace NS
{
class EXPORT_API A
{
void foo();
};
}
|
Dies kann ich dann in einem anderem Projekt benutzen indem ich die Header-Files include und die .lib mitlinke
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
|
#include "A.h"
int main()
{
NS::A a;
//...
}
|
Muss ich jetzt irgendwas beachten wenn ich jetzt in einem zweitem DLL-Projekt eine Library exportieren möchte, welche die erste Library benutzt?
Ein Problem jetzt habe ich, sobald ich statische (Klassen-) member exportieren will. Folgender Code erzeugt mir beim Einbinden in das andere DLL-Projekt ein nicht aufgelöstes externes Symbol:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
#ifdef DLL_EXPORTS
#define EXPORT_API __declspec(dllexport) //Wieder ist DLL_EXPORTS definiert, ich will ja wieder eine .dll exportieren, right?
#else
#define EXPORT_API __declspec(dllimport)
#endif
namespace NS
{
class EXPORT_API B
{
static A staticMember;
void foo();
};
}
|
Im Netz finde ich dazu leider keine Antwort die mein Problem löst
Greets & danke