c++ - 如何在 C 上使用 D3DXSaveTextureToFileW 将文件名保存为时间戳?

标签 c++ timestamp filenames

我在使用 C++ 时遇到了一些问题..我正在尝试保存一个以文件名作为时间戳的帧,但没有成功,有人可以帮助我吗?

如果我使用它可以正确保存:

D3DXSaveTextureToFileW((LPCWSTR)"file.bmp",D3DXIFF_BMP,tex,NULL);

D3DXSaveTextureToFileW(L"file.bmp", frameName,D3DXIFF_BMP,tex,NULL); 

但是如果我尝试一些更详细的文件名,我会遇到一些问题,它会编译但不会保存文件......

我正在尝试使用类似的东西

LPCWSTR frameName;
std::string s = std::string("file") + std::string(".bmp");
frameName = (LPCWSTR)s.c_str();
D3DXSaveTextureToFileW((LPCWSTR)frameName,D3DXIFF_BMP,tex,NULL);

不保存...如果我尝试类似我想保存的操作,问题仍然存在:

time_t seconds;
seconds = time (NULL);      
time_t rawtime;
time ( &rawtime );

LPCWSTR frameName;
std::string s = std::string("file") + std::string(&rawtime);
frameName = (LPCWSTR)s.c_str();

D3DXSaveTextureToFileW((LPCWSTR)frameName,D3DXIFF_BMP,tex,NULL);

最佳答案

您无法将 std::string::c_str()(const char*)的结果强制转换为 LPCWSTR。使用std::wstringstream构造文件名:

#include <sstream>
...
std::wstringstream frameName;
frameName << L"file" << rawtime << L".bmp";
D3DXSaveTextureToFileW(frameName.str().c_str(),D3DXIFF_BMP,tex,NULL);

如果您想存储 frameName.str() 的结果,请使用 std::wstring

关于c++ - 如何在 C 上使用 D3DXSaveTextureToFileW 将文件名保存为时间戳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13120250/

相关文章:

c# - 将 C++ 例程转换为 C#,主要是指针

perl - 如何在 Perl 中复制文件并维护其时间戳?

java - 更新 java.sql.Timestamp

jq - 解析多个 json 文件并输出针对具有关联文件名的正则表达式的匹配/命中

php - UTF-8 有效文件名的正则表达式

c++ - using 声明如何在没有 ADL 的情况下减少可用于查找的名称?

c++ - 在 C++ 下处理 Unicode 字符串的最佳多平台方式是什么?

c++ - C++中的整数和函数

Python时间戳(13位)转字符串返回2074年以及如何将15位时间戳转换为字符串

c++ - 在 VS2008 中为 __FILE__ 打印的完整路径名