示例方法:
public int aa(int a ,int b)
{
    return  a+b;
}c#获取怎么来获取aa方法的指针?
请高手赐教!

解决方案 »

  1.   

    委过吧.
    delegate daa(int a,int b)
      

  2.   

    delegate 怎么返回指针呢?
      

  3.   

    我不是很会.
    但我感觉return 了还能获取得到吗?
      

  4.   

    委托帮你封装好指针了,用不着你直接去操作指针
    或者
    写unsafe代码
      

  5.   

    我也不太明白,现在就是要一个uint类型的方法指针
      

  6.   

    说了这么一大对,楼猪还是整一个完整的事件算求了EVENT
      

  7.   

    但是委托怎么返回一个uint类型的值呢?
    悬赏加分了~~~~
      

  8.   

    因为c#调用C++里面的一个方法,这个方法的参数是一个结构,结构里面有一个成员需要一个函数的指针(c++:DWORD对应c#:uint)。所以才需要这个值!
      

  9.   

    你是调用api的回调需要一个uint类型的函数指针吗?
    这种情况下可以将那个参数声明为委托类型
    .net 封送时会给你转成函数指针的.
      

  10.   

    直接传delegate就行,如果一定要返回其指针,可以这样delegate int Vpointer(int A, int B);
    static void Main(string[] args)
    {
         Vpointer vp = aa;
         IntPtr p = Marshal.GetFunctionPointerForDelegate(vp);
    }
    static int aa(int a, int b)
    {
         return a + b;
    }里面的p就是一个uint形式的函数指针。
      

  11.   

    intptr直接转uint或者int*都可以传进去。本身delegate也可传进去,你定义那个结构的时候将该字段定义为一个delegate类型,例如上面代码中的Vpointer类型。
      

  12.   

    我告诉你吧,你定义一个委托,用一个方法可以获得这个委托的指针,也就是你想要的这个委托的方法指针了
    我做过这块,是调用C++的一个方法需要把指针传送进去,当然你定义方法的时候也可以定义成委托类型的参数
    这样你传委托就可以,这个没试验过所以不敢确定,但是我敢确定的是委托可以转换成intprt类型的句柄,取得这个句柄以后转换成int类型的就行了。toint32();