问题标签 [c++builder-2010]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
684 浏览

delphi - 为另一个表单重命名 TAction

我有 2 个表格,我想分享一个TActionManager并分配TAction-s。

第一种形式是主要形式 - 它拥有TActionManagerTAction标题为“Action”。

Form1 的主菜单将此操作和菜单项标题属性设置为“操作 A”。Form2 包括 Form1 并且还将操作分配给 menuitem,并且标题设置为“操作 B”。

在设计期间,一切看起来都不错 - 菜单项在 Form1 和 Form2 中被命名为“Action A”和“Action B”,并且分配了相同的操作。它在运行时也可以正常工作(两种形式的 OnExecute 都得到了正确处理)。

但是 - 在运行时,Form1 菜单项具有标题“Action A”,而 Form2 具有菜单项标题“Action”,就像操作标题一样。

我是否错误地包含了它们,是否可以在 Form2 上包含 Form1 以共享操作和更改标题?它是 D2010 / CB2010 中的错误吗?

例子:

  1. 创建 Form1 和 Form2 并将主菜单添加到两者
  2. 将 TActionManager 拖放到 Form1 并在其中创建 Action1。
  3. 在 Form1 Action1 中分配菜单项,然后修改 Caption(标题现在显示为粗体,表示从默认值更改)
  4. 在 Form2 中分配菜单项以及 Action1(来自 Form1 TActionManager)并更改默认标题。
  5. 现在在运行期间,Form1 已更改标题(不同于 Action1.Caption),并且 Form2 具有与 Action1.Caption 相同的标题,尽管标题应该是在步骤 4 中更改的新值。
0 投票
1 回答
898 浏览

c++ - 使用 C++ builder 2010 从 Access 打开 DAO 记录集

由于缺乏有关在 internetz 上使用 DAO 和 C++ 的信息,我感到非常恼火。因为我有事情要解决,所以我不得不摆弄它,我正在考虑跳出窗户:)

我发现的唯一例子是 VB6、VB.Net 和 VBA 相关的。我试图将它们应用于 C++ 并有以下内容

但它只是不想工作。我首先尝试仅使用 sql 查询,然后添加dbOpenDynaset设置并尝试其他设置。但执行只是停止。我在想 C++ 中的函数可能需要更多变量,OpenRecordset但 IDE 没有关于它的文档,所以我有点摸不着头脑。

选择实际上将包含一些连接,但我将其剥离以查看是否是问题所在。但是这个简单和更复杂的查询都在 Access 中执行。

0 投票
1 回答
363 浏览

c++ - C++ builder 2010 中奇怪的“随机”内部编译器错误

我有一些代码将一堆TNotifyEvents放在一个vector中。

这是应用程序的主要形式的成员。在表单构造函数中,它填充了事件。

然后迭代此向量并用于创建弹出菜单并将通知事件分配给该弹出菜单中的元素。

在本地编译它没有问题。当我在构建服务器上编译它(运行TeamCity 6.5)时,我在等于第二个push_back调用的行上得到一个内部编译器错误。

我尝试通过编辑cbproj文件在构建代理上本地禁用智能缓存预编译标头。这产生了成功的构建。所以我从所有cbproj文件中删除了使用智能缓存预编译头文件的指令并提交了更改。我告诉TeamCity进行一次干净结帐,但我再次在同一个地方遇到了相同的内部编译器错误。奇怪的是,在失败的编译成功后运行新的编译,所以这感觉非常随机。

到底是怎么回事?我习惯于在其他 C++ 编译器中传递函数指针(由我自己创建)就好了。TNotifyEvents的内部处理是否损坏或编译器只是不稳定且容易损坏?

查看其他采用TNotifyEvents的代码,它们不适用于引用或指针,所以我没有尝试。而且由于代码(当它编译时)按预期工作,这似乎不是问题。

更新:

我可以补充一点,TeamCity的日志显示 FrontEnd.cpp 文件(包含此代码)在我重新运行编译并且成功时被跳过。

如果发生内部编译器错误,编译必须成功。否则它怎么可能跳过编译文件而仍然神奇地出现并以编译的形式使用?:)

更新2

经过调查,我可以确认这仅在以发布模式编译时发生。在发布时,它甚至发生在 IDE 中的本地机器上。我试过摆弄像这样的设置

  • 禁用所有优化
  • 生成最快的代码
  • 外部类型文件
  • 等等

在每次尝试之间清理构建。但 ICE 并没有消失。然而,我确实设法让它抱怨另一个文件中的另一个位置。将设置设置回之前的状态不会使错误返回到FrontEnd.cpp文件。这个编译器感觉有点不稳定:)

事实上,我开始得到 ICE 的所有代码,并且必须重新启动 IDE 才能编译任何东西。

