VS2010 GDI+ Image::FromFile 无效

x_sina_x 2011-06-15 03:55:19
mypath=_T("C:\\test.bmp");
m_image = Image::FromFile(mypath);

m_image总是0x0,出错在哪里了呢?

USES_CONVERSION;
const WCHAR * str=_T("C:\\test.bmp");
CString tmp=filePath.AllocSysString();
m_image = Image::FromFile(str);//这个不行
m_image = Image::FromFile(tmp);//这个也不行
...全文
530 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sky_Nothing 2012-10-15
  • 打赏
  • 举报
回复
你们人事部长真牛啊,我的也OK了

[Quote=引用 18 楼 的回复:]
那看来可能如人事部长所说,是gdi+没出事啊


C/C++ code


#include <GdiPlus.h>
using namespace Gdiplus;
#pragma comment(lib, "gdiplus.lib")




C/C++ code


GdiplusStartupInput m_GdiplusStartupInput;
ULO……
[/Quote]
SurgePing 2012-04-18
  • 打赏
  • 举报
回复

GDI+还真是需要GDI+啊
不过貌似在写ActiveX的时候,就不用初始化,也可以的
StarManJhh 2011-06-16
  • 打赏
  • 举报
回复
m_pImage= Image::FromFile(L".\\image.png");
向立天 2011-06-16
  • 打赏
  • 举报
回复
用初始化是一定的
不没遇到过不初始化还能成功显示的情况
也没在2010下使用过GDI+
你可以看看2010的MSDN有没有提及相关的东西
x_sina_x 2011-06-16
  • 打赏
  • 举报
回复
参考您在:http://social.msdn.microsoft.com/Forums/zh-CN/visualstudio2010zhchs/thread/41e81a5e-50b3-4291-8f48-4c05bbbc4e34/中的回复和楼上的回复是一致的。但是我最初没初始化的时候也成功显示过。为什么?用初始化么?
[Quote=引用 19 楼 xianglitian 的回复:]
引用 18 楼 shenyi0106 的回复:
GdiplusStartupInput m_GdiplusStartupInput;
ULONG_PTR m_GdiplusToken;

//GDI+初始化
GdiplusStartup(&m_GdiplusToken, &m_GdiplusStartupInput, NULL)
可能是这个原因
[/Quote]
x_sina_x 2011-06-16
  • 打赏
  • 举报
回复
初始化之后,果然好使,但是,VS2010不是不需要初始化么?
[Quote=引用 18 楼 shenyi0106 的回复:]

那看来可能如人事部长所说,是gdi+没出事啊

C/C++ code

#include <GdiPlus.h>
using namespace Gdiplus;
#pragma comment(lib, "gdiplus.lib")



C/C++ code

GdiplusStartupInput m_GdiplusStartupInput;
ULONG_PTR m_Gdipl……
[/Quote]
向立天 2011-06-16
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 shenyi0106 的回复:]
GdiplusStartupInput m_GdiplusStartupInput;
ULONG_PTR m_GdiplusToken;

//GDI+初始化
GdiplusStartup(&m_GdiplusToken, &m_GdiplusStartupInput, NULL)
[/Quote]可能是这个原因
shenyi0106 2011-06-16
  • 打赏
  • 举报
回复
那看来可能如人事部长所说,是gdi+没出事啊


#include <GdiPlus.h>
using namespace Gdiplus;
#pragma comment(lib, "gdiplus.lib")



GdiplusStartupInput m_GdiplusStartupInput;
ULONG_PTR m_GdiplusToken;

//GDI+初始化
GdiplusStartup(&m_GdiplusToken, &m_GdiplusStartupInput, NULL);



hastings 2011-06-15
  • 打赏
  • 举报
回复
VC2010不是有那个CImage的?你初始化了没?
x_sina_x 2011-06-15
  • 打赏
  • 举报
回复
32bit[Quote=引用 14 楼 yzh52smy 的回复:]

你系统是多少位的?64位的不行
[/Quote]
x_sina_x 2011-06-15
  • 打赏
  • 举报
回复

try
{
m_image = Image::FromFile(filePath.AllocSysString());//这里总是返回0,新建一个工程后好了,之后又返回0了。
m_bitmap =new Bitmap(filePath.AllocSysString());////这里总是返回0
}
catch (CException* e)
{
AfxMessageBox(_T("加载失败"));
}

if (!m_image)
{
AfxMessageBox(_T("ERROR"));
return ;
}

[Quote=引用 13 楼 redui 的回复:]

new 一个Bitmap试试,如果加载失败它会存储错误号的
[/Quote]
MAY 2011-06-15
  • 打赏
  • 举报
回复
你系统是多少位的?64位的不行
redui 2011-06-15
  • 打赏
  • 举报
回复
new 一个Bitmap试试,如果加载失败它会存储错误号的
「已注销」 2011-06-15
  • 打赏
  • 举报
回复

.h
Image * m_image;

.cpp
m_image = Image::FromFile(L"C:\\test.bmp"); //请确定文件存在

x_sina_x 2011-06-15
  • 打赏
  • 举报
回复
还是0x0
[Quote=引用 7 楼 oyljerry 的回复:]
WCHAR str[]=_T("C:\\test.bmp");
m_image = Image::FromFile(str);//
[/Quote]
x_sina_x 2011-06-15
  • 打赏
  • 举报
回复
x_sina_x 2011-06-15
  • 打赏
  • 举报
回复
shenyi0106 2011-06-15
  • 打赏
  • 举报
回复
Image * pImage = new Bitmap(L"C:\\test.bmp");
看看如何?
oyljerry 2011-06-15
  • 打赏
  • 举报
回复
WCHAR str[]=_T("C:\\test.bmp");
m_image = Image::FromFile(str);//
x_sina_x 2011-06-15
  • 打赏
  • 举报
回复
改了,还不对。
[Quote=引用 4 楼 shenyi0106 的回复:]

WCHAR* mypath= L"C:\\test.bmp";
不是_T("")
[/Quote]
加载更多回复(5)

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