问题标签 [c++builder]

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 投票
4 回答
7503 浏览

c++ - 为什么 C++Builder 无法创建预编译头文件?

问题

在 CodeGear C++Builder 2009 中,我们使用预编译的头文件注入来大大减少我们的编译时间。我们将相同的头文件注入到多个项目中。在编译某些项目时,编译器会弹出以下警告:

在此示例中,Dateutils.hpp是它所抱怨的文件(CodeGear 的标头)。我已经看到其他标题也发生了这种情况。有趣的是,这只发生在某些项目中(注入相同的标头)。

过去,我只需要找到最终包含此错误文件的头文件,然后将其从我的预编译头文件中删除。有谁知道这里发生了什么以及解决它的最佳方法?

更新

我最终对头文件执行了消除方法,并提出了一个我无法解释的有趣发现。在包含的 50 多个标头中,当我删除vcl.h时,我不再收到 W8058 警告。我不明白这一点,因为我认为这个头文件特别是预编译的主要候选者。谁能解释一下?

0 投票
5 回答
1285 浏览

delphi - C ++ Builder / Delphi中未初始化的内存

Delphi中的未初始化变量是否保证具有任何特定值

  • 在堆栈上?
  • 在堆上?

由于 C++Builder 通常遵循 Delphi 的设计,因此 C++Builder 中的未初始化变量保证具有任何特定值

  • 在堆栈上?
  • 在堆上,对于从 TObject 派生的类的成员变量?
  • 在堆上,对于POCO的成员变量?

我继承了一些 C++Builder 代码,这些代码在很大程度上依赖于零初始化的成员变量,并试图弄清楚该语言是否能保证这一点。

Windows 是否保证在第一次将内存分配给程序的堆栈或堆时对其进行零初始化?(编辑:我意识到程序在执行时会覆盖内存,因此它不能继续依赖于此;我只是想弄清楚我观察到的行为。)

0 投票
11 回答
7924 浏览

delphi - C++ Builder vs Delphi vs MFC

我正在学习 MFC,发现它并不容易使用。

我听说过很多关于 Delphi 的事情。对 Delphi 的研究将我带到了 C++ Builder。

C++ Builder 是否为 C++/MFC 提供了一个严肃而好的替代方案?C++ Builder 比 MFC 好吗?C++ Builder 比 Delphi 好吗?(我听说过很多关于 Delphi 的好消息)

谁能给我一个 C++/MFC、Delphi 和 C++ Builder 之间的比较?

谢谢您的帮助。

0 投票
1 回答
1280 浏览

delphi - 在 Delphi / C++Builder 中安装多个库版本

如何在 Delphi 或 C++Builder 中安装多个版本的库?例如,我可能希望能够使用当前版本的 JCL 和 JVCL 开发我们的应用程序的下一个版本,同时仍然能够使用为该版本测试过的任何版本的 JCL 和 JVCL 来编译我们的应用程序的发布版本。

使用像 Boost 这样的库很容易使用多个版本的库,因为这些只是头文件和库/DLL 文件,我可以将它们放在我想要的任何位置,因此我可以简单地将我的项目文件指向适当的库目录。但是,由于 JCL 和 JVCL 之类的库尝试将自己安装到 IDE 中,因此我不确定如何配置不同的项目以使用不同的版本,而不会变成无法管理的黑客行为。

(我仍然不完全熟悉 Delphi 如何管理组件和项目——我的大部分经验都是在 C++ 中——所以这可能是我的问题的一部分。)

0 投票
2 回答
1145 浏览

sql-server - Windows 服务中没有数据库连接

我正在尝试在 CBuilder 6(目标 XP Pro)中编写服务。该服务的部分工作是监视和更新数据库中的表。我们使用直接 ODBC 连接到数据库,但问题也发生在 ADO 上,所以为了简单起见,我们将使用它。

你可以在下面看到我的代码。这是从在 ServiceStart 事件中执行的函数调用的。

