【问题标题】:c++/cx passing value struct by referencec++/cx 通过引用传递值结构
【发布时间】:2015-11-14 03:26:49
【问题描述】:

“如果你有一个值类型作为函数或方法参数,通常是按值传递的。对于较大的对象,这可能会导致性能问题。在Visual Studio2013及更早的版本中,C++/CX中的值类型总是被传递按值。在 Visual Studio 2015 及更高版本中,您可以按引用或按值传递值类型。"

这对我不起作用,在函数签名中使用 value_struct& 会使编译器发出:

错误 C3987 'Set':公共成员的签名包含本机类型 value_struct&... 无需参考即可工作,Visual Studio 2015

我错过了什么?

【问题讨论】:

    标签: visual-studio-2015 c++-cx


    【解决方案1】:

    我能够让它像这样工作:

    public interface class MyDelegate {
        void MyDelegateMethod(Platform::String^ str,
            Windows::Foundation::Point *point);
    }
    

    .. 在 C# 委托实现中:

    public void MyDelegateMethod(string str, out Point p) { ... }
    

    MS 页面中提到了这件事 (https://msdn.microsoft.com/en-us/library/hh699861.aspx):

    您还可以使用指针符号 (*) 通过引用传递值类型。在其他语言中调用者的行为是相同的(C#中的调用者使用 ref 关键字),但在方法中,类型是指向值类型的指针。

    【讨论】:

      猜你喜欢
      • 2012-05-21
      • 2013-05-12
      • 2011-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多