P242面:
function ShowCalendar(AHandle: THandle; ACaption: string):longint;
var
  DLLForm: TDLLForm;
begin
  ……
  DLLForm := TDLLForm.Create(Application);
  Result  := LongInt(DLLForm);
  ……
end;这里  
  DLLForm := TDLLForm.Create(Application);
  Result  := LongInt(DLLForm);
是什么意思?DLLForm不是TDLLForm吗?怎么可以转换成Longint型啊?什么意思?

解决方案 »

  1.   

    其中:
    TDLLForm = class(TForm)
      calDllCalendar:TCalendar;
    end;
      

  2.   

    DLLForm 是指向一個實例的引用, 也可當成一個指針, 
    指針本來就是一個整形數,
    在這裹, 將其強制轉為一個整型返回啊! 
    沒什麼問題!!!
      

  3.   

    楼上说的就是原因啊。
    DLLForm不是TDLLForm,而是TDLLForm的一个实例的引用
    它本身是一个指针,所以可以转换成整型返回(指针其实就是整型数)
      

  4.   

    哦?是这样传送指针的值的吗?和C++很不同啊?呵呵请问aiirii(ari-爱的眼睛),不能直接传送指针吗???这么做有什么好处?
      

  5.   

    另外,地址应该是16进制的吧,转换成longint会不会自动变成10进制的?