您的位置: 首页 > 软件教程 > C++教程专题 > C# 和 C++ 的混合编程法

C# 和 C++ 的混合编程法

8.0分
出处:网络 时间:2012-04-06

您可能感兴趣的话题: C++  

核心提示:C# 和 C++ 的混合编程法教程。

  传递数组

  传递定长数组很简单,此处不述。下面的代码实现变长数组的传递:

  C++代码:

  int StaticElementNumber = 10;

  extern "C" AFX_API_EXPORT bool GetArray(int ElementNumber, double *BaseAddress)

  {

  if (ElementNumber < StaticElementNumber)

  {

  return false;

  }

  for (int i = 0; i < StaticElementNumber; ++i)

  {

  BaseAddress[i] = 1 / ((double)i + 1);

  }

  return true;

  }

  extern "C" AFX_API_EXPORT int GetArrayElementNumber()

  {

  return StaticElementNumber;

  }

  C#代码:

  [DllImport("MFCDll.dll")]

  public static extern bool GetArray(int ElementNumber, [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 0)] double[] BaseAddress);

  private void MenuItemFileGetArrayOnClicked(object sender, RoutedEventArgs e)

  {

  //Get array data.

  int ElementNumber = GetArrayElementNumber();

  double[] doubleArray = new double[ElementNumber];

  GetArray(ElementNumber, doubleArray);

  //Show the data.

  mainGrid.Children.Clear();

  ListBox listBox = new ListBox();

  foreach (double number in doubleArray)

  {

  listBox.Items.Add(number);

  }

  mainGrid.Children.Add(listBox);

  }

  有了这三个功能,一般来说C++代码复用到C#平台上就是比较简单的事情了。

网友评论
多特网友 2013-04-30 19:11:15 回复
很好,有用
多特网友 2012-05-14 13:45:48 回复
,说的太笼统了!
多特网友 2013-04-30 19:11:15 回复
很好,有用
多特网友 2012-05-14 13:45:48 回复
,说的太笼统了!
精品软件课程
更多 >
Java,是由Sun Microsystem... [详细]
C语言是一种面向过程的计算机程序设计语言。多... [详细]
Visual Basic是一种由微软公司开发... [详细]
Oracle Database,又名Orac... [详细]
Visual Basic.NET是从 Vis... [详细]
Visual C++微软公司的C++开发工具... [详细]