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

ネイティブコードを「インポート」することはありません。タイプを説明するマネージアセンブリのメタデータに似たものはありません。

これは昔ながらの方法で行う必要があります。クラスを宣言する.hヘッダーファイルをインクルードするには、ソースコードで#includeを使用する必要があります。これらの#includeを#pragmamanaged(push、off)および#pragma managed popでラップして、コンパイラがこれらがネイティブコード宣言であることを確実に理解できるようにします。また、投稿した宣言は十分ではないことに注意してください。クラスは__declspec(dllimport)属性で表示される必要があります。通常、そのためにマクロを使用します。

また、DLLのインポートライブラリである.libをリンクするようにリンカに指示する必要があります。プロジェクト+プロパティ、リンカー、入力、追加の依存関係の設定。

この回答には、マネージドクラスラッパーを作成するためのヒントがさらにあります。

于 2012-05-20T19:38:30.030 に答える