DLL是由Exe程序调用的,但是我现在做的时候怎么也共享不了bpl的变量,是怎么回事?各位大侠救命呀!

解决方案 »

  1.   

    编译选项。。BUILD WITH RUNTIME PACKAGE选中试试。
      

  2.   

    在dll调用中是共享不了变量的
      

  3.   

    在widnows 32位程序中,两个应用程序的地址空间是相互没有联系的。虽然DLL在内存中是一份,但变量是在各进程的地址空间中,因此你不能借助dll的全局变量来达到两个应用程序间的数据传递,除非你用内存映像文件。
      

  4.   

    Jurek(凹凸风云) 我说的是bpl的全局变量,不是DLL
      

  5.   

    我只知道大概方向是  是接口
    type
      TIMyInterface=Interface
      {[8323938-2H384-345VF32-345324FWW3]}
    end;
      

  6.   

    你是说,用dll来取bpl的全局变量?
      

  7.   

    楼主,是可以共享BLP的变量,但编译选项至少我说的那样。
    EXE ------------
     \               \----> XXX。BPL
      \---->YYY.DLL-------->
      

  8.   

    halfdream(哈欠)这个我做过了,奇怪就是不行的,不然我不就不发贴了
      

  9.   

    搞定了,谢谢各位,这个问题主要是家里的D7运行环境和公司里的不一样,装的VCL包不一样,我去掉了一些,运行就出问题了,后来我一个一个的加和减就ok了。
      

  10.   

    我这个方法可以试一下:传变量地址。DLL:function Swap(Var a, b : Integer);