C ++ / CLI包装器不能使用本机C ++ dll中的向量

时间:2019-03-01 08:06:16

标签: c++ c++-cli linker-errors

我有一个像这样的项目:C ++-> C ++ / CLI包装器-> C#应用程序。

我在C ++ dll中有一个称为Drawing exported 类,.h包含一个static std::vector<void*>,向量在中定义了。 cpp文件。

问题是我遇到以下错误:

Errors

C ++的本机dll .lib文件链接到包装器,通常,包装器可与其他东西一起使用,但是一旦我添加了std :: vector,它就会开始引发链接器错误。

我尝试在具有void*作为参数的C ++ dll中创建一个函数,并将其“内部”添加到列表中,但是仍然遇到相同的错误:

Errors

感谢任何帮助

1 个答案:

答案 0 :(得分:0)

回答我的评论。
您可以尝试将std::vector<void*>包装成具有您真正需要的功能的简单结构,如下所示:

class YourClass
{
private:
    std::vector<void*> _vec;

public:
    // implement functionalities you need
    void add(void* elem)
    {
        _vec.add(elem);
    }
    // etc.
};

或通过继承:

class YourClass : public std::vector<void*>
{
public:
    YourClass(int size)
    : std::vector<void*>(size) {}
};