0 投票
2 回答
5134 浏览

linker - 了解 .cbproj 文件中的包导入

我正在使用 Embarcadero RAD Studio 2010 (C++)。项目文件 (.cbproj) 有五个不同的标签,其中包含 .bpis 或 .libs 的列表。我想要一些关于链接器如何使用这些库文件列表的信息(在使用或不使用运行时包进行构建时)。

LinkPackageImports

LinkPackageStatics

所有包库

包库

PackageImports
我想我已经理解了最后一个。它包含可以从 IDE 中的项目属性设置的运行时包列表。

这个问题的动机是我试图从我的应用程序中消除不必要的依赖关系。.cbproj 中的这五个标签似乎都包含任意种类的不同库和 bpi。一些我知道我不需要的库,还有一些我认为我不需要的库。从某些列表中删除某些库似乎没有效果,而从其他列表中删除其他库会导致表单的链接器错误[ILINK32 Error] Fatal: Unable to open file 'FILENAME.OBJ'

我正在慢慢解决所有链接器问题,但是当我在这五个列表之一中包含库名称时,确切地知道我告诉链接器做什么会很有帮助。

0 投票
1 回答
129 浏览

msbuild - 使用 msbuild 编译 C++Builder 2010 项目时启用特定定义和设置输出路径

您如何使用cmd 中的msbuild构建C++ Builder 2010项目并指定您希望创建的 exe 以“../FooBar”结尾,并且在编译时应设置定义 “FOO” ?我不希望它删除 .cbproj 文件中已经定义的任何其他定义。

我在我的 msbuild 脚本中尝试了各种属性,但似乎没有任何效果。C++ Builder 2010 是否使用旧版本的 msbuild 来支持此功能?

澄清一下,这一切都是在使用任务标签的msbuild 脚本中完成的<msbuild />

0 投票
0 回答
287 浏览

msbuild - msbuild 脚本无法构建 C++ Builder 2010 项目的特定构建配置

我在 C++ Builder 2010 中有一个项目组。它包含多个项目。其中一个项目除了DebugReleae之外,还有一个Demo构建配置,它是Release配置。

我遇到的问题是,如果我从我们拥有的构建脚本中运行它,调用项目组文件并告诉它我想使用Demo配置进行构建,我会收到一个关于unresolved WinMain的错误。通过使用不存在的构建配置名称,我得到了同样的错误。所以我最初的想法是,这一定是因为项目组中的其他项目没有Demo配置。但是,当我尝试从 cmd 对项目组文件运行 msbuild 并将其传递给Demo时,它构建得很好。

使用 cmd 中的 msbuild 构建特定项目也是如此。我已经检查了Config /*Configuration* 属性是否通过每个<msbuild />任务调用进行了传递,并且确实如此。

破解项目组(.groupproj )文件并在运行Release时强制它为有问题的项目运行Demo也有效。

知道是什么原因造成的吗?

更新

此外,通过在选择Demo时仅运行主构建脚本中的特定项目,它也可以正常工作。请注意,发布版本已由之前的构建脚本构建。

0 投票
1 回答
1219 浏览

c++ - 绕过两个类之间的歧义

我已经从 Rad studio 的官方网站下载了 TVersionInfo VCL,并在我的 IDE 中成功安装了它,因为它们出现在我的工具箱面板中。将其粘贴到我的项目中并第一次尝试构建它。我确信它会构建好,因为我已经运行了它附带的测试项目。没问题。但是在我的项目中,在编译过程中出现了错误。由于使用 Fib plus 包进行 interbase db 访问连接,这一切都发生在我身上。以下是消息中出现的错误:

我认为 FIB IB 服务类也具有相同的类名,因此两个类名之间存在冲突。如何解决这个问题?如何使两个类像使用命名空间或其他东西一样一起工作?

0 投票
1 回答
1452 浏览

c++builder - 从 TDateTimePicker 获取日期时间

我无法从 C++ 构建器 ide 中的 TDateTimePicker 获取日期时间。我正在格式化它以显示日期和时间,但它只显示日期,因为我认为它的Kind属性设置为dtkDate. 是否可以从此组件获取日期和时间?

0 投票
4 回答
702 浏览

c++ - 是否可以缩短此声明?

是否有可能缩短此声明,因为我在代码中经常使用它

例如,我用它来Object转换为我的CustomObjectusing

有没有可能缩短这个 usingtypedef static_cast<TCustomClassName*>或类似的东西以确保可以使用 cast 运算符 in typedef

0 投票
1 回答
4843 浏览

c++ - time_t 的 C++ Builder 错误“预期类型名称”

我有一行源代码:

我收到以下错误:

我已经包括<time.h>. 我在这里想念什么?


代码: