在C和C#之间传输控制和数据

时间:2010-03-24 03:33:45

标签: c#

C#主程序需要调用C程序GA.c这个C代码执行很多函数和一个函数initialize()调用objective()函数。但是这个目标函数需要用C#编写。这个调用是在C代码的循环中,C代码需要在从objective()返回之后继续执行,直到它的main结束并返回控制 到C#主程序。

C# main()
{
  //code

  call to GA in C;
  //remaining code;
}


GA in C:

Ga Main()
{

 //code
 call to initialize function();
 //remaining code
}


initialize function() in GA
{

 for(some condition)
 {
   //code
   call to objective(parameter) function in C#;
   //code
  }
}

我们怎么做?

2 个答案:

答案 0 :(得分:4)

答案 1 :(得分:0)

这称为回调。在创建GA实例时,将c#objective()方法作为委托传递给它(委托是对类方法的引用)。在C#中查找有关代理的MSDN帮助主题。

我不知道C方面的正确语法。调用非托管代码肯定会有一些特殊的考虑因素。其他人必然会提供完整的答案。 :)