gpt4 book ai didi

c - 如何解决创建 MessageBox 时的类型转换警告

转载 作者:太空宇宙 更新时间:2023-11-04 00:08:27 25 4
gpt4 key购买 nike

(1) [已解决!]

wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_APPLICATION));

警告:从指针转换为不同大小的整数 [-Wpointer-to-int-cast]

解决方案

我通过使用解决了

wcex.hIcon = LoadIcon(NULL, IDI_APPLICATION);

因为我看过 IDI_APPLICATION 定义,它被定义为

#define IDI_APPLICATION MAKEINTRESOURCE(32512)

奇怪? un peu.

(2) [已解决!]

MessageBox(NULL,
_T("Call to RegisterClassEx failed!"),
_T("Win32 Guided Tour"),
NULL); // < here

警告:传递“MessageBoxW”的参数 4 从指针生成整数而不进行强制转换 [默认启用]

最佳答案

1) 来自 here

要使用其中一个预定义图标,请将 hInstance 参数设置为 NULL,并将 lpIconName 参数设置为以下值之一。

所以要使用 MAKEINTRESOURCE(IDI_APPLICATION) 作为第二个参数,可选的第一个应该是 NULL

如果不是这样...那么这就是您设置返回的方式,wcex.hIcon 需要是一个指针,而不是 intLoadIcon 返回一个 HICON 类型,它是 HANDLE 的类型定义,它是 VOIDP 的类型定义typedef 到 void *

所以如果你这样做:

int wcex.hIcon = LoadIcon(...)

您会收到一个cast from pointer to integer警告。

2) 来自 here , MessageBox() 的前 3 个参数是可选的,第四个不是。当它需要 UINT

时,您将其作为 NULL 传递

关于c - 如何解决创建 MessageBox 时的类型转换警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13379059/

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