用EXE和DLL共享BPL中的资源,bpl中写了点函数和全局变量,编译安装,EXE DLL工程都勾选了BUILDER WITH runtime package
可以调用,但是不相同,BPL在内存中装载不止一个,不知道为什么
我只是想静态调用,一次装载进内存一个实例供给调用,经测试发现主程序中给全局变量赋值后再DLL读不出
而在DLL中赋值后 主程序中还是以前的那个值大家解决一下,可以加分

解决方案 »

  1.   

    EXE和DLL加载到内存中,是被系统分配到两个独立的地址空间上,所以加载时会加载两份BPL。因为,虽然你勾选了“BUILDER WITH runtime package”,但是在编译时,EXE和BPL、DLL和BPL之间做的是静态绑定。要共享一份BPL,你应该使用LoadPackage,动态加载BPL。
      

  2.   

    以前有份DELPHI7下这样开发的不需要loadpackage ,包安装后就直接可以用了
    不知道怎么实现的,
      

  3.   

    怎样设置可以不允许创建两个BPL的实例,而只创建一个供程序使用