كيفية القيام بما يلي: تحديد معلمة إخراج

يوضح هذا النموذج كيفية تحديد أن معلمة دالة هى معلمة إخراج وكيفية استدعاء هذه الدالة من برنامج C#‎.

يتم تحديد معلمة الإخراج في Visual C++ من خلال OutAttribute.

مثال

الجزء الأول من هذا النموذج هو DLL خاص بـ Visual C++ مع نوع يحتوي على دالة بمعلمة إخراج.

// cpp_out_param.cpp
// compile with: /LD /clr:safe
using namespace System;
public value struct TestStruct {
   static void Test([Runtime::InteropServices::Out] String^ %s) {
      s = "a string";
   }
};

هذا هو عميل C# الذي يستهلك مكون Visual C++ المنشأ في المثال السابق.

// cpp_out_param_2.cs
// compile with: /reference:cpp_out_param.dll
using System;
class TestClass {
   public static void Main() {
      String t;
      TestStruct.Test(out t);
      System.Console.WriteLine(t);
   }
}

a string 

راجع أيضًا:

المرجع

استخدام PInvoke) C++ Interop الضمني )