gpt4 book ai didi

c# - SetWindowLong/GetWindowLong 和 32 位/64 位 CPU

转载 作者:太空狗 更新时间:2023-10-29 21:40:57 27 4
gpt4 key购买 nike

我正在使用以下代码:

const int GWL_STYLE = (-16);

const UInt32 WS_POPUP = 0x80000000;
const UInt32 WS_CHILD = 0x40000000;

[DllImport("user32.dll", SetLastError = true)]
static extern UInt32 GetWindowLong(IntPtr hWnd, int nIndex);

[DllImport("user32.dll")]
static extern int SetWindowLong(IntPtr hWnd, int nIndex, UInt32 dwNewLong);

在某处...

SetWindowLong(this.Handle, GWL_STYLE,
((GetWindowLong(this.Handle, GWL_STYLE) & ~(WS_POPUP)) | WS_CHILD));

这能否在 32 位和 64 位机器上正常运行?

如果不是,如果我编译我的应用程序以作为 x86 进程运行,它在 64 位机器上是否仍能正常工作?

我如何重写以下代码才能在 32 位和 64 位机器上都正常?

最佳答案

我猜您想知道您是否正确选择了 UInt32 类型。答案是肯定的。文档明确表示它始终是 32 位值:http://msdn.microsoft.com/en-us/library/windows/desktop/ms633591(v=vs.85).aspx

您的代码是正确的。

关于c# - SetWindowLong/GetWindowLong 和 32 位/64 位 CPU,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9282284/

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