问题标签 [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 投票
2 回答
2521 浏览

c++ - Borland C++ Builder 中的 Windows 子类化

我们正在尝试将一段使用 CWnd.SubclassWindow 方法在 MFC 中编写的 C++ 代码转换为 Borland C++ Builder 代码。有谁知道如何进行子类化(使用 TForm 对象进行子类化) - 我们完全陷入困境。任何指针将不胜感激!蒂亚!

规格:

我们有一个现有的用 Borland C++ 编写的基类,它继承自 TForm,它用于为从它继承的所有表单赋予某种外观和感觉(例如,它处理 WM_NCPAINT 和 WM_NCHITTESTheavily)。

现在我们想使用此代码为用其他语言(准确地说是 MSVC++/MFC 和 C#)编写的表单提供相同的外观和感觉。

我们认为使用 Windows 子类化将是一个好主意,而不是重写所有代码。然后我们可以将所有现有的和测试过的代码填充到一个 DLL 中,然后只需使用 hWnd 调用它,该窗口就会自动获得新的外观和感觉。

究竟为什么这是不可能的,我真的不能说——我自己不使用 Borland C++ 编写代码。我只用了几分钟就在 MFC 中编写了一个存根,向 Borland C++ 开发人员展示了我想要什么,他们花了几天时间试图模仿 MFC 的 CWnd::SubclassWindow 方法,但没有成功。

据我了解,问题在于当您执行“new TForm()”时,会在您有机会停止之前自动创建一个新窗口。所以替换然后 WindowProc工作但不需要的 TForm 窗口在屏幕上浮动,没有用!!!!

0 投票
1 回答
4187 浏览

c - 如何用(可读的)UTF8 字符编写文件?

我读了一个包含 utf8 字符的文件,如下所示:

它读起来很完美(运行程序时在编辑框中显示):

问题是当我想在文件上写这个时:

问题是,我如何将结果(我可以在运行的程序中看到的那个)写入文件?

我在 CodeGear C++Builder 上使用 C 语言

感谢 Christoph 和 nobugz 的帮助解决了

我改变了这条线

到这个,它起作用了。谢谢

0 投票
1 回答
1767 浏览

c++ - C++ Builder 运行时错误 - 无法聚焦已禁用或不可见的窗口

在主窗体上,我有 TPageControl,在它的所有选项卡上,我都有相应的保存按钮,这些按钮在 Alt+S 组合中被激活。

当然,根据当前打开的选项卡,应该调用相应的保存按钮的处理程序;但是如果我尝试使用 Alt+S 保存,则会出现“无法聚焦已禁用或不可见的窗口”运行时错误。

而且我注意到,在当前选项卡之前处于活动状态的选项卡中的保存按钮的处理程序被调用,但不知道为什么。

我尝试将保存按钮放在面板中(对于一些类似的问题效果很好),但仍然发生同样的事情。

干杯。

0 投票
1 回答
151 浏览

c++ - 当我从命令行编译而不是从 IDE 编译时,为什么会出现歧义错误?

我正在尝试使用 Borland C++ Builder 5.5 编译一个相当大的项目。该项目在 IDE 中编译,但速度太慢。但是,当我使用命令行编译时,会出现 IDE 中不存在的歧义错误:

错误 E2015 Project.h 536:“TTreeNode”和“Comctrls::TTreeNode”之间的歧义

我的命令行参数如下:

d:\PROGRA~1\Borland\CBUILD~1\bin..\BIN\bcc32 -Od -Vx -Ve -X- -r- -a8 -5 -b- -d -k -vi -c -tW - tWM -w-par -I[非常大的包含文件列表] -nQ:\output [非常大的要编译的文件列表]

该命令由 make.exe 生成。

0 投票
1 回答
2022 浏览

c++builder - 如何在 Borland C++ 中禁用主窗体的关闭

0 投票
3 回答
2679 浏览

windows - 如何以编程方式实现“打开文件位置”行为(c++ builder)

在 Windows Media Player 中,您可以右键单击音乐文件并单击“打开文件位置”,它会打开一个资源管理器窗口,其中包含选定的文件。

我希望能够在应用程序中做到这一点。因此,给定一个文件名(作为 ansi 字符串),我希望能够在新的资源管理器窗口中转到该文件。

0 投票
3 回答
4521 浏览

shell - 如何在 c++ builder 中运行命令行“explorer /n, /select,(filename)”?

我试过shellexecute,我试过createprocess,我似乎无法让它做任何事情。

手动运行命令行(在控制台窗口中的实际命令提示符处)可以工作,但到目前为止我尝试过的任何操作都不会从 c++ builder 应用程序中运行它。

显然 (filename) 只是一个占位符。它将被赋予一个有效的文件名,例如

资源管理器 /n, /select,c:\123.doc

0 投票
3 回答
2594 浏览

c - 如何检查 unicode 字符是否在 C 中的给定范围内?

以下函数是为 java 编写的,并已针对 C 进行了调整。

问题是我的框架(“CodeGear C++Builder”)显示了这个错误:

[BCC32 警告] Unit1.cpp(101):W8114 由通用字符名称“\u30a0”表示的字符无法在当前代码页中表示 (1252)

并且是否满足条件不返回true。

例如,一个输入是“ア”(0x30A2)。

我该怎么办?如何更改代码页?

感谢三个答案,他们都解决了。

似乎表达式 \u30a0 不正确,这一切都是正确的

0 投票
2 回答
517 浏览

mysql - 使用 C++ Builder 在 Windows 上编译 MySQL

可能的?想疯了?如果是和否(分别)知道如何去做吗?

0 投票
3 回答
4546 浏览

c++ - C++ Builder [C++ 错误] sysmac.h(58):E2040 声明错误终止

我想创建一个不使用 VCL 的 C++ Builder DLL 项目。但我在 sysmac 中收到此错误。有谁知道这个错误的可能原因?