导入本机c ++类

时间:2012-05-20 19:25:58

标签: c++-cli

我有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文件)

1 个答案:

答案 0 :(得分:3)

您没有“导入”本机代码,它没有任何类似于描述类型的托管程序集中的元数据。

你必须以老式的方式做到这一点。您必须在源代码中使用#include来包含声明类的.h头文件。用#pragma managed(push,off)和#pragma managed pop包装那些#includes,以确保编译器理解这些是本机代码声明。还要注意你发布的声明不够好,这些类必须带有__declspec(dllimport)属性。你通常使用一个宏。

并且您必须告诉链接器链接.lib,DLL的导入库。项目+属性,链接器,输入,附加依赖项设置。

您将在this answer中找到有关编写托管类包装器的更多提示。