怎样在BCB 建立的DLL 中声明一共享数据段?

Climbug 2000-02-26 08:21:00
...全文
272 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
halfdream 2000-08-18
  • 打赏
  • 举报
回复
哎,拜托,看清楚问的是什么吧
wu_xin 2000-08-18
  • 打赏
  • 举报
回复
DLL中创建类不是可以的吗?完了!
mingcb 2000-04-24
  • 打赏
  • 举报
回复
用创建共享内存的方法:
进程1:
CreateFileMapping().MapViewOfFile().UnmapViewOfFile().CloseHandle();
进程2:
OpenFileMapping().MapViewOfFile().UnmapViewOfFile().CloseHandle();
具体可查阅C++Builder附带的WIN32帮助文件.
ploto 2000-04-22
  • 打赏
  • 举报
回复
在DLL间共享数据段违反了B2级安全规定,这可能是BCB连接器不支持它的原因(不过BCB也不支持自定义数据段,不知道为什么,可能是INPRISE认为在BCB中编程不需要了,但我认为作为C++的编译器,不应该不支持)。我曾经试过在EXE文件中直接将数据段的属性改为共享,但不知道为什么不起作用。我想如果一个方法不行,换另一种方法是比较明智的选择。我想可能有以下几种解决方法,希望能起到抛砖引玉之功效:
1、用VC做一个数据段的DLL,引出函数只是对数据的访问。再将该DLL连到BCB中去。
2、使用映射文件的方式:CreateFileMapping
3、使用DDE
4、使用MailSlot
wdh 2000-04-22
  • 打赏
  • 举报
回复
在dll中用createfile创建一段共享内存行吗?
olo 2000-04-20
  • 打赏
  • 举报
回复
我也想知道。
Wingsun 2000-04-20
  • 打赏
  • 举报
回复
ploto说的是废话
ploto 2000-04-19
  • 打赏
  • 举报
回复
实在没办法的话,用VC做一个DLL,再连到BCB中去
radish 2000-02-28
  • 打赏
  • 举报
回复
没做过此类应用,不过如果是共享方法(动态装载),好象WIN会自己管理DLL的。另,你可以看看M$出的《COM技术内幕》,看看里边对COM对象的资源释放对你有没有帮助,它是先判断有没有人还在引用COM接口,没有就释放,有就仍然保存在内存中。
Climbug 2000-02-27
  • 打赏
  • 举报
回复
我是指要把DLL装载系统的共享内存中,以便多个进程共享。在BC++ 中,可用
#pragma dataseg()实现,在VC中也可用#PRAGMA data_seg()实现。我翻遍了BCB 的帮助文旦,没有找到有此种说明。
并且在BCB在#pragma 编译错误时不给予任何警告。
我在国外的论坛发表了这个帖子,他们说在BCB中这好象不可能。
希望高手给予指点。
radish 2000-02-26
  • 打赏
  • 举报
回复
你是指多个程序间共享吗?
Firing_Sky 2000-02-26
  • 打赏
  • 举报
回复
直接在前面声明全局变量不就行了?

13,822

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