- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
FILE_BOTH_DIR_INFORMATION 的 ShortNameLength
成员结构声明如下:
typedef struct FILE_BOTH_DIR_INFORMATION {
...
CCHAR ShortNameLength;
...
};
来自the explanation of CCHAR
type , CCHAR
是一个 8 位 Windows (ANSI) 字符。那么,它相当于 Delphi 中的 AnsiChar
,对吗?然而ShortNameLength的描述FILE_BOTH_DIR_INFORMATION
结构的成员表示,
“ShortNameLength
specifies the length, in bytes, of the short file name string.”
该语句让我认为 CCHAR
相当于 Delphi 中的 Byte
。另一个例子是 SYSTEM_BASIC_INFORMATION
的 NumberOfProcessors
成员,它在 winternl.h
中声明如下:
typedef struct _SYSTEM_BASIC_INFORMATION {
BYTE Reserved1[24];
PVOID Reserved2[4];
CCHAR NumberOfProcessors;
}
再一次,CCHAR
类型似乎在 Byte
上下文中使用,而不是在 AnsiChar
上下文中使用。
现在,我很困惑,是使用 AnsiChar
还是 Byte
作为 Delphi 中的 CCHAR
等效项。
JwaWinType.pas
将 CCHAR
声明为 AnsiChar
。
最佳答案
它是一个字节,或者至少,它被用作 1 字节整数。在 C 中,字符可以用于此目的。在 Delphi 中,如果不进行类型转换就无法做到这一点。因此,您可以使用 Char
,但随后您需要为其指定值 'A'
或 Chr(65)
来指示字符串65 个字符。现在,那太愚蠢了。 :-)
为了能够将其传递给 API,它必须具有相同的大小。除此之外,被调用者甚至不知道它是如何声明的,因此将其声明为 Delphi 字节是最合乎逻辑的解决方案。您找到的其他声明支持的选择。
关于delphi - Delphi 中等效的 CCHAR 类型是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13322927/
如何在 Swift 中获取 char/CChar?我需要调用以下方法: - (void)registerOption:(NSString *)longOption shortcut:(char)sho
一些 C API,例如glGetShaderInfoLog,返回缓冲区中的字符数组。我需要将它们转换为字符串才能使用。 var value: GLint = 0 glGetShaderiv(shade
FILE_BOTH_DIR_INFORMATION 的 ShortNameLength 成员结构声明如下: typedef struct FILE_BOTH_DIR_INFORMATION { .
在我的 swift 应用程序项目中,我必须与 C API 交互。其中一个 C 函数将 char 指针作为输入,因此我必须将我的 swift 字符串转换为 char 指针。但我不知道如何正确地做到这一点
我有一个 objective-c 函数,它给了我一个 UnsafePointer/UnsafePointer. 但是我需要这些数据作为 UnsafePointer 不幸的是我需要的功能没有实现 Uns
我尝试在 Objective-C 上编写 this tutorial 上编写的 Swift 代码. 除了这部分之外,我几乎把所有内容都写成了 Objective-C: let tokenChars =
如何在 Swift 中使用字符串文字初始化 CChar 或 UInt8? extension UInt8 : ExtendedGraphemeClusterLiteralConvertible {
我已经为一些旧的 C 源代码导入并创建了一个桥接头文件到 Swift。函数签名如下所示: struct Message prattle_parse_message(char *line); 它的快速声
我正在将 Swift 2.x 项目迁移到 Swift 3。 我在转换 UnsafeMutableBufferPointer 时遇到问题至 UnsafeMutablePointer在 Swift 3 语
我在将GBK编码下的CChar更改为Data时遇到了问题。有人能给我一些提示吗,这会有很大帮助语法似乎改变了,所以我对如何去做有点难过 之前改成了NSData,但是语法改成Data了,不知道怎么交换。
我正在编写一个需要与 C 库进行互操作的 Swift 程序。此 C 库包含一组使用回调的函数。我解决了如何将 Swift 函数传递给这些 C 函数的问题,但我很难将 Swift 原生类型转换为适当的
我在迁移到 Swift 时将一个 Objective-C 片段转换为 Swift。我对 Objective-C 还是个新手,我对 Swift 的了解一般。在尝试从 Int8 转换为 C Char 时满
在 Swift 中使用标准 C 库函数时,我遇到了问题传递 C 字符串时。作为一个简单的例子(只是为了演示问题),标准 C 库函数 char * strdup(const char *s1); 作为
我将 xCode 和/或 swift 1.0 更新为 1.2,但出现了很多错误, 我知道 Swift 1.2 中的一些方法已更新/更改,因此我开始将我的整个项目更新到 Swift 1.2。我被困在这条
我是一名优秀的程序员,十分优秀!