gpt4 book ai didi

c# - C++ DWORD 的 C# 等价物是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:42:44 25 4
gpt4 key购买 nike

经过搜索,我听说 UInt32 是 C# 中 C++ DWORD 的等价物。我通过执行算术测试结果

*(DWORD*)(1 + 0x2C) //C++
(UInt32)(1 + 0x2C) //C#

它们产生完全不同的结果。有人可以告诉我 C# 中 DWORD 的正确匹配吗?

最佳答案

您的示例使用 DWORD 作为指针,这很可能是无效指针。我假设您指的是 DWORD 本身。

DWORD 定义为 unsigned long ,它最终是一个 32 位无符号整数。

uint (System.UInt32) 应该匹配。

#import <stdio.h>

// I'm on macOS right now, so I'm defining DWORD
// the way that Win32 defines it.
typedef unsigned long DWORD;

int main() {
DWORD d = (DWORD)(1 + 0x2C);
int i = (int)d;
printf("value: %d\n", i);
return 0;
}

输出:45

public class Program
{
public static void Main()
{
uint d = (uint)(1 + 0x2C);
System.Console.WriteLine("Value: {0}", d);
}
}

输出:45

关于c# - C++ DWORD 的 C# 等价物是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39951473/

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