社区
VCL组件使用和开发
帖子详情
CB下的DLL工程,接口中使用VCL类会不会有什么隐患?
hind24
2011-01-12 10:54:07
比如DLL的导出函数中,有TFrom *,TApplication *之类的参数,会不会有什么隐患?
不考虑其他语言兼容性,我目前这样用还没发现什么问题,但是之前通过它们来跨模块操作STL容器遇到了一些问题,虽然已经想办法绕开,但是开始担心VCL库是否也会有这方面问题,比如静态变量之类的
如果不安全,使用BPL是不是个好主意?我有动态加载和隐藏库中内容的需要,但是exe对库来说是开放的
...全文
57
6
打赏
收藏
CB下的DLL工程,接口中使用VCL类会不会有什么隐患?
比如DLL的导出函数中,有TFrom *,TApplication *之类的参数,会不会有什么隐患? 不考虑其他语言兼容性,我目前这样用还没发现什么问题,但是之前通过它们来跨模块操作STL容器遇到了一些问题,虽然已经想办法绕开,但是开始担心VCL库是否也会有这方面问题,比如静态变量之类的 如果不安全,使用BPL是不是个好主意?我有动态加载和隐藏库中内容的需要,但是exe对库来说是开放的
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hind24
2011-01-12
打赏
举报
回复
那么有很多用DLL封装窗体的应用,是不是同样面临这些隐患呢
ccrun.com
2011-01-12
打赏
举报
回复
我的建议是在DLL内部可以使用VCL,但是如果要在EXE中使用DLL内部创建的对象指针,这个就一定要注意了。我曾经有一个工程就遇到了这样的问题,在一个单元中写好了一个类,将这个单元直接添加到工程中编译,一切正常,将这个单元封装到DLL中,再调用的时候,就出现Font不能Assign的经典异常,后来不得不改了改才能正常调用。
hind24
2011-01-12
打赏
举报
回复
[Quote=引用 2 楼 ccrun 的回复:]
涉及到内存共享方面,有很严重的问题,打个比方,在DLL内部new了一个VCL对象,然后在App内部使用这个对象指针,可能会涉及偏移不一样的问题导致成员访问失败。目前的解决方法好像只有一个:带包编译,也就是Build with runtime package
[/Quote]dll和exe在同一IDE中编译,也就是分别把相同的包编译进自己,是不是就没有这个问题了?
毕竟暂时用DLL只是为了把代码分割开,同时隐藏一部分代码,其实都是在一个开发环境中编译,只不过可能由不同的人来完成不同部分而已,两者可以保证使用的VCL库一致
ccrun.com
2011-01-12
打赏
举报
回复
涉及到内存共享方面,有很严重的问题,打个比方,在DLL内部new了一个VCL对象,然后在App内部使用这个对象指针,可能会涉及偏移不一样的问题导致成员访问失败。目前的解决方法好像只有一个:带包编译,也就是Build with runtime package
zzbinfo
2011-01-12
打赏
举报
回复
既然不考虑其他语言兼容性,应该没有什么问题
ccrun.com
2011-01-12
打赏
举报
回复
DLL中封装窗体这种情况,反而没有出现过我说的问题.所以你不必担心太多.
DevExpress
VCL
V14.2.2 FullSource〖D7~XE7〗含编译文件
解压后XE7有编译文件,其他版本需要修改编译文件,请阅读说明文档; 另附一键安装工具下载地址(CSDN下载0积分、不要积分): http://download.csdn.net/detail/wozengcong/8395245 另附14.2.2帮助文档下载地址...
最新Delphi XE2 正式版破解程序
新的DataSnap移动连接器,带有原生的平台组件和示例以创建从移动客户端到Delphi DataSnap服务器的连接,支持安卓(Java), iOS (Objective C), 黑莓(Java) 和Windows Phone 7 (C#); 新增和更新的扩展工具,包括...
Delphi调用
DLL
中
的
接口
最近很少上论坛,这几次发现好几个问题都是围绕如何
使用
DLL
中
的
接口
而展开的。 问题描述: 具体问题就是在隐式
使用
接口
变量后,在FreeLibrary执行后,就会出现一个非法访址的错误。 这个错误的原因就是在...
FastReport
VCL
与FastReport.NET到底选谁?
FastReport
VCL
与FastReport.NET同为老牌报表控件FastReport公司的主打产品,受到
中
国报表开发者广泛
使用
和赞誉,那么要怎么在FastReport.Net(以下简称FR.Net)和FastReport
VCL
(以下简称FR.
VCL
)
中
做出选择呢?...
DELPHI 在
DLL
中
封装的
VCL
窗体Tab键响应的问题
在
DLL
中
封装的
VCL
窗体Tab键响应的问题 在
DLL
中
的子窗体
不会
响应Tab按键的,这个时候就需要手动去指定Tab键的操作,但是前提是主窗体要向这个窗体发送一个消息,一个Tab键按下的消息。基本顺序是这样的: 1. 主窗体...
VCL组件使用和开发
604
社区成员
13,460
社区内容
发帖
与我相关
我的任务
VCL组件使用和开发
C++ Builder VCL组件使用和开发
复制链接
扫一扫
分享
社区描述
C++ Builder VCL组件使用和开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章