C#和C++的混合编程法_C/C++语言_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

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

作者:黑客防线网安C/C++教程基地 来源:黑客防线网安C/C++教程基地 浏览次数:0

本篇关键词:编程混合double代码
黑客防线网安网讯: 传递数组传递定长数组很简单,此处不述。下面的代码实现变长数组的传递:C++代码:int StaticElementNumber = 10;extern "C" AFX_API_EXPORT bool GetArray(int ElementNumber, double *B...
 传递数组
传递定长数组很简单此处不述下面的代码实现变长数组的传递:
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#平台上就是比较简单的事情了
    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-15424-1.html
网站维护教程更新时间:2012-04-04 22:54:44  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer