Совместное использование файлов заголовков в двух проектах Visual Studio 2010 C ++ (DLL и проект Win32)

У меня есть два проекта VS10, один из которых (не MFC) DLL. Я хочу использовать в проекте DLL объект struct, определенный в одном файле заголовка другого проекта. В проектах используются предварительно скомпилированные заголовки, и все включения выполняются под stdafx.h.

Первый проект

struct example
{
  int a;
  int b;
};

Проект DLL

#include "stdafx.h"


extern "C"
{

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

        return 1;
    }


}

struct example должен быть виден из проекта DLL. Как я могу этого добиться?


person Giorgio Gambino    schedule 14.07.2016    source источник
comment
Вам нужно использовать макрос, который изменяет __declspec(dllexport) на __declspec(dllimport) при использовании dll. При поиске должно быть тысячи примеров.   -  person drescherjm    schedule 14.07.2016
comment
не могли бы вы быть более исчерпывающими?   -  person Giorgio Gambino    schedule 14.07.2016
comment
stackoverflow.com/questions/14980649/   -  person drescherjm    schedule 14.07.2016
comment
проект, содержащий определение структуры, не является проектом DLL, как я могу экспортировать из него?   -  person Giorgio Gambino    schedule 14.07.2016


Ответы (1)


Это можно решить во время компиляции, поместив Struct в отдельный файл заголовка и включив его в оба проекта.

person jimc    schedule 14.07.2016