我的问题是,我无法建立连接。我们的 MSSQL DB 使用域身份验证,因此我尝试使用我的域帐户运行该服务。我也尝试过明确定义我的域\用户名和密码,但这也不起作用(在服务的属性中,登录选项卡)。

任何人都可以帮助我吗?任何事情都值得赞赏。

我的另一个问题是如何调试服务?我安装了远程调试器。我是否使用 rundll32.exe 之类的东西来生成进程?再次,任何帮助表示赞赏。

非常感谢提前

斯图。

代码片段:

注意:connectionstring 属性仅供参考,用户名、密码和数据库已更改。在独立应用程序中使用此字符串会导致始终成功的连接,并且可以使用查询获取数据。


回应JP:

嗨,JP。

谢谢你的评论。我实际上没有在这里抛出异常(这很奇怪)。我修改了代码(见下文)以包含更多的 msgbox,我看到的唯一一个是第一个 - 尝试连接。

有任何想法吗?我不明白为什么连接组件甚至没有被创建(注意我尝试将所有者从这个更改为 NULL 以及只是为了看看会发生什么)。

谢谢!

斯图。

0 投票
3 回答
4626 浏览

linker - 链接器错误:无法打开文件“CHARTGROUPFRAME.DFM”

直到今天,我的 IDE 一直运行良好。

当我尝试编译我的项目时,我得到了这个:

[链接器错误] 无法打开文件 'CHARTGROUPFRAME.DFM'

CHARTGROUPFRAME.CPP 单元是项目的一部分,所以这当然是一个错误。

我该如何解决这个问题?

0 投票
1 回答
382 浏览

c++ - 错误消息:“找不到资源 ExperimentFrame.res”

我正在尝试使用工厂模式在我的项目中创建一个框架 VCL

像这样的东西:

当工厂创建实现类时,我收到一条关于缺少资源文件的错误消息。

例如,如果我TFrameFooBar 使用工厂创建一个类的实例,我会得到这个异常:

项目 gymAce 提出 EResNotFound 并带有消息 "Resource TFrameFooBar not found" 。

这看起来有点像 IDE 问题。

有谁知道这个的解决方法?

0 投票
4 回答
1125 浏览

c++ - 不同编译器的 C++ 虚拟继承实现是否不兼容?

我有这样的公共接口层次结构:

实现 IFooBar 的类与工厂函数一起放入 dll 中。客户端代码加载 dll,使用工厂函数创建类实例并根据接口使用它(它们作为头文件提供)。

Scheme 适用于 MSVC 制作的 dll 和 Borland C++ Builder 6 制作的客户端代码。

我将虚拟继承引入层次结构:

当在相同的情况下(MSVC 的 dll,Builder 的客户端)客户端代码请求类的实例时,他用凌乱的 vtable 得到它。

除了回滚到普通继承之外,还有其他解决方案吗?

0 投票
2 回答
446 浏览

c++builder - 任何人都成功使用了 Codegear Builder 2009 的 Boost SERIALIZATION

如果您成功地持久化了数据,您开始使用哪种类型的流

您是否必须使用任何 BOOST_ASSERTS 或一些额外的 MACRO 或在凌晨 4:00 穿着您的 Moose 毛衣在仙女戒指周围跳舞。

感谢您的回答

0 投票
2 回答
1453 浏览

c++ - 在 C++ Builder VCL 中自动化 RegisterClass

我们将 C++ Builder 用于其表单保存在数据库中 EXE 外部的应用程序。应用程序代码是 C++

这允许我们在不重新编译的情况下修改表单和表单/操作。这是一个完成加载表单工作的代码片段。

我很想知道是否有任何内置函数可以调用来注册所有引用的类。我想可以自己扫描所有对象的内存流或文件并为每个对象调用RegisterClass,但希望有人知道已经这样做的函数。

因此,并非所有表单都使用所有这些类,因此最好只注册那些实际继承的类。