Ansichar 和 char 有什么区别? [复制]

2024-03-24

我最近遇到了这种数据类型不匹配的情况。这是我以前从未见过的。我希望有人能解释它们是什么以及它们有何不同。

我得到的错误是 F2063。 [DCC 错误] E2010 不兼容的类型:“AnsiChar”和“Char”


历史上在德尔斐Chartype 实际上是 the 的同义词ANSIChar类型。即,表示 ANSI 代码页中的字符的单个字节。NOTE: 这是一种简化,忽略了 ANSI 字符串中可能遇到的多字节字符引起的复杂性但足以满足这个答案。

这与以下事实相符:Stringtype 实际上是同义词ANSI字符串.

从 Delphi 2009 开始,这种情况发生了变化。

借助 Delphi 2009,String and Char类型成为同义词Unicode字符串 (a 宽弦具有附加功能)和WideChar,分别反映了向 Unicode 作为字符串和字符类型的本机格式的过渡。 AWideChar是一个 2 字节值,表示 Unicode 的单个字符(或代理项对的一半)。

因此,在 Delphi 2009 之前的 Delphi 版本中,以下两个变量是兼容类型的:

var
  ach: ANSIChar;
  ch: Char;         // Synonymous with ANSIChar

然而,在 Delphi 2009 及更高版本中,“ch”声明的含义发生了变化:

var
  ach: ANSIChar;
  ch: Char;         // Synonymous with WIDEChar

结果,ach and ch变量不再是兼容的类型。

即您收到此错误的原因是您有一些已声明的代码ANSIChar类型和其他使用类型声明值的代码Char。当使用旧版本的 Delphi 编译时,其中字符 = ANSIChar,两套代码是兼容的,但是在Delphi 2009及更高版本中字符 = 宽字符所以这两种类型(Char and ANSIChar) are not兼容的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ansichar 和 char 有什么区别? [复制] 的相关文章

  • 如何使 PyCharm 从函数定义中获取类型提示并在文档字符串中填充类型值?

    我总是在函数定义中使用类型提示 例如 def foo a int b str gt bool pass 当我使用 PyCharm 自动文档字符串生成器在代码中生成文档字符串时 我得到以下信息 def foo a int b str gt b
  • 为什么这些类型参数不符合类型细化?

    为什么此 Scala 代码无法进行类型检查 trait T type A trait GenFoo A0 S lt T type A A0 trait Foo S lt T extends GenFoo S A S 我不明白为什么 类型参数
  • 对象的引用计数

    在我的代码中 我使用一个小的数据存储类 它是在不同的地方创建的 为了避免内存泄漏并简化事情 我想使用引用计数 所以我这样做了 type TFileInfo class TInterfacedObject IInterface 并删除了我对
  • 在学术 CS 世界中,“非类型化”是否也意味着“动态类型化”?

    我正在阅读一个幻灯片 上面写着 JavaScript 是无类型的 这与我的想法相矛盾 所以我开始挖掘并尝试了解更多信息 每个答案JavaScript 是一种无类型语言吗 https stackoverflow com questions 9
  • 为什么使用abs()或fabs()而不是条件否定?

    在 C C 中 为什么要使用abs or fabs 不使用以下代码即可查找变量的绝对值 int absoluteValue value lt 0 value value 这与较低级别的指令较少有关吗 您提出的 有条件的abs 并不等于std
  • Delphi中使用FindVCLWindow调用WinHelp32(WinXP Pro SP3 32bit)

    有什么问题吗 procedure TForm1 VCLHelpClick Sender TObject var Ctrl TWinControl begin Ctrl FindVCLWindow Mouse CursorPos if Ctr
  • 检查一个数字是 int 还是 float

    在perl中 我想检查给定变量是否包含浮点数 为了检查我正在使用的 my Var 0 02 Floating point number if int Var Var floating point number 但上面的代码对于 0 0 不起
  • 如何将单个 char 转换为 int [重复]

    这个问题在这里已经有答案了 我有一串数字 例如 123456789 我需要提取它们中的每一个以在计算中使用它们 我当然可以通过索引访问每个字符 但是如何将其转换为 int 我研究过 atoi 但它需要一个字符串作为参数 因此 我必须将每个字
  • 如何处理最终字符串?

    制作有什么好处吗String as final或者我们可以做String as final 我的理解是 由于 String 是不可变的 因此没有必要将其设为最终的 这是正确的还是人们想要的情况String as Final Code pri
  • Delphi XE7 Android 全屏(隐藏软键)

    如何在XE7中全屏显示 隐藏顶部 标题 和底部 软键 工具栏 在 XE6 中 我可以通过在应用程序部分写入来调整 AndroidManifest 以使我的应用程序全屏显示并且没有操作栏 android theme android style
  • 从其可执行文件的路径获取服务名称

    我有一个可执行文件的路径 它是一个正在运行的服务应用程序 例如 C Program Files x86 Someapp somesvc exe 我想停止并启动它 为此我想我需要获取服务的名称 如下所示 this https stackove
  • Delphi - Indy - 保存 GMail 草稿

    我一直在 Delphi 下使用 Indy 通过 gmail 帐户发送消息 使用 TIdSMTP 和 TIdMessage 组件 这绝对没问题 但是 我的客户请求将消息保存到 DRAFTS 文件夹 以便他在实际发送消息之前对 以编程方式创建的
  • python numpy:更改 numpy 矩阵的列类型

    我有一个 numpy 矩阵 X 我尝试使用以下代码更改第 1 列的数据类型 X 1 astype str print type X 0 1 但我得到了以下结果
  • 如何读取和更改 TEdit 控件的值?

    我有一个表格TForm1有 5TEdit and 2 TBitBtn 我还需要该程序 以便在输入数字数据后Edit1 and Edit2 on BitBtn1Click Edit1 and Edit2值将被求和并显示在Edit3 你想做这样
  • Delphi 的内存分析工具?

    我建立了一个项目并运行它 然后在 Process Explorer 中查看它 结果发现它在启动时使用的 RAM 比我想象的要多 5 倍 现在 如果我的程序运行得太慢 我会将其连接到分析器并让它告诉我什么正在使用我的所有周期 有没有类似的工具
  • 如何从Python中的字符串中提取变量名称和值

    我有一根绳子 data var1 id 12345 name John White python中有没有办法将var1提取为python变量 更具体地说 我对字典变量感兴趣 这样我就可以获得变量的值 id和name python 这是由提供
  • 如果加载 dll 找不到依赖项,有什么方法可以捕获错误吗?

    我正在编写一个 Windows 32 位程序 可以使用多个可能的 dll 之一 所以它尝试依次加载每个 dll 使用SysUtils SafeLoadLibrary如果加载成功 它就会使用该 dll 不幸的是 其中一些 dll 静态链接到其
  • 在 C++ 的 if-else 块中声明变量

    我试图在 if else 块中声明一个变量 如下所示 int main int argc char argv if argv 3 string simple Player player get Simple else if argv 3 s
  • D2010编译行数差异

    构建项目时 有两个地方会报告源代码行数 在编译进度对话框中 项目下 信息 在 Delphi 2007 中 对于我们正在构建的项目 这两个数字是相同的 在 Delphi 2010 中 这两个数字截然不同 1st 计数多出 100 万行或 40
  • 为什么 TImage 旋转我的图像?

    编写一个移动应用程序 它从安全网站提取图像 如下所示 第一个图像 提取不正确 注意网络版本与移动版本 第二个图像在网站上正确显示 但 Delphi TImage 由于某种原因正在旋转它我不明白为什么 旋转设置为 0 并且在 TImage 组

