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

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 投票
1 回答
931 浏览

c++ - 将 DLL 代码从 Borland C++ Builder 6 移植到 Microsoft Visual C

我需要一些来自/for DLL 的旧 C++ 代码的帮助,这些代码是用 borland c++ builder 6 编写的,我必须在 VS2008 或 VS2010 中重新编译它。由于我们所有的测试都表明 MSVC 优化代码超过 4 倍(速度)然后 borland builder ......而且我们的软件有一种实时要求。我已经用 std 或 win32api 函数重写和/或包装了很多 VCL 代码,主要是 AnsiString、事件、线程、列表的类,所以大多数代码都能编译并且运行良好......

但是我遇到了一个我不知道如何单独解决的障碍,所以我请求您提供任何帮助。

我不知道如何实现可以模拟__closure关键字的东西。我知道这是 borland c++ builder 特定的关键字,并允许程序员使用指向成员函数的通用指针。我知道这在本机 C++ 中是不可能的,因为指向成员函数的指针不是常规函数指针,而是类似member_function_pointer=function_pointer-this. 所以__closure必须保存thismember_function_pointer。但我不知道如何实现这一点。也不怎么可能,因为我们代码中的类彼此不认识,这将违反面向对象编程原则的所有原则。

我为我生疏的英语感到抱歉:S 感谢您的时间和帮助。

0 投票
5 回答
4525 浏览

c++ - 在 Borland C++ 6 中从 Windows 获取程序文件目录

我必须创建一个可执行文件(使用 Borland C++ Builder 6)来代替 Windows 7 的批处理文件,因为权限不允许普通用户(非管理员)运行必要的批处理。我们有许多不同的 Windows 7 机器,一些 64 位和一些 32 等。我遇到的问题是“程序文件”目录被硬编码到程序中,但它并不总是正确的程序文件目录,这会导致某些机器上的一些错误。

我熟悉从注册表获取程序文件目录的方法,但我担心这不适用于所有机器,因为权限设置不允许程序访问注册表。我一直在寻找像GetWindowsDirectory这样的功能,但无济于事。有没有人有什么建议?

编辑:我已经在 Windows XP 机器上对此进行了编程,以便简单地放置在 Win7 上(没有办法改变或避免 XP/7 的事情,可能很糟糕)。这是一个无需安装的简单实用程序;它只是放在一个文件中。它只需要出去找到程序文件目录来执行一些任务。

0 投票
2 回答
2413 浏览

c++ - wglShareLists 失败并出现错误 6:ERROR_INVALID_HANDLE 句柄无效

我尝试在两个类之间共享一个 HPBUFFERARB:TGLForm 和 TGLForm2。(我尝试过 FBO,但有一个旧的 Borland Builder 6 版本,我无法使用 FBO 管理)

我的目标是在两个 openGL 窗口中显示相同的缓冲区。

所以我在第一个表单之外声明了这个对象:

我对其进行初始化,使其具有与第一个 GLForm 相同的像素格式:

这是我的第一个 DrawScene:“PaintGL()”绘图完美地绘制在此表单上:

这是我的第二个 GLForm 的 DrawScene:问题是我只看到彩色四边形,但这个 QUAD 没有纹理,或者纹理是空的:

=> 我如何检查这个纹理是否为空?

将其导出到位图并检查它?

=> DrawSceneForm2 中的 wglShareLists 使用 GetLastError 返回错误:

错误 6:ERROR_INVALID_HANDLE 句柄无效。

=> 有人看到这个 wglShareList 或我的代码有什么问题吗?

0 投票
2 回答
170 浏览

c++ - 移植/重新编码非常大且旧的 C++Builder 代码到 Qt 或 CLI/Mono

您好,我需要重新制作一些旧的 C++Builder (6) 项目并使其适用于 Linux/Windows。

主要和大项目部分是

  1. OPC 客户端(和其他一些客户端)
  2. 使用数据库(目前是 MS SQL)但可能移植到另一个数据库,如 postgres 是另一项任务。
  3. 表格/报告/图形/图表的 GUI 组件!

另一个麻烦是我目前只有几个月的时间。

所以我想问:移植它是否更好/更容易?MinGW dll + CLR GUI ?吗?也许是 U++ ?

谢谢你。

0 投票
0 回答
1002 浏览

winapi - MDI 应用程序未从 Windows 7 任务栏接收 WM_ACTIVATE 和 DWM 消息

我有一个用 Borland C++Builder 6 编写的 MDI 应用程序(升级到新版本不是一种选择),并且正在使用该ITaskbarList3界面将 MDI 子窗口集成到 Windows 7 任务栏中。按照 Microsoft 的文档,每个 MDI 窗口都会创建一个代理窗口来接收来自任务栏的消息。我注册的选项卡ITaskbarList3确实出现在任务栏上,代理窗口确实接收WM_GETICONWM_ACTIVATEAPPWM_SYSCOMMANDWM_CLOSE消息。但是,它们不接收任何WM_ACTIVATEWM_DWMSENDICONICTHUMBNAILWM_DWMSENDICONICLIVEPREVIEWBITMAP消息。没有这些,该功能将毫无用处。

我认为这可能是一个清单问题(该应用程序确实使用 SoftGems TThemeManager),所以我从 C++Builder 2010 应用程序中提取了一个清单,添加了一个“兼容性”部分以将 Vista 和 Win7 标记为支持的操作系统,并替换了库存带有新清单的已编译可执行文件中的清单。仍然没有运气。

我错过了什么吗?

0 投票
2 回答
1297 浏览

c++ - 检查是否单击了任何其他按钮

我试图找到答案,但没有找到。

我想做这样的事情:当我单击按钮时,我希望它重复操作,直到单击另一个按钮

我有这样的事情:

我想在“if”中重复操作,直到我点击另一个按钮。

有人可以告诉我,我怎样才能做到这一点?

0 投票
1 回答
442 浏览

c++ - 在 C++ 程序中扭曲字体的某些机器上修复大系统字体?

我编写了一个程序(使用 Borland C++ 构建器),它可以在正常的默认 Windows 设置下正常工作。但是某些用户已经更改了他们的系统以使用比正常更大的字体(例如,他们更改了 Windows 主题或更改了系统设置以使字体更大以防止视力不佳等)。这使我的很多文本和字段都无法显示。我记得几年前必须克服这个问题,但我似乎找不到任何关于如何做到这一点的信息——甚至找不到从哪里开始。

所以问题是:有谁知道我如何在表单中更改系统字体?最好,无论系统想要什么,我都希望在程序中保持我的字体大小相同,但我不相信这是一个选择。

0 投票
1 回答
1618 浏览

c++ - 使用 Windows XP 和 7 将“.txt”保存到特定目录

我正在尝试使用ofstream(C++ Builder)将文本文件保存到特定目录。我在使用 Windows 7 时遇到问题。

如何使用 Windows 7 将“.txt”文件保存到特定目录?

OBS:当我使用 Windows 7 保存程序时,文件保存在:

C:\Users\Name\AppData\Local\VirtualStore\Folder1\Name.txt

0 投票
1 回答
2230 浏览

debugging - 在 Borland C++ builder 6.0 版中调试

我只是想知道如何使用这个软件查看调试器窗口。这样我就可以在运行时看到代码流。

谢谢。

0 投票
2 回答
2254 浏览

development-environment - C++ Builder 6 - global paths for include directories

Is there a way to set global paths (i.e. independent from currently opened project) to include directories?