当DLL动态分配内存的时候,同时分配一份调用DLL的进程私有的一份DLL声明的静态和全局变量的副本,但是可以定义一段共享的数据段来让所有进程共享数据,C++的实现我知道,但是如何在DELPHI中实现??
解决方案 »
- delphi2010 stream.writebuffer中字符串参数的问题
- 存入access的ole 中的word 打开问题!
- 怎样在DELPHI中使用ActiveSkin 控件?
- delphi中的数据模块如何做的,有没有例子
- dephi+oracle 从TMemo存读varchar2类型数据(一篇文章) 数据超过256个字节 其中有换行符
- 如何让delphi做的程序在没有安装delphi的环境下运行?
- treeview的问题?帮忙
- 求助
- Delphi紧急求助!
- 为什么反斜杠是"\",斜杠是"/"????
- 为什么try..except..在调试过程中报错,而直接运行项目.exe中却运行正常?
- 有关IC卡的??
CreateFileMapping;
MapViewOfFile;
DLL在内存中是一份,但变量是存在于在各进程的地址空间中的,所以不能借助dll的全局变量来达到两个应用程序间的数据共享,用上面的方法是最好的
变量是存在于在各进程的地址空间中是没错,但是确实有办法的:
#pragma data_seg(".GLOBALS")
int foo = 1;....
#pragma data_seg()
MapViewOfFile;
是这样实现的,具体代码我有的,要的话只能晚上再给你了
谢谢!用CreateFileMapping ,MapViewOfFile 的例程我也有,不过感觉是太麻烦了(对调用DLL的程序来说).
用C++改写已经完成了.不得不承认,在有些方面C++竟然比DELPHI还简单!不过谢谢大家了!! 现在给分