社区
进程/线程/DLL
帖子详情
在DLL中用DialogBox函数产生一个对话框,为什么产生的却是调用者(exe)中的资源的对话框,而不是DLL资源中的对话框。如何让它产生dll资
sun4216
2007-09-17 05:00:31
如题
...全文
161
8
打赏
收藏
微信扫一扫
点击复制链接
分享
举报
写回复
8 条
回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Chivalry
2007-09-18
假设你生成的DLL名字叫做MyDll.dll
HANDLE hDLL = (HANDLE)GetModuleHandle("MyDll");
打赏
举报
回复
赞
sun4216
2007-09-18
我的DLL没有DLLMAIN函数,但我用GetModuleHandle(NULL)获得DLL hInstance。结果还是不行。
打赏
举报
回复
赞
flyelf
2007-09-18
you must use the Instance Handle which from the DllMain function
打赏
举报
回复
赞
lyg_zy
2007-09-18
你用DialogBox或DialogBoxParam显示对话框吧。
那他们的第一个参数就是HINSTANCE hInstance呀。这里的hInstance要传你的dll的hInstance.
大概的示例代码:
HINSTANCE g_hModule
DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
{
// Remove this if you use lpReserved
UNREFERENCED_PARAMETER(lpReserved);
if (dwReason == DLL_PROCESS_ATTACH)
{
g_hModule = hInstance;
}
DialogBox( g_hModule ,....);
DialogBoxParam ( g_hModule ,....);
打赏
举报
回复
赞
sun4216
2007-09-18
怎么都是用MFC呀,有没有SDK的版本呀。谢谢了
打赏
举报
回复
赞
ouyh12345
2007-09-17
dll中,如果没做特殊处理,引用的是应用程序的资源。
得切换到dll的资源中。
用AFX_MANAGE_STATE(AfxGetStaticModuleState());
或得到dll的instance,加载资源时,用此instance
打赏
举报
回复
赞
sun4216
2007-09-17
我用的是SDK呀,有没有SDK的版本?谢谢了
打赏
举报
回复
赞
vocanicy
2007-09-17
这是因为在主程序的资源链中无法查找到这个对话框资源
需要在创建对话框之前将当前资源的handle切换到对话框的资源
hOldRes = AfxGetResourceHandle();
AfxSetResourceHandle(hDLL);
// 创建对话框,结束后将资源句柄恢复
。。。
AfxSetResourceHandle(hOldRes );
我这里写了一个自动切换的简单类,你直接用就可以了
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
CResourceLock ResLock(g_hModule); // 增加这一句,其中g_hModule是动态库的hInstance,在DllMain中保存的全局变量
CwmaDlg dlg;
dlg.DoModal();
return 0;
}
DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
{
// Remove this if you use lpReserved
UNREFERENCED_PARAMETER(lpReserved);
if (dwReason == DLL_PROCESS_ATTACH)
{
g_hModule = hInstance;
}
......
// h
class CResourceLock
{
public:
CResourceLock(HINSTANCE hInstance);
virtual ~CResourceLock();
private:
HINSTANCE m_hInstance;
};
// cpp
CResourceLock::CResourceLock(HINSTANCE hInstance)
{
m_hInstance = AfxGetResourceHandle();
AfxSetResourceHandle(hInstance);
}
CResourceLock::~CResourceLock()
{
AfxSetResourceHandle(m_hInstance);
}
打赏
举报
回复
赞
相关推荐
【转】win32 的
DLL
中
创建windows窗口
因工作需求,需要写
一个
DLL
,并
在
其
中
创建windows窗口,网上有很多关于
DLL
创建窗口的文章,不过都是基于MFC的, 却鲜见直接用win32的
DLL
创建的。经过研究调试,实现了
在
win32
DLL
中
创建窗口,总结成文,分享一下。 ...
问C#高手: [
Dll
Import(“kernel32.
dll
“)]是什么意思??
这叫引入kernel32.
dll
这个动态连接库。...
函数
名就是
一个
属于kernel32.
dll
里的
一个
函数
。完了你就可以用那个
函数
了。 kernel32.
dll
调用kernel32.
dll
这个
DLL
里面的API接口! 系统API 例如 [
Dll
Import(...
C#调用API
函数
一、调用格式using System.Runtime.InteropServices; //引用此名称空间,简化后面的代码//使用
Dll
ImportAttribute特性来引入api
函数
,注意声明的是空方法,即方法体为空。[
Dll
Import("user32.
dll
")]public static ...
从.NET平台调用Win32 API(C#调用的
dll
动态链接库)
作者:刘铁猛 日期:2005-12-20 ...版权声明:本文章受知识产权法保护,如果阁下想转载,
在
转载的时候烦劳阁下连同
在
下的姓名一起转载,并向bladey@tom.com发
一个
Mail,我很想知道我的文章都去哪里
cad.net 利用win32api实现
一个
命令开关参照面板
首先我要判断是否已经打开了参照面板. ...首先学习的是https://blog.csdn.net/bcbobo21cn/article/details/50930221这篇文章很好的说明了c#如何调用win32api,以及大家可能遇到的各种问题. 我来存一下: Wi...
C#调用Win32 api学习总结
从.NET平台调用Win32 API Win32 API可以直接控制Microsoft Windows的核心,因为API(Application Programming Interface)本来就是微软留给我们直接控制Windows的接口。 一. 基础知识 Win32 API是C语言...
c#+API+
函数
C:\ProgramFiles\MicrosoftVisual Studio .NET\ FrameworkSDK\Samples\ Technologies\ Interop\PlatformInvoke\ WinAPIs\CS目录下有大量的调用API的例子。 一、调用格式
C# API
函数
一、调用格式 using System.Runtime.InteropServices; //引用此名称空间,简化后面的代码 //使用
Dll
ImportAttribute特性来引入api
函数
,注意声明的是空方法,即方法体为空。 [
Dll
Import("user32.
dll
")] public ...
Windows 消息机制浅析
中
国人喜欢以史为鉴,
而
事实也确实是,如果你能知道一件事情的来龙去脉,往往可以更容易地理解事物为什么会表现为当前这样的现状。所以,我的介绍性开场白通常会以一段历史开始。不过,我不会以精确到年月日的那种...
基于Visual C++ 6.0的
DLL
通论
(例如显示的字体和图标存储
在
GDI
DLL
中
、显示Windows桌面和处理用户的输入所需要的代码被存储
在
一个
User
DLL
中
、Windows编程所需要的大量的API
函数
也被包含
在
Kernel
DLL
中
)。
在
Windows操作系统
中
使用
DLL
有很多...
暴强贴:从.NET平台调用Win32 API
作者:刘铁猛日期:2005-12-20关键字:C# .NET Win32 API版权声明:本文章受知识产权法保护,如果阁下想转载,
在
转载的时候烦劳阁下连同
在
下的姓名一起转载,并向bladey@tom.com发
一个
Mail,我很想知道我的文章都去哪里...
[
Dll
Import("kernel32.
dll
")]详解
这叫引入kernel32.
dll
这个动态连接库。 这个动态连接库里面包含了很多WindowsAPI
函数
,如果你想使用这面的
函数
,就需要这么引入。...
函数
名就是
一个
属于kernel32.
dll
里的
一个
函数
。完了你就可以用那个
函数
了。
MFC学习(一):MFC的消息循环 --讲解到位
在
上面的phase1第
一个
内循环
中
用
到了PeekMessage,
它
的参数PM_NOREMOVE表示并不从消息队列
中
移走消息,
而
是
一个
检测查询,如果消息队列
中
没有消息他立刻返回0,如果这时线程空闲的话将会引起消息循环调用OnIdle处理...
基于Visual C++ 6.0的
DLL
通论(翟超)
(例如显示的字体和图标存储
在
GDI
DLL
中
、显示Windows桌面和处理用户的输入所需要的代码被存储
在
一个
User
DLL
中
、Windows编程所需要的大量的API
函数
也被包含
在
Kernel
DLL
中
)。
在
Wi
C# API 大全- Win32调用
C# APIC:/ProgramFiles/MicrosoftVisual Studio .NET/ FrameworkSDK/Samples/ ... //引用此名称空间,简化后面的代码//使用
Dll
ImportAttribute特性来引入api
函数
,注意声明的是空方法,即方法体为空。[
Dll
Impo
CSDN回帖得分大全(近两年)
√vs2005调用
dll
的时候Initialize()
函数
返回错误 [VC/MFC 基础类] 40 ylongwu 05-21 20:486 ylongwu06-28 13:42管理√为什么我创建登陆框之后,然后获取登陆框的数据时候总是出现非法操作! [VC/MFC 界面] 40 ...
2022广西三月三风俗的作文十篇.docx
2022广西三月三风俗的作文十篇.docx
公路改建工程监理工作执行报告.zip监理报告DOC文档
资
料下载
公路改建工程监理工作执行报告.zip监理报告DOC文档
资
料下载公路改建工程监理工作执行报告.zip监理报告DOC文档
资
料下载公路改建工程监理工作执行报告.zip监理报告DOC文档
资
料下载公路改建工程监理工作执行报告.zip监理报告DOC文档
资
料下载 1.合个人学习技术做项目参考合个人学习技术做项目参考 2.适合学生做毕业设计项目参考适合学生做毕业设计项目技术参考 3.适合小团队开发项目技术参考适合小团队开发项目技术参考
在
线听•音乐网站的设计与实现_kaic.docx
摘要 Abstract 1 绪论 1.1 题目背景、目的 1.2 系统重点 2 系统相关技术 2.1 系统开发的技术要求 2.2 系统相关技术、平台和数据的选择 2.3 系统开发框架和工具库的介绍 2.4 前后端分离开发模式 3 系统需求分析 3.1 系统开发目的 3.2 性能需求 3.3 可行性分析 3.4 系统功能分析 3.5 操作流程图 3.6 需要满足的目标 4 系统概要设计 4.1 系统功能模块划分 4.2 数据库的设计 4.2.4 各个实体的E-R模型 5 系统详细设计 5.1 数据库表结构 5.2 管理员端设计 5.3 模块设计 6 系统实现 6.1 用户登录界面 6.2 用户注册界面 6.3 用户浏览首页信息界面 6.4 用户浏览歌单界面 6.5 用户浏览歌手界面 6.6 用户浏览我的音乐界面 6.7 管理员登录界面 7 测试与分析 7.1 测试目的 7.2 测试方法 7.3 测试环境 7.4 功能测试模块 结 论 参考文献 致 谢
发帖
进程/线程/DLL
加入
微信扫一扫
点击复制链接
1.5w+
社区成员
4.9w+
社区内容
VC/MFC 进程/线程/DLL
申请成为版主
帖子事件
创建了帖子
2007-09-17 05:00
社区公告
暂无公告