activex - 升级到 C++Builder 11 后创建 ActiveX 控件时访问冲突
问题描述
下面的代码在隐藏窗体上创建一个 ActiveX 组件。它适用于 C++Builder 10.4,但在使用 C++Builder 11.0 编译时会崩溃。
container = new TForm((TComponent*)NULL);
container->Visible = false;
softlock = new TCryptoLicense(container); // <= A.V.
softlock->Parent = container;
访问冲突发生在TControl
after的构造函数中CreateTouchManager
,当它使用FTouchManager
. 我已经尝试了以下没有帮助的事情:
- 使表格可见
- 将 Owner 添加到 Form 构造函数
- 调用
HandleNeeded
容器 - 延迟创建它,而不是在应用程序启动时
将组件拖放到新应用程序中的表单会导致在设计时发生相同的异常。
解决方案
将 ActiveX 控件重新导入到新包中解决了该问题。也许 CB10 和 CB11 的一些数据混淆了。
推荐阅读
- c++ - qmake - 未检测到配置更改并且库不会重新编译
- regex - Openrefine,匹配括号内的文本
- android - 回收站视图中的 DiffUtils 与稳定 ID
- excel - Excel VBA 从选定行复制特定单元格并粘贴指定列其他工作簿
- ios - Realm 并不总是从云中返回其主键的对象,尽管它确实存在于云中
- camunda - Java 代码委托使用的通用上下文基类是什么?
- c# - 如何使用 LINQ C# 将几个属性的值从一个列表更改为另一个列表:
- php - 准备好的语句 MySQL UPDATE 不更新数据库值
- c++ - 在类中声明一个常量“列表”
- android - 我经常发现这个特定的错误:“无法识别启动活动:启动活动时未找到默认活动错误”