我使用了回调函数,并使用TForm1的指针作为参数,
即 LongInt(@TForm1)
然后在VC里面调用这个DELPHI的回调,
当回调函数得到响应的时候,我得到的只是一个longint我想把他转化成TForm1,怎么办??

解决方案 »

  1.   

    这个longint只是一个地址值
    TForm1 *f=(TForm1 *)v;  // v 就是你的 longint以下是在 C++ Builder 中通过 int x; //Form2是一个已经创建的窗体,只是没有显示
     //现在将地址的值赋到Int类型中
     x=(int)Form2;  
     
     //将Int类型强制转换为地址值
     //并将地址值赋到 TForm对象变量上
     TForm *t=(TForm *)x; //TForm对象变量t获得了Form2的地址,即t已经是Form2的对象变量
     t->ShowModal();VC中也差不多
      

  2.   

    对,我的那个longint是地址值,在DELPHI中怎么用那个值呢??
      

  3.   

    假设你的对象为Form1。那么要将Form1的指针转换为Longint,可以直接:
    Longint(Form1),而不用@取指针.这是因为Delphi无法像C++那样可以在栈上面创建对象,只可以在堆上面创建对象.类似于: TForm1 *Form1=new TForm1()这样创建的Form1.所以如果要将一个Longint转换成Form1,可以直接 TForm1(i)这来转,(假设i为longint类型).
      

  4.   

    http://expert.csdn.net/Expert/TopicView1.asp?id=199188255555555~~~~~~~~~~~~我在那个帖子里面写那么多,你一分都不给......................................
      

  5.   

    倒,没看见,呵呵。SORRY,分不是问题,
    几万分都可以给的。