函数opendevise(COMM, (LPVOID)POSTCallBack, (LPVOID)this)是DLL库中的函数在VC下的调用方式,在C里第三个参数This怎么写?

解决方案 »

  1.   

    你把你的this代表的对象名写上应该可以吧!
      

  2.   

    this指针只有C++才有啊,C语言里面没有this指针。这个要看opendevise这个函数怎么实现了,如果它回调的是类的方法的话,
    如 this->*POSTCallBack(),这个函数就无法在C语言里面调用,只能在C++里面使用。
      

  3.   

    类是C++中的概念,C里面没有类,自然也就没有this。
      

  4.   

    一个提供给回调函数用的数据指针而已,如果你在回调函数的实现中需要用到自己定义的数据,把用到的数据取址传进去就是了(有多个数据的话就封装到一个结构中,传该结构体的址),如果不需用到自己定义的数据,传NULL就行。
      

  5.   


    struct tag//原理大概是这样
    {
    int a;
    int b;
    tag* this_i;//直接写this命名vc通不过,用它替代
    void opendevise(int ddd, void*, void*){};
    };
    tag t;
    t.this_i = &t;==============================================
    但是楼主显然搞混了概念,虽然你也可以在c里实现this指针的功能
      

  6.   

    this像是一个智能指针。
    C是没有的~~~
      

  7.   

    第三个参数你应该可以填NULL。