保存CImage类数据时遇到问题。以下是我的简要设置:
#include "stdafx.h"
#include <cstring>
#include <atlimage.h>
#include <vector>
#include <stdlib.h>
#include <cmath>
#include <algorithm>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
CImage myimage;
myimage.Create(100,100,24);
// save an image in BMP format
string impath = "image1.bmp";
myimage.Save((LPCTSTR)impath.c_str());
return 0;
}我将其作为VC++ 2008下的WIN32控制台应用程序运行。没有错误。但是,程序完成后,在我的目录下没有创建任何文件。我在两台机器上运行了这段代码,结果是一样的。
非常感谢您的时间和努力。
发布于 2010-12-05 04:55:34
也许您只是在错误的位置查找文件。给出一个绝对路径。相对路径是到进程的当前工作目录的路径。如果从调试器运行,它可能是可执行文件的输出目录、项目目录或其他位置。
此外,在c_str()上使用_T宏来代替强制转换--以防它需要转换。
如果你仍然不能解决这个问题,可以使用PROCMON (微软提供的免费工具)。运行它并过滤输出,以便它只查找路径包含"image1.bmp“的文件--它将告诉您使用该路径尝试的所有文件操作以及发生了什么。
发布于 2010-12-29 02:27:28
myimage.Save((LPCTSTR)impath.c_str());1)检查结果
2)为什么使用类型转换?这可以掩盖错误,例如,如果您使用UNICODE构建(VS2008中的默认构建),则文件名将无效
https://stackoverflow.com/questions/4355759
复制相似问题