gpt4 book ai didi

c - 赋值从整数生成指针而不进行强制转换

转载 作者:可可西里 更新时间:2023-11-01 11:19:48 26 4
gpt4 key购买 nike

当我尝试编译以下代码时:

#define BUFSIZE MAX_PATH 


//....


TCHAR sz_VolumeName[BUFSIZE] ;//11
HANDLE hSearch ;//12
hSearch = FindFirstVolume(sz_VolumeName , BUFSIZE) ;//13

它给了我错误:

[Warning] assignment makes pointer from integer without a cast 

- 第 13 行的问题

这里出了什么问题?

编辑:例如:

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <tchar.h>


#define BUFSIZE MAX_PATH


int main(int argc, char *argv[])
{

TCHAR sz_VolumeName[BUFSIZE] ;
HANDLE hSearch ;
hSearch = FindFirstVolume(sz_VolumeName , BUFSIZE) ;
printf("First Volume Name : %s \n" , sz_VolumeName) ;
FindVolumeClose(hSearch) ;
getchar() ;
system("PAUSE");
return 0;
}

最佳答案

函数 FindFirstVolume 未声明,这使得编译器假设它返回 int,而实际上它应该返回 HANDLE。您收到的警告专门指您试图将 int 返回值隐式转换为 HANDLE 类型(HANDLE 实际上是指针类型)。

Windows API header 中 FindFirstVolume 的声明很可能被某些条件编译指令隐藏了。您可能必须 #define _WIN32_WINNT 0x0500 才能“启用”该函数的声明。

添加

#define _WIN32_WINNT 0x0500

在包含 Windows API header 之前看看它是否有帮助。如果这确实是罪魁祸首,请在您的项目设置中将 _WIN32_WINNT 全局设置为 0x0500。对于所有使用 MS 头文件的现代 Windows 项目,这实际上是您应该始终无条件执行的操作。

关于c - 赋值从整数生成指针而不进行强制转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17555059/

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