我正在尝试将bool ref参数(.NET / C ++ CLI)转换为bool * raw指针,以便在本机函数中使用。
带有原始指针参数的本机类
#pragma once
public class SampleClass
{
public:
SampleClass(void);
~SampleClass(void);
void DoWork(bool *cancel);
};
.NET使用的C ++ / CLI包装类。
#pragma once
public ref class SampleClassNet
{
public:
SampleClassNet(void);
void DoWork(bool% cancel);
};
DoWork的.NET实现如下。注意:它没有“建立/工作
void SampleClassNet::DoWork(bool% cancel)
{
SampleClass *sampleClass = new SampleClass();
sampleClass->DoWork(cancel);
}
问题
如何将我的ref boolean参数从我的C ++ / CLI类传递到我的本机类,它需要一个指向ref参数的原始bool *指针?
我需要能够在原生方法中使用& cancel来确定是否应该停止无限循环。
答案 0 :(得分:1)
你尝试过这样的事吗?
void SampleClassNet::DoWork(bool% cancel)
{
bool cancelParam = cancel;
SampleClass *sampleClass = new SampleClass();
sampleClass->DoWork(&cancelParam);
cancel = cancelParam;
}