将C ++ / CLI ref参数转换为原始指针

时间:2013-12-14 03:39:01

标签: pointers c++-cli ref

我正在尝试将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来确定是否应该停止无限循环。

1 个答案:

答案 0 :(得分:1)

你尝试过这样的事吗?

void SampleClassNet::DoWork(bool% cancel)
{
    bool cancelParam = cancel;
    SampleClass *sampleClass = new SampleClass();
    sampleClass->DoWork(&cancelParam);
    cancel = cancelParam;
}