1

我有 c++/cli 类库项目。我需要导入 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 文件)

4

1 回答 1

3

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

您必须以老式的方式执行此操作。您必须在源代码中使用 #include 来包含声明类的 .h 头文件。用#pragma managed(push, off) 和#pragma managed pop 包装这些#include,以确保编译器理解这些是本机代码声明。另请注意,您发布的声明不够好,这些类必须与 __declspec(dllimport) 属性一起出现。您通常为此使用宏。

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

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

于 2012-05-20T19:38:30.030 回答