【问题标题】:Assigning Variable to CreateFileA file name将变量分配给 CreateFileA 文件名
【发布时间】:2015-04-27 15:01:03
【问题描述】:

我正在使用这个 CreateFileA 方法创建一个 .bmp 文件

HANDLE hFile = CreateFileA("Screenshot01.bmp", GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); 目前是静态的,只是不断重写旧文件。

我想多次调用这个方法,每次都会创建一个不同文件名的新文件,例如

“屏幕截图01.bmp” “屏幕截图02.bmp” “屏幕截图03.bmp” 等等

不必递增,但文件名每次应该不同。

如何在每次调用该方法时更改文件名? 您可以将文件名分配给变量吗?

【问题讨论】:

  • “你能将文件名分配给变量吗?” 当然可以!你试过了吗?它奏效了吗?如果不是,那是什么错误?
  • 抱歉重复的问题,我承认这是一个简单的问题,我只是对不同类型的 CreateFiles 以及它们接受的不同类型的参数感到困惑。下次我会在发布之前进行更多研究,因为我仍然是 C++ 的菜鸟,但感谢您的快速回复和解决方案(这是一个很棒的社区)。

标签: c++ winapi bmp createfile lpcstr


【解决方案1】:

使用std::string。例如:

#include <string>
....
std::string filename = "Screenshot01.bmp";
HANDLE hFile = CreateFileA(filename.c_str(), ...);

要从整数构建文件名,您可以这样做:

#include <string>
....
std::string filename = "Screenshot" + std::to_string(id) + ".bmp";
HANDLE hFile = CreateFileA(filename.c_str(), ...);

如何在每次调用该方法时更改文件名?

跟踪最近使用的 id 值,并在需要新值时增加它。

【讨论】:

  • 谢谢你的作品。我不知道您在连接时必须重新声明变量数据类型;认为它可以通过 string filename = "foo" + "bar";
猜你喜欢
  • 2012-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多