随机推荐

  • mysql查询两张表

    我需要像这样查询两个表 表一顾客 id companyname phone 1 microsoft 888 888 8888 2 yahoo 588 555 8874 3 google 225 558 4421 etc 表二联系人 id c
  • Double.NaN 在 Windows 11 中导致 System.StackOverflowException (22621.525)

    Note 该代码适用于 Windows 11 22000 1098 及更早版本 但会在 Windows 11 22621 525 上导致堆栈溢出异常 我有一个错误 导致我负责的 C 程序出现大量问题 它在早期的 Windows 版本 包括早
  • 如何将日期插入 Open XML 工作表?

    我正在使用 Microsoft Open XML SDK 2 但在将日期插入单元格时遇到了很大的困难 我可以通过设置毫无问题地插入数字Cell DataType CellValues Number 但是当我对日期做同样的事情时 Cell D
  • 如何从 OpenSSL 中的 perl 脚本生成程序集文件

    在 OpenSSL 版本 1 1 0e 的开源代码中 我看到一些函数定义是由文件夹中存在的 perl 文件生成的 在加密货币内每个文件夹中的 build info 文件中 他们编写了一些行以从相应的 pl 生成 s 例如 为了生成aes p
  • Android 上的可写和可执行位置

    我已经使用 Android NDK 工具链编译了一个二进制文件 并尝试将其部署到设备上 然后 使用 JNI 使用 NDK 构建的应用程序将通过本机代码执行此二进制文件 我希望避免对设备进行root 该二进制文件将由多个应用程序使用 因此我想
  • 如何访问 docker 容器内的 mac os x 麦克风?

    我正在运行一个带有 python 代码的 docker 容器 该容器使用主机 MacBook Pro 内置麦克风录制几秒钟的声音 我面临的部分挑战是确定如何在 Docker 容器内提供访问 共享 Macbook Pro 麦克风 大多数关于堆
  • 数据库在更新时应用所有以前的迁移,而不仅仅是新的迁移

    我正在开发一个网站 截至目前 该网站既有生产数据库又有测试数据库 生产数据库托管在外部 而测试数据库托管在本地 每当我对数据库进行更改时 我都会通过迁移应用更改 添加新的迁移后 我运行更新数据库对我的生产和测试数据库执行命令以保持它们同步
  • 如何在 Spring data r2dbc 中替换 @PrePersist

    我在用spring boot starter data r2dbc 版本 1 1 3 Spring Webflux 应用程序中的模块 我想将实体生命周期回调添加到我的持久层 使用 Spring Data JPA 可以使用注释 例如 PreP
  • 如何在 EF7 或 EF core 中的运行时更改数据库架构

    我的数据库有不同的架构 具体取决于运行时的用户选择 我的代码如下 public partial class FashionContext DbContext private string schema public FashionConte
  • CSS 中的双冒号 (::) 是什么意思?

    双冒号 在 CSS 中意味着什么 例如 input type text ms clear display none 它的意思是伪元素选择器 这意味着element右边在普通 DOM 中不存在 但可以选择 伪元素由两个冒号 后跟伪元素的名称组
  • MigraDoc:设置文档字体

    我想在 MigraDoc 中使用不同的字体 但我很难让它坚持下来 目前 我正在使用以下代码 我将其作为类范围变量 String tPdfFont MonospaceTyperwriter 然后是 MigraDoc 代码本身 Document
  • 对...()感到困惑?

    In 另一个问题 https stackoverflow com a 12417320 636656 sapply substitute as character 在函数内部使用来获取传递给函数的名称 这as character部分听起来不
  • 使用php将单词数组转换为字符串

    我有一系列关键字 数组 gt 房子 桌子 马 树 我需要从中创建一个字符串 如下所示 房子 桌子 马 树 我怎样才能用 PHP 做到这一点 Use implode https www php net manual en function i
  • Xamarin Shell:将多个参数传递到另一个页面

    我的 Xamarin Forms Shell 应用程序中有两个页面 一个是列表页面 另一个是详细信息页面 当我选择列表页面中的项目时 将显示详细信息页面 我能够将一个参数传递到第二页 我知道如何传递第二个值 但是我应该如何接收第一个属性本身
  • 设置 llvm::ConstantInt 的值

    我正在玩 LLVM 我考虑过改变中间代码中常量的值 然而对于班级llvm 常量Int http llvm org docs doxygen html classllvm 1 1ConstantInt html 我没有看到设置值函数 知道如何
  • f77 未格式化二进制文件的内容

    我有一个 f77 未格式化的二进制文件 我知道该文件包含 2 个浮点数和一个长整数以及数据 文件的大小为 536870940 字节 应包含 512 3 个浮点数据值以及 2 个浮点和长整数 512 3 个浮点数据值组成 536870912
  • 将 HTML 文件导入到另一个 HTML 文件中

    我想知道如何将 HTML 文件导入到其他 HTML 文件中 这两个文件都引用许多不同的文件 因此我更愿意将它们保存在两个不同的文件夹中 而不是将一个文件复制到另一个文件中 目前 我正在使用 Django 进行本地开发 include fil
  • keycloak 上是否有用于更改用户密码的 API 调用?

    我正在尝试实现自己的表单来更改用户的密码 我试图在 Keycloak 中找到用于更改用户密码的 API 但在文档中找不到任何内容 有API可以做到这一点吗 您可以使用PUT auth admin realms realm users id
  • 调用渲染与绘制 DOM?

    我正在学习 React 并试图更好地理解生命周期和不同阶段 我刚刚读到的一件事是 React 首先渲染然后安装元素 在这种情况下渲染意味着调用类的 render 而不是绘制 DOM 我想我只是不太明白这意味着什么 有人可以用简单的方式或举例
  • Ansichar 和 char 有什么区别? [复制]

    这个问题在这里已经有答案了 我最近遇到了这种数据类型不匹配的情况 这是我以前从未见过的 我希望有人能解释它们是什么以及它们有何不同 我得到的错误是 F2063 DCC 错误 E2010 不兼容的类型 AnsiChar 和 Char 历史上在