我目前有一个托管C ++类,其方法看起来像这样......
int Calculate(double price, double quantity)
我可以像我这样在C#库中调用这个方法......
MyLib.Calculate(1,1)
但是我现在想传入一个在我的C ++库中定义的结构数组,而不是价格和数量基元。
typedef struct my_prices {
double quantity;
double price;
}
所以我的C ++方法签名然后改为这个......
int Calculate(my_prices prices[])
我现在正在努力解决的问题是如何调用这个托管C ++方法并将其从C#中传递给价格数组。我似乎无法在C#中创建这个结构,我已经尝试定义它的C#版本,但我不知道如何将其代理到C ++版本。
我希望这是有道理的,我是一名C#开发人员,只有很少的C ++经验,所以可能会说垃圾。
答案 0 :(得分:0)
可以在C ++ / CLI中执行此操作,但您需要ref类或值类型。
value struct my_prices {
double quantity;
double price;
}
int Calculate(array<my_prices> ^prices)
{
for each (my_prices p in prices)
{
...