gpt4 book ai didi

c++ - GetModuleFileNameW 的转换错误

转载 作者:太空宇宙 更新时间:2023-11-04 01:39:45 24 4
gpt4 key购买 nike

我试图在某些 C++ 代码(基本上是 this )中获取模块的版本信息,但出现编译时错误。这是代码:

WCHAR fileName[MAX_PATH];
HMODULE module = GetModuleHandle(L"some-module");
DWORD size = GetModuleFileName(module, fileName, MAX_PATH);

编译器返回:

    error C2664: 'GetModuleFileNameW' : cannot convert parameter 1 from 'WHANDLE' to     'HMODULE'    Conversion from 'void*' to pointer to non-'void' requires an explicit cast

这是怎么回事? GetModuleHandle 返回 HMODULE,这是记录到 GetModuleFileName 的第一个参数。

这是其值(value)所在的编译器版本:

    Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.30319.01 for 80x86    Copyright (C) Microsoft Corporation.  All rights reserved.

谢谢!

最佳答案

你的包含或你的库一定有一些奇怪的事情发生,因为它在这里编译和运行良好:

// Scratch.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "windows.h"

int _tmain(int argc, _TCHAR* argv[])
{
WCHAR fileName[MAX_PATH];
HMODULE module = GetModuleHandle(L"some-module");
DWORD size = GetModuleFileName(module, fileName, MAX_PATH);
return 0;
}

关于c++ - GetModuleFileNameW 的转换错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7897677/

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