菜鸟 我又碰到一个问题 “VC动态库中怎么动态生成对话框?”

twoseconds 2008-11-20 09:33:04
#include "stdafx.h"

DWORD WINAPI Threadfunc(
LPVOID lpParameter);
BOOL WINAPI DllMain2(
HINSTANCE hinstDLL, // handle to DLL module
DWORD fdwReason, // reason for calling function
LPVOID lpReserved ) // reserved
{
switch( fdwReason )
{
case DLL_PROCESS_ATTACH:
CreateThread(NULL,0,Threadfunc,NULL,NULL,NULL);
break;

case DLL_THREAD_ATTACH:
break;

case DLL_THREAD_DETACH:
break;

case DLL_PROCESS_DETACH:
break;
}
return TRUE; // Successful DLL_PROCESS_ATTACH.
}
BOOL CALLBACK Dialogfunc(
HWND hwndDlg,
UINT uMsg,
WPARAM wParam,
LPARAM lParam)
{
switch(uMsg)
{
case WM_INITDIALOG:
break;
case WM_CLOSE:
break;
default:
return FALSE;
}
return TRUE;
}
DWORD WINAPI Threadfunc(
LPVOID lpParameter)
{
DialogBoxParam(NULL,(LPCTSTR)IDD_Dlg,NULL,Dialogfunc,NULL);
return 1;
}
目地:要这DLL,一注入的同时生成对话框。所以只能在入口的地方开线程。
本人用的是MFC的DLL,现在只差怎么样生成对话框了,线程已经运行成功,但是DialogBoxParam的返回值等于-1 晕~~。如果用
CDialog Dlg;
Dlg.DoModal//则会在注入运行时发生错误。
若不用MFC的DLL,它会提示IDD_Dlg,没用定义,咋办啊。。555555我本人还是比较喜欢用普通的DLL,建议有没有用普通DLL生成对话框的
...全文
100 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
twoseconds 2008-11-20
  • 打赏
  • 举报
回复
那要怎么做,比较方便,请大哥指点一二,55555555555555555
我这样,是因为汇编这样写的,我以前是学汇编
就呆在云上 2008-11-20
  • 打赏
  • 举报
回复
无语
为什么要这么做呢?
normallife 2008-11-20
  • 打赏
  • 举报
回复
AFX_MANAGE_STATE(AfxGetStaticModuleState())在你调用MFC资源对话框前用了没?这个问题是资源冲突的问题
Non_Recursive 2008-11-20
  • 打赏
  • 举报
回复
up,不会MFC
twoseconds 2008-11-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 normallife 的回复:]
AFX_MANAGE_STATE(AfxGetStaticModuleState())在你调用MFC资源对话框前用了没?这个问题是资源冲突的问题
[/Quote]
在哪里用啊,不懂,不明白。。我是初学者5555555
我的DLL中暂时只有上面那些代码,在哪里加啊。

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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