社区
C++ Builder
帖子详情
怎样在BCB 建立的DLL 中声明一共享数据段?
Climbug
2000-02-26 08:21:00
...全文
272
12
打赏
收藏
怎样在BCB 建立的DLL 中声明一共享数据段?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
打赏
举报
回复
直接在前面声明全局变量不就行了?
设置
dll
的
共享
数据
段
BCB
直接在
DLL
中
定义
共享
内存单元的步骤如下: 假设
DLL
的工程名为MouseHook.bpr(编译后产生MouseHook.
DLL
) 1.在一程序模块 Unit1.cpp的最前面加上: #pragma option -zRSHSEG // 改变缺省
数据
段
名 #pragma option -zTSHCLASS
C++Builder 6 [
BCB
6]
共享
数据
段
错误 测试 (bug 、[Linker Error] Section SHSEG defined in .def file is empty)
这个话题,可以说网上绝对没有一个帖子或者答案是齐全的,是让人信服的。更有些都是摘抄的
BCB
4的一些论坛上的 我花了4个小时,对
BCB
的
共享
数据
段
做了一些较浅,易懂的测试。网上的一些帖子LZ说自己解决了,然后还给了很多自己的看法,大多数都是有问题,或者是断章取义的。 比如以下是一个作者给出的编译成功的条件: 1)ShareUnit.cpp文件
中
必须用struct,(2)
BCB
调用
dll
文件
中
注意的问题
开发过程
中
,模块化是必不可少的部分。
BCB
做
dll
文件非常方便,不过有个问题浪费了我好长时间,这里说一下。
dll
是用
bcb
做的,因为要用到界面上的东西,所以选择了VCL支持。 在主模块
中
调用.
dll
时,老是出现一个错误提示:[Linker Error] Unresolved external referenced from,该调的地方都调了呀,可是就是找不到原因。 我的
在C++Builder
中
创建
共享
内存
段
原文来自 community.borland.com原文名字:Creating A Shared Memory Segment with C++Builder 4.0译名: 在C++Builder
中
创建
共享
内存
段
C++Builder 4.0 是第一个支持
共享
内存
段
的C++Builder 编译器。本文解释如何在windows
DLL
中
使用此特性。要改变
数据
段
和类名字,您需要在您想要
共享
的文件
中
增
lib和
dll
文件的区别和联系
lib文件与
dll
文件区别
C++ Builder
13,822
社区成员
102,680
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章