如何在MFC中操作资源句柄
如何获取动态库中对话框相关资源,避免因资源问题报错?
AfxGetResourceHandle用于获取当前资源模块句柄
AfxSetResourceHandle则用于设置程序目前要使用的资源模块句柄。
#ifndef _MACRO_H
#define _MACRO_H #define CLASS_EXPORT __declspec(dllexport) //导出类
#define API_EXPORT __declspec(dllimport) //导出函数 //获取动态库中对话框相关资源,避免因资源问题报错 #ifndef _UNICODE
#define GS_LPCSTR LPCSTR
#else
#define GS_LPCSTR LPCWSTR
#endif #ifndef __DLLRESOURCE_FUNC
#define __DLLRESOURCE_FUNC
#define MCR_BEGIN_GET_DLLRES(macro_flag, dllname) \
BEGIN_GET_DLLRES(macro_flag, dllname);
#define MCR_END_PUT_DLLRES(macro_flag, hinst) \
END_PUT_DLLRES(macro_flag, hinst); HINSTANCE BEGIN_GET_DLLRES(UINT macro_flag, GS_LPCSTR dllname);
VOID END_PUT_DLLRES(UINT macro_flag, HINSTANCE hinst); static HINSTANCE BEGIN_GET_DLLRES(UINT macro_flag, GS_LPCSTR dllname)
{
#ifndef macro_flag
HINSTANCE hinstOld = AfxGetResourceHandle();
#ifdef _DEBGU
AfxSetResourceHandle(GetModuleHandle(dllname));
#else
AfxSetResourceHandle(GetModuleHandle(dllname));
#endif
return hinstOld;
#endif
return ;
}; static void END_PUT_DLLRES(UINT macro_flag, HINSTANCE hinst)
{
#ifndef macro_flag
AfxSetResourceHandle(hinst);
#endif
};
#endif //_DLLRESOURCE_FUNC
#endif //_MACRO_H
如何在MFC中操作资源句柄的更多相关文章
- 【VS开发】【CUDA开发】如何在MFC中调用CUDA
如何在MFC中调用CUDA 有时候,我们需要在比较大的项目中调用CUDA,这就涉及到MFC+CUDA的环境配置问题,以矩阵相乘为例,在MFC中调用CUDA程序.我们参考罗振东iylzd@163.com ...
- 如何在MFC中创建非矩形button
一般情况下,我们创建的按钮都是矩形的,但有时为了满足特殊的需求,我们要在对话框中创建一个非矩形的按钮,比如,圆形,椭圆等. 要实现一个非矩形的按钮,这就涉及到了自绘控件.自绘控件的方法有很多,可以参考 ...
- 如何在MFC中启动其它的(.exe)可执行文件
ShellExecute(NULL, "open", "http://www.sina.com.cn", NULL, NULL, SW_SH ...
- WPF MVVM 如何在ViewModel中操作View中的控件事件
(在学习Wpf的时候,做一个小例子,想在TextBox改变后,检验合法性,并弹出提示.在找了很多贴后,发现这个小例子,抄袭过来,仅供参考. 最后也找到了适合自己例子的办法:在出发TextChanged ...
- 如何在LinuxKernel中操作file(set_fs與get_fs)
在Kernel 中,照理說能存取至 0 ~ 4GB.但是實作層面卻是只能讓我們使用到3GB ~ 4GB 這會導致我們無法使用open(),write()這些在user space下的function. ...
- 如何在MFC中添加对话栏
- 关于MFC资源句柄、ID和对象
一.资源.句柄和ID 资源: MFC中的资源,如菜单.对话框.图标.工具条.对话框等,是windows创建的,并占用堆内存.windows在创建这些资源时候会给每个资源分配一个句柄,用来标记这些资源, ...
- (转)MFC中获得各个类的指针/句柄 ID的总结
http://www.cnblogs.com/ylhome/archive/2009/10/06/1578478.html 一般我们使用的框架是VC提供的Wizard生成的MFC App Wizard ...
- MFC中的句柄
1.引出句柄 CDC问题:1.CDC dc;dc.LineTo(point);无法运行 2.CDC *dc=GetDC();dc->LineTo(point);就可以运行了 MFC中有大量的句柄 ...
随机推荐
- Flex中如何通过设置GridLines对象的horizontalAlternateFill样式交错显示LineSeries图表背景颜色的例子
原文 http://blog.minidx.com/2008/11/27/1652.html 接下来的例子演示了Flex中如何通过设置GridLines对象的horizontalAlternateFi ...
- swift 用协议实现代理传值功能
1.功能简介 RootViewController中用个lable和一个按钮,点击按钮跳转到模态窗口.在模态窗口中有个TextField和一个按钮,输入文字点击关闭模态按钮后跳转到RootViewCo ...
- 微软将Bing变开放平台 同谷歌争夺开发者
微软在编译者大会上宣布将Bing作为平台开放,此举显然旨在改变谷歌(微博)一家独大的局面. 报道称,微软知道如何创建平台.因此当它发布新平台时,都值得业界仔细关注.就在上周之前,微软Bing给大家的印 ...
- Fedora、CentOS install TTF/otf fonts
Step 1:切换至字体下载目录: [Richard@localhost Downloads]$ ll | grep otf -rw-rw-r--. Richard Richard 7月 RBNo2L ...
- ORA-600[kcratr_scan_lastbwr]逻辑坏块解决
数据库版本: 11.2.0.3 问题现象: 今天在启动一台测试数据库的时候,发现db不能open,报错如下: ERROR at line 1: ORA-00600: internal error co ...
- 关于中文乱码的解决方法(URL方式)
假设keyWord ='阳光'; url="play.jsp? keyWord ="+ keyWord 若按照上述的地址直接访问,则中文会变成乱码.必须使用encodeURI()进 ...
- 解决SVN:could not start external diff program的问题。
今天装完SVN之后,用来查看文件不同老是出现could not start external diff program,网上找了很多资料也没找到自己想要的,无意中中右键 Settings看到有个Dif ...
- Git 系列(四):在 Git 中进行版本回退
在这篇文章中,你将学到如何查看项目中的历史版本,如何进行版本回退,以及如何创建 Git 分支以便你可以大胆尝试而不会出现问题. 在你的 Git 项目的历史中,你的位置就像是摇滚专辑中的一个片段,由一个 ...
- APサーバ
GlassFish GlassFish 是一款强健的商业兼容应用服务器,达到产品级质量,可免费用于开发.部署和重新分发. 简介 GlassFish 是用于构建 Java EE 5应用服务器的开源开发项 ...
- ubuntu 安装ruby rails
步骤0 - 安装系统需要的包 Mac 请安装 Xcode 开发工具,它将帮你安装好 Unix 环境需要的开发包 Ubuntu 请安装 $ sudo apt-get install -y build-e ...