Каков самый простой способ экспортировать класс из stati c lib в моей dll? - PullRequest
0 голосов
/ 13 июля 2020
• 1000 ?

Вот иллюстрация.

#ifdef EXPORTING
#define EXPORT_DLL __declspec(dllexport)
#else
#define EXPORT_DLL __declspec(dllimport)


class EXPORT_DLL Example {
    double a,b,c;
  public:
    Example();
    ~Example();
    double Func1() const;
    void Func2(Example a);
};

Мне бы понадобились следующие экспортные файлы, чтобы они все еще существовали в DLL

public: __cdecl Example::Example(void) __ptr64
public: __cdecl Example::~Example(void) __ptr64
public: double__cdecl Example::Func1(void) const __ptr64
public: __cdecl Example::Func2(class Example) __ptr64

Я надеюсь, что там - это четко сформулированная передовая практика. Я бы предпочел не делать свой собственный экспорт .def.

После удаления этого класса из проекта он будет выглядеть так в stati c lib.

class Example {
    double a,b,c;
  public:
    Example();
    ~Example();
    double Func1() const;
    void Func2(Example a);
};

Какой код находится в DLL?

Примечание: я не создаю проект, который может быть связан статически или динамически. Я пытаюсь перенаправить классы из проекта библиотеки stati c в экспорт DLL во втором проекте-оболочке. Эта dll потенциально может содержать код оболочки, если есть способ сделать это с минимальными затратами.

...