菜鸟 我又碰到一个问题 “VC动态库中怎么动态生成对话框?”
#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生成对话框的