问题标签 [c++builder-10-seattle]
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++ 10 西雅图 Embarcadero 类型 complex_array
我正在尝试使用来自 MSVC 的名为 NEC2++ https://github.com/tmolteno/necpp的开源代码
有一个未定义的类型,称为 complex_array,Builder 无法识别。我安装了 Boost,但在文档中的任何地方都没有看到这种类型。我假设这是实数和虚数数组的一种类型。我在 Builder 或 Boost 文档中找不到这样的类型。
我正在寻找可能的解决方案来移植此代码。
c++ - 使用 C++ Builder 10 Seattle 时出现很多歧义错误
在新的 C++ Builder 10 Seattle 中编译旧代码时,我遇到了很多模棱两可的错误。例如,对于像log()这样的函数。
调用log(10)会产生以下错误。
[bcc32 错误] E2015 'std::log(float) at c:\program files (x86)\embarcadero\studio\17.0\include\windows\crtl\math.h:394' 和 'std::log( long double) 在 c:\program files (x86)\embarcadero\studio\17.0\include\windows\crtl\math.h:430'
感觉它应该能够处理这种转换。一个警告,很好......但是一个错误并且无法编译?编译器是否在更高版本中对此更加严格?代码最初来自C++ Builder 2010。
其他歧义错误包括预期HWND时的void* ,在TDateTimePicker->Time上进行算术运算(现在必须使用->Time.Val )等。这在之前被编译器吞噬,但现在不是。我很高兴它现在似乎更严格了......但它为旧代码带来了很多修复。
delphi - 德尔福 RTTI & C++
这篇文章是在Remy Lebeau 的帮助下在C++ Builder 期刊论坛上提出的一个问题的继续。我的问题是对 Delphi RTTI 以及如何在 C++ Builder 中使用它缺乏了解。有很多关于如何使用 RTTI 获取类型信息等的文档,但没有太多如何使用它进行发现的文档。
根据我的理解,下面应该设置 RTTI 发现的方法:
这是我目前的课程,它覆盖了 Embarcadero iOS API iOSapi.UIKit.hpp 中的 UIAlertViewDelegate 接口中的虚拟方法。
但是,当我创建此类的一个实例并使用以下方法在堆上分配它时:
我收到与 Delphi 相关的 RTTI 错误:
第一次机会例外在 $00158015。异常类 EObjectiveC 带有消息“未找到类型 UIAlertViewDelegate 的 RTTI。也许缺少 {$M+}?'。流程代表 (250202)
将我的类方法从 public 更改为 __published 可以消除此错误,但会导致访问冲突,但查看调用堆栈发生的情况是:
- 调用 TOCLocal 构造函数
- TRttiType GetMethods 调用
- 读取方法数据
- 读取扩展方法数据
- 读取对象
- 读取对象指针
- 读取对象(再次)
- 创建 TRTTIInstanceMethodClassic
- 访问冲突
很明显,RTTI 有问题,因为它在尝试获取方法信息后崩溃了?有经验的人可以在这里提供帮助吗?
clipboard - 将某些剪贴板文本粘贴到 CBB 10 中的 TEdit
我希望当用户单击按钮时,只有包含 URL(以 http:// 开头)的文本Clipboard
才会自动粘贴到TEdit
.
我已经尝试了以下代码,但根本不起作用。
string - Multiple StringReplace in CBB 10
I've more than 10 different strings that I want to replace. Right now, I'm using the manual method as shown in the following code.
So, I want to know how to replace many strings using more practical and flexible method. Perhaps by using a specific function ?.
Thank you very much.
linker-errors - C++ Builder 10 Seattle NotificationCenter 链接器错误
我使用 RAD Studio 10 Seattle 创建了一个新的 VCL 表单。
我在设计时添加了一个 NotificationCenter。然后我编译它并成功运行它。
但是当我做了以下两个步骤时:
1. 去
项目 -> 选项 -> C++ 链接器
并取消选中“与动态 RTL 链接”选项。
2.去了
项目 -> 选项 -> 包 -> 运行时包
并取消选中“与运行时包链接”选项。
未选中这些选项是为了使 .exe 独立,即能够在没有 IDE 的情况下执行 .exe 文件。因此,当取消选中这些选项时,所有库和包都链接到 .exe 文件。
但是现在当我编译它时,在链接阶段它给了我以下错误:
所以我搜索了我的
Embarcadero/17.0/
第一个链接器错误中的参考目录,SHStrDupW
并找到三个扩展名为 .h 或 .hpp 的文件,并将它们包含到我的项目中,但结果相同。
有谁知道如何修复这个错误,我会很感激各种帮助?:)
PS:我为win32或win64操作系统编译它并不重要。
c++builder - 在西雅图 C++ Builder 10 中使用 Web.Win.Sockets
我有一个现有的(大型)项目,最初是使用C++ Builder 2010 构建的。它使用现已弃用的套接字进行通信。
我读到它们在示例项目中仍然可用,并从命令行构建它。我从Component/Install Packages导航到示例文件夹中的 bpl并安装它,然后继续尝试让代码运行。但是我感觉缺少了一些步骤。
从示例文件夹中包含Web.Win.Sockets.hpp似乎还不够。它似乎不包含关于很多东西的定义,例如现有代码使用的 TServerSocket等。System.Win.ScktComp似乎包含这些缺失的定义,但将两者混合似乎不是正确的做法。只是为了好玩,我曾经尝试过一些疯狂的事情并让它编译,但传输的数据似乎包含破坏通信的垃圾。
有一次,我尝试改用System.Win.ScktComp中的组件,但没有关于什么与什么相关以及是否有任何警告的好信息。在我得到程序编译后,它将无法连接等。
那么,是否有任何好的指南来启用和使用C++ Builder 10 Seattle的“旧”套接字?如果要搬到新的,是更换的减少还是需要大量的工作?系统以自定义二进制格式传输大量数据,因此完成了大量流处理等。现在我需要启动并运行它,因此目前对这些部分进行大量重写是不可行的。
winapi - SelectObject WinApi 函数无法在 Rad Studio Seatle 中编译
我正在尝试在 Rad Studio Seatle CBuilder 10 中编译以下代码片段。
但无法编译该行并显示错误消息。
[bcc32 错误] Unit1.cpp(132):E2034 无法将“void *”转换为“HPEN__ *”完整解析器上下文 Unit1.cpp(121):解析:void _fastcall TForm1::Button1Click(TObject *)
我可以在“c++ builder 6”中成功编译这个源代码。
我还检查了 CBuilder 6 和 Cbuilder 10 中的 SelectObject 函数声明
CBuilder 6 声明(wingdi.h)
CBuilder 10 声明(wingdi.h)
我没看到有什么不同。
我有什么问题。
谢谢。
c++ - 使用 C++ Builder 和 Clang 编译 Duktape 时找不到 inttypes.h 文件
我使用C++ Builder Seattle创建了一个简单的 Duktape 示例,并遵循Duktape中“初始化上下文”中的代码。使用经典模式时编译良好。如果我通过取消选中 Project->Options->C++ Compiler->Use 'classic' Borland compiler 切换到 clang,我会收到以下错误。
如果我注释掉包含我会得到以下错误: