2016-07-14 24 views
0

Ich habe zwei VS10-Projekte, eines ist ein (nicht MFC) DLL. Ich möchte im DLL-Projekt eine struct in einer Header-Datei des anderen Projekts definiert verwenden. Die Projekte verwenden die vorkompilierten Header und alle Includes werden unter stdafx.h erstellt. EinShare-Header-Dateien in zwei Visual Studio 2010 C++ - Projekten (DLL und ein Win32-Projekt)

Projekt

struct example 
{ 
    int a; 
    int b; 
}; 

DLL-Projekt

#include "stdafx.h" 


extern "C" 
{ 

    __declspec(dllexport) int ex(struct example *p) 
    { 
     int c = p->a; 

     return 1; 
    } 


} 

struct example muss aus dem DLL-Projekt sichtbar sein. Wie kann ich das erreichen?

+0

Sie müssen ein Makro verwenden, das '__declspec (dllexport)' in '__declspec (dllimport)' ändert, wenn Sie die DLL verwenden. Es sollte Tausende von Beispielen geben, wenn Sie suchen. – drescherjm

+0

könnten Sie erschöpfender sein? –

+0

http://stackoverflow.com/questions/14980649/macro-for-dllexport-dllimport-switch – drescherjm

Antwort

1

Dies kann zur Kompilierzeit gelöst werden, indem das Struct in eine separate Header-Datei geschrieben und in beide Projekte eingefügt wird.