我需要在我的代码中使用msclr,但我还需要使用另一个也使用msclr的类"ClassOne"。我收到"类"类型重定义错误和基类未定义错误。我不知道为什么会这样。
这两个类位于同一项目中。当我 #using"ClassOne.obj"时出现错误
我怎样才能避免这种情况?
第一类:
#ifndef _CLASSONE_H
#define _CLASSONE_H
ref class ClassOne
{
public:
ClassOne();
};
#endif
第一类.cpp:
#include "ClassOne.h"
#include <msclr/marshal_cppstd.h> // For msclr::interop::marshal_as
ClassOne::ClassOne()
{
}
类二.h:
#ifndef _CLASSTWO_H
#define _CLASSTWO_H
#using "ClassOne.obj"
public ref class ClassTwo
{
public:
ClassOne a;
ClassTwo();
};
#endif
第二类.cpp:
#include "ClassTwo.h"
#include <msclr/marshal_cppstd.h>
ClassTwo::ClassTwo()
{
msclr::interop::marshal_as<std::wstring>(L"text");
}
错误:
看截图:截图
#using "ClassOne.obj"
我不知道这是什么。我以前从未在 obj 文件上看到过 using 指令;我不确定目的是什么。坦率地说,我很惊讶你没有在#using
行上收到错误。
如果要引用ClassOne
ClassTwo
,请像常规C++一样包含头文件。
#using "ClassOne.h"