我有c ++ / cli类库项目。我需要导入c ++ native clases。他们被宣布为这样
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文件)
答案 0 :(得分:3)
您没有“导入”本机代码,它没有任何类似于描述类型的托管程序集中的元数据。
你必须以老式的方式做到这一点。您必须在源代码中使用#include来包含声明类的.h头文件。用#pragma managed(push,off)和#pragma managed pop包装那些#includes,以确保编译器理解这些是本机代码声明。还要注意你发布的声明不够好,这些类必须带有__declspec(dllimport)属性。你通常使用一个宏。
并且您必须告诉链接器链接.lib,DLL的导入库。项目+属性,链接器,输入,附加依赖项设置。
您将在this answer中找到有关编写托管类包装器的更多提示。