我在使用 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/