2012-05-20 2 views
0

У меня есть проект библиотеки классов C++/cli. Мне нужно импортировать родные кланы C++. они объявлены как этотимпортировать родные классы C++

class __declspec(dllexport) Check 
{ 
    const char* type; 
protected: 
    int val; 
public: 
    Check(int); 
    Check(); 
    const char* Type(); 
    void Type(const char*); 
    virtual int Val(); 
    void Val(int); 
    ~Check(){}; 
}; 

class __declspec(dllexport) Test:public Check 
{ 
    const char* type; 
public: 
    Test(int x); 
    int Val(); 
    ~Test(){}; 
}; 

как импортировать их в C++/CLI проект? (У меня .dll и .lib файлы)

ответ

2

Вы не «импорт» родной код, он Безразлично У меня есть что-то похожее на метаданные в управляемых сборках, описывающих типы.

Вы должны сделать это старомодным способом. Вы должны использовать #include в исходном коде для включения файла заголовка .h, объявляющего классы. Оберните эти #includes с управляемой командой #pragma (push, off) и управляемой командой #pragma, чтобы убедиться, что компилятор понимает, что это объявления собственных кодов. Также будьте осторожны, что объявленные вами объявления недостаточно хороши, классы должны появиться с атрибутом __declspec (dllimport). Обычно для этого используется макрос.

И вы должны сообщить компоновщику, чтобы связать библиотеку импорта .lib, для библиотеки DLL. Project + Properties, Linker, Input, Additional dependencies.

Вы найдете больше советов по написанию оберток класса управления в this answer.

+0

Еще лучше забыть о 'dllexport' и библиотеке импорта и просто иметь сборку смешанного режима, которая содержит как встроенную реализацию, так и управляемую оболочку в одном бинарном файле. –

Смежные вопросы