gpt4 book ai didi

c++如何初始化打开文件对话框(GetOpenFileName)

转载 作者:太空宇宙 更新时间:2023-11-04 06:33:34 26 4
gpt4 key购买 nike

我的代码如下。

OPENFILENAMEA open;
ZeroMemory(&open, sizeof(open));

open.lStructSize = sizeof(LPOPENFILENAMEA);
open.lpstrFilter = "Képek\0*.jpg;*.jpeg;*.gif;*.png;*.bmp\0\0";
open.nFileOffset = 1;
open.lpstrFile[0] = '\0';
open.nMaxFile = 2048;
open.lpstrTitle = "Képek kiválasztása..";
open.Flags = OFN_ALLOWMULTISELECT | OFN_FILEMUSTEXIST;

OPENFILENAME selected = GetOpenFileName(open);

我的问题是,在尝试构建时出现以下错误: error: cannot convert 'OPENFILENAME {aka tagOFNA}' to 'LPOPENFILENAMEA {aka tagOFNA*}' for argument '1' to 'BOOL GetOpenFileNameA(LPOPENFILENAMEA)'当我调用 GetOpenFileName

如果我用 open 参数调用它作为 ptr GetOpenFileName(&open)我得到以下 error: conversion from 'BOOL {aka int}' to non-scalar type 'OPENFILENAME {aka tagOFNA}' requested

问题:做什么?

最佳答案

GetOpenFileName 返回一个 BOOL,而不是一个 OPENFILENAME

如果用户选择文件并单击“确定”返回,它将返回一个非零值。如果他们点击“取消”,它将返回 0。

如果它返回 true,它将修改您的 open 的内容以反射(reflect)用户选择的内容。

因此,您通常会像这样使用它:

if (GetOpenFileName(&open)) {
// use open.whatever to get data about the selected file
}
else
// The user clicked cancel -- typically do nothing.

关于c++如何初始化打开文件对话框(GetOpenFileName),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17763592/

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