我有我正在用 /clr 编译的项目。我有一个像下面这样的课..
ref class A
{
public:
void CheckValue(void * test);
typedef ref struct val
{
std::string *x;
}val_t;
};
在我的实现中,我必须使用类似下面的东西..
void A::CheckValue(void *test)
{
a::val_t^ allVal = (a::val_t^)test;
}
在我的主要我曾经使用过..
int main()
{
A^ obj = gcnew A();
a::val_t valObj = new std::string("Test");
obj->CheckValue((void*)valObj);
}
我收到类型转换错误和两个地方 - obj->CheckValue((void*)valObj); 在 obj->CheckValue((void*)valObj); 错误 C2440:“类型转换”:无法从“void*”转换为“A::val_t ^”
这个片段只是为了展示我的行为,我只能以这种方式使用它。早些时候我使用非 /clr 运行它,所以它编译得很好。
现在问题我有如何使这种类型转换在 C++/CLI 类型项目中工作?