问题标签 [c++builder-5]
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.
c++ - 使用 C++Builder 5 将 UTF-8 转换为 WIN1252
我必须将一些 UTF-8 编码的文本文件导入到我的 C++Builder 5 程序中。是否有任何组件或代码示例可以实现这一点?
c++builder - C++ Builder 在 make 后并不总是允许断点
在 C++ Builder 5 中,当我在“制作”我的项目后设置断点时,断点不会占用。通常在您可以设置断点的行旁边有一些点。我每次都必须重新构建整个项目(这是一个大项目)。有没有解决的办法?
multithreading - 使用 TThread 与 UI 线程通信时如何避免使用计时器
我有一个 TThread 接收和发送到 COM 端口上的设备。读取数据后,我想使用 Synchronize(function name) 激活 GUI(不在同一个线程中)。但是,当我调用 GUI 的表单函数来执行按钮单击时,我遇到了访问冲突。我检查了表单的值是否为 null 而不是,因为这将是访问冲突的明显原因。现在,我正在设置全局标志并使用一个计时器来不断检查是否满足某个条件,如果满足,那么我会触发该表单中的按钮单击事件。这似乎是避免访问冲突的唯一方法。
我真的不喜欢计时器,所以有没有办法避免在表单上使用计时器?
c++ - 迭代结构;在 RichEdit 框中轻松显示结构字段和值
是否有更简单的方法来显示控件struct
中的字段及其相应的值RichEdit
?
这就是我现在正在做的事情:
ETC...
有没有比必须单独调用每个更简单的方法?我想读取一个二进制文件,然后在RichEdit
我正在构建的一个小实用程序的控件中显示相应的结构,但没有找到其他方法。我知道如何读取二进制文件并将值读入struct
已经。
c++ - C++ Builder - 即时生成 TThreads
我正在寻找生成线程或函数的能力,以便它立即返回到调用行并继续执行程序,但继续执行线程工作。
例如,如果您调用 Form.ShowDialog(),它将创建一个具有自己的 UI 线程的无模式表单。
有没有办法做到这一点(没有形式)而不必声明一个 TThread 类?我想有点像匿名线程,如果它甚至存在的话。
c++ - 函数应该返回值问题
给定这样的功能
为什么编译器会抱怨“函数应该返回值”。除非我遗漏了什么,否则它怎么可能不返回真假?是因为 myCode 的值依赖于运行时,所以编译器不确定逻辑路径吗?
command-line - 从 IDE 和命令行构建 C++ Builder 项目有什么区别?
从 IDE 和命令行构建项目时,我有不同的编译器行为,我无法解释。
详细问题的描述相当大,但它真的很简单。
我有一个 C++ Builder 项目,其中包含一个 PAS 文件(IncludeUnits.pas)。这个 pas 文件列出了几个单位和 inc 文件。这些文件位于单独的文件夹中,这些文件夹列在项目选项中的库和包含路径中。
文件夹布局:
C:\Demo\Bin
C:\Demo\Project
C:\Demo\Project\CBuilder5
C:\Demo\Project\Common
C:\Demo\Source
C:\Demo\Source\Common
Bin 是输出文件夹,Project/CBuilder5 保存项目(bpr-file),Project/Common 保存包含的 pas 文件(IncludeUnits.pas),Source 和 Source/Common 保存其他文件(pas&inc)。我认为这是非常常见的布局。
C:\Demo\Project\Common\ IncludeUnits.pas:
C:\Demo\Source\ Test.pas:
C:\Demo\Source\Common\ Test.inc:
如果我从 C++ Builder IDE 编译这个项目 - 它会编译得很好。C++ Builder IDE 在 IDE 设置集中没有任何额外的路径。
现在,我想从命令行编译它。首先,我发出
bpr2mak.exe 我的项目.bpr
命令。
此命令创建 MyProject.mak 文件,我可以在其中看到所有路径(“....\Source”和“....\Source\Common”是有问题的路径):
...
INCLUDEPATH = $(BCB)\include;$(BCB)\include\vcl;..\Common;..\..\Source;..\..\Source\Common
LIBPATH = $(BCB)\ lib\obj;$(BCB)\lib;..\Common;..\..\Source;..\..\Source\Common
...
现在,我运行 make 命令:
make.exe -B -f"MyProject.mak"
它给了我以下输出:
C:\PROGRA~1\Borland\CBUILD~2\BIN\dcc32 -N2....\Bin -N0....\Bin -$Y+ -$W -$R -v -JPHNE -M -UC: \PROGRA~1\Borland\CBUILD~2\bin..\include;C:\PROGRA~1\Borland\CBUILD~2\bin..\include\vcl;..\Common;..\..\Source ;..\..\Source\Common -D_DEBUG;_RTLDLL;NO_STRICT -OC:\PROGRA~1\Borland\CBUILD~2\bin..\include;C:\PROGRA~1\Borland\CBUILD~2\bin ..\include\vcl;..\Common;..\..\Source;..\..\Source\Common --BCB ..\Common\IncludeUnits.PAS
Borland Delphi 版本 13.0 版权所有 (c) 1983, 99 Inprise Corporation
C:\Demo\Project\Common\IncludeUnits.pas(1) C:\Demo\Project\Common\IncludeUnits.pas(1) C:\Demo\Project\Common\IncludeUnits.pas(1) C: \Demo\Project\Common\IncludeUnits.pas(6) C:\Demo\Source\Test.pas(1) C:\Demo\Source\Test.pas(5) 致命:找不到文件:'Test.inc'
如您所见 - 所有搜索路径都传递给编译器,文件 (Test.inc) 都在这里 - 在 Source\Common 文件夹中。但是编译器仍然找不到它?
当然,我从带有 bpr-file 的文件夹中运行这两个命令。将路径更改为绝对路径也无济于事。
将 Test.inc 从 Source\Common 复制到 Source会有所帮助。将 {$I Test.inc} 更改为 {$I Common\Test.inc}也会有所帮助。
为什么?看来我错过了什么。请记住:从 IDE 编译项目没有问题,没有复制或更改声明即可找到 Test.inc。我错过了make或dcc32的一些开关吗?
c++ - 处理 TCP 流
我们的服务器似乎是基于数据包的。它是对旧的基于串行的系统的改编。多年来,它已经被添加、修改、重建等。由于 TCP 是流协议而不是数据包协议,因此有时数据包会被分解。ServerSocket 的设计方式是,当 Client 发送数据时,部分数据包含我们消息的大小,例如55
. 有时这些数据包被分成多个部分。它们按顺序到达,但由于我们不知道如何拆分消息,因此我们的服务器有时不知道如何识别拆分消息。
所以,给了你背景信息。如果数据包被拆分,那么重建数据包的最佳方法是什么?我们正在使用 C++ Builder 5(是的,我知道,旧 IDE,但这是我们目前可以使用的全部内容。在 .NET 或更新的技术中重新设计的工作量很大)。
stl - 在 Borland C++ Builder 5.0 中构建 STL 应用程序
我是 Borland C++ builder 5.0 的新手。我使用了在一台机器(Window 2003 Server SP2)上成功编译的小型 STL 应用程序,但在另一台机器(Windows XP 机器 SP3)上没有。我已经放置了一个代码片段和错误消息
我打开了 Borland C++ Form 并在 Form Create 中添加了以下代码
c++ - Borland C++ v5.5 安装程序
我已经下载了最新版本的 Borland C++ 5.5 编译器。我已经安装了exe文件,但程序没有运行。
我在安装包的 READ ME 文件中找到了这个,但我什么都弄不出来..
安装和运行命令行工具
运行freecommandlinetools.exe;选择要安装免费 C++Builder 5 命令行工具开发系统的驱动器和文件夹。
从您安装的 bin 目录中:将“c:\Borland\Bcc55”添加到现有路径 b. 创建一个 bcc32.cfg 文件,它将设置
通过添加以下行来选择 Include 和 Lib 路径的编译器选项(-I 和 -L 切换到编译器): -I"c:\Borland\Bcc55\include" -L"c:\Borland\Bcc55\lib" c. 创建一个 ilink32.cfg 文件,该文件将通过添加以下行来设置 Lib 路径的链接器选项: -L"c:\Borland\Bcc55\lib"
请帮助我理解这一点。