我有一个这样的项目:C ++ - > C ++ / CLI包装器 - > C#app。
我在C ++ dll中有一个名为Drawing
的导出类,.h包含一个static std::vector<void*>
,该向量在.cpp文件中定义。
问题是我遇到以下错误:
C ++的本机dll .lib文件链接到包装器,通常包装器与其他东西一起工作,但是一旦我添加了std :: vector,它就会开始抛出链接器错误。
我尝试在C ++ DLL中创建一个函数,它将void*
作为一个argumument添加到列表“内部”,但我仍然遇到了相同的错误:
任何形式的帮助表示赞赏
回答扩展我的评论。
您可以尝试将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) {}
};