gpt4 book ai didi

delphi - 当转换从非零值开始的 C 枚举时,手动填充值真的有必要吗?

转载 作者:行者123 更新时间:2023-12-03 15:57:01 25 4
gpt4 key购买 nike

JEDI Windows APIJwaNtSecApi.pas中,C 枚举 SECURITY_LOGON_TYPE翻译成Delphi如下:

SECURITY_LOGON_TYPE = (
seltFiller0,
seltFiller1,
Interactive,
Network,
Batch,
Service,
Proxy,
Unlock,
NetworkCleartext,
NewCredentials,
RemoteInteractive,
CachedInteractive,
CachedRemoteInteractive,
CachedUnlock
);
PSECURITY_LOGON_TYPE = ^SECURITY_LOGON_TYPE;

在转换从非零值开始的 C 枚举时,手动填充值真的有必要吗?

手动填充值只是旧 Delphi 编译器的解决方法吗?

最佳答案

Are manual filler values really necessary when converting a C enum which is started from nonzero value?

不,它们不是必需的。如果您使用 Delphi 6 或更高版本进行编译,您可以这样编写:

SECURITY_LOGON_TYPE = (
Interactive = 2,
Network,
...

事实上,我相信 Delphi 6 中引入此功能的原因是为了更容易编写 C 头文件翻译。这与 Delphi 6 开发阶段相关,因为它与 Kylix 的第一个版本密切相关,当然后者与 Linux C 库有很多交互。

关于delphi - 当转换从非零值开始的 C 枚举时,手动填充值真的有必要吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13294239/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com