编Release版本时,由于程序中有从res中载入图标,编的Release非得要将res文件放在一起才能正常运行 编Release版本时,由于程序中有从res中载入图标,编的Release非得要将res文件放在一起才能正常运行,我想要编的release版本直接能运行,不需要res文件夹 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 生成可执行文件时Res已经封装到了文件内部,不需要res文件夹啊,你程序在没有res文件夹的情况下有没有报错?报错信息是怎样的? 没有RES的情况下,那个按钮的背景是黑的 一般res文件夹位于程序源文件目录里面,而程序文件位于源文件目录上层的release或debug目录下,你res文件夹里面的文件添加到了程序资源里面没?还是直接从文件夹中调用的? 没有RES的情况下,那个按钮的背景是黑的 添加到程序资源里了,但是在导入的时候是直接从res文件夹导入的,因为用的是CImage类的Load函数导入的参数是全路径,不能用资源中的ID 那难怪了,你试试MAKEINTERSOURCE宏把ID转换成字符串文件名试试… 试了下,用MAKEINTERSOURCE还是不行 你用的方法是在程序运行时从外部文件动态加载图标,当然要有对应的文件才行。如果想只要一个exe,就要把图标作为资源添加到项目里面,通过资源ID或资源名称来加载(用LoadIcon等函数)。 你是怎么加载res资源中的文件的呢?LoadImage()之类的操作? 如果要用CImage类,可以用LoadFromResource成员函数。 右击资源文件 --》 添加 --》 导入图片资源HICON hIcon = AfxGetApp()-> LoadIcon(ID); CButton cbtn;but.SetIcon(hIcon); 我是用CImage类中的Load这个函数加载的,是从RES文件直接导入的 那你就别用资源添加了,直接用你本地的图片,然后指定路径。跟资源文件就没有任何关系,下面是我用GDI+加载的图片进行绘制的,我查了资源文件没有描述我现在绘制这张图片。 Graphics graphics(this->m_hWnd);//Graphice对象 CRect rect; GetClientRect(&rect); TCHAR EXEPULLPATH[MAX_PATH]; GetModuleFileName(NULL,EXEPULLPATH,sizeof(EXEPULLPATH)); CString strCurDir = EXEPULLPATH; strCurDir = strCurDir.Left(strCurDir.ReverseFind('\\')); strCurDir = strCurDir.Left(strCurDir.ReverseFind('\\')); strCurDir += "\\Image\\Blue\\UnitBack.png"; Image img(strCurDir); graphics.DrawImage(&img,0,0,rect.Width(),rect.Height()); Load是从文件中加载,LoadFromResource才是从资源中加载。 VC6.0内容修改不了 DialogBox显示的对话框怎么不能接受WM_KEYDOWN消息呢? 各位大侠,怎么将ListCtrl的横向滚动条消去,即使有的列没有显示出来!急!!! 我不知道数据结构该如何学 关于两个数据类型转换的问题,谢谢! windows shell编程? 想做一个spy串口的监视程序,请大家提点建议! 高手请指点:winuser.h明明有KBDLLHOOKSTRUCT的说明,但在程序中却老是出现未定义,你知道原因吗? VC获取主板ID operator[]重载调用问题 UDP+IOCP 搭建一实时流媒体服务器? FORM POST拼表头?
参数是全路径,不能用资源中的ID
CRect rect;
GetClientRect(&rect);
TCHAR EXEPULLPATH[MAX_PATH];
GetModuleFileName(NULL,EXEPULLPATH,sizeof(EXEPULLPATH));
CString strCurDir = EXEPULLPATH;
strCurDir = strCurDir.Left(strCurDir.ReverseFind('\\'));
strCurDir = strCurDir.Left(strCurDir.ReverseFind('\\'));
strCurDir += "\\Image\\Blue\\UnitBack.png";
Image img(strCurDir);
graphics.DrawImage(&img,0,0,rect.Width(),rect.Height());