我认为这样是根本不行的。主要因为DLL和EXE分别存在于两个内存块中,不能共享相互之间的内存。除非1、改用Package,这样都在一个内存块中,或者2、使用共享内存。否则上述程序肯定要出错。

解决方案 »

  1.   

    已经使用Application句柄保持同一;如果使用package那又该如何使用
      

  2.   

    句柄保证一致也是没用的。
    Package用法非常简单,New一个Package,把你的程序加入,其实就和写正常的Delphi程序一摸一样。就是你地Project Options中需要选择Uses Packages。
      

  3.   

    我是在DLL中使用Package,那有什么要注意事项?
      

  4.   

    你要注意的是DLL和EXE由于本身都有独立的运行空间,所以只能做简单变量的传递,内存传递是不可能的。
      

  5.   

    我是做动态报表,要根据所传来的DataSet来设计表格,然后由用户自由更改,所以使用DLL,问题就是次次都由于DataSet的问题而导致"非法变量".
      

  6.   

    我觉得你还是把SQL语句传过去吧。Delphi的类都是一块内存,你传过去的不是对象,而仅仅是个指针。
      

  7.   

    把 frmMasterDetail 做为可变参数一块传进去