Win32 DLL窗口未显示
Win32 DLL Window not showing
我最近想出了一些逻辑(以及互联网上的各种地方)说应该工作的代码。当注入我的Win32 DLL到任何程序虽然测试它,我已经创建的窗口不出现。我不知道为什么会这样,我的代码如下:
main.cpp
#include "stdafx.h"
#include "resource.h"
#include <tchar.h>
HWND PGHWND;
BOOL CALLBACK EventHandler(HWND hDlg,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
return 0;
}
DWORD WINAPI MainWin(HMODULE hMod)
{
DialogBox(hMod, MAKEINTRESOURCE(IDD_DIALOG1), NULL, (DLGPROC)EventHandler);
ExitThread(0);
return 0;
}
void GetWnd()
{
DialogBox(0,MAKEINTRESOURCE(IDD_DIALOG1),0,0);
for(;;)
{
PGHWND = FindWindow(NULL, "3D Pinball for Windows - Space Cadet");
if(PGHWND)
{
break;
}
}
}
__declspec(dllexport) bool __stdcall DllMain(HMODULE hModule,DWORD Reason,LPVOID lpv) //DllMain
{
switch (Reason){ //What happened?
case DLL_PROCESS_ATTACH: //Did the DLL attach?
DisableThreadLibraryCalls(hModule); //Disable THREAD_ATTACH and THREAD_DETACH
CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)MainWin, hModule, 0, NULL); //Start the thread to create the dialog
CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)&GetWnd,NULL,0,NULL); //Start our thread to get the window
MessageBox(0, _T("This program was created by Joe Savage"), _T("Pinball Modifications!"), 0);
break;
break;
}
return true;
}
Main.rc
// Generated by ResEdit 1.5.4
// Copyright (C) 2006-2010
// http://www.resedit.net
#include <windows.h>
#include <commctrl.h>
#include <richedit.h>
#include "resource.h"
//
// Dialog resources
//
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
IDD_DIALOG1 DIALOG 0, 0, 55, 24
STYLE DS_3DLOOK | DS_CENTER | DS_MODALFRAME | DS_SHELLFONT | WS_CAPTION | WS_VISIBLE | WS_POPUP | WS_SYSMENU
CAPTION "Dialog"
FONT 8, "Ms Shell Dlg"
{
DEFPUSHBUTTON "OK", IDOK, 3, 3, 50, 14
}
resource.h
#ifndef IDC_STATIC
#define IDC_STATIC (-1)
#endif
#define IDD_DIALOG1 100
函数GetWnd()中语句DialogBox(0,MAKEINTRESOURCE(IDD_DIALOG1),0,0);
错误
必须是这样的:
DialogBox( hInst ,MAKEINTRESOURCE(IDD_DIALOG1),0 ,EventHandler );
相关文章:
- 使用 while 循环时不显示窗口
- 有没有办法拿一个opencv显示窗口并将其保存到GUI窗口?
- SDL视频显示窗口:如何连接窗口关闭事件回调
- Qt:缓慢启动时显示窗口内容
- 为什么MessageBox在我创建的桌面中显示窗口,而AllocConsole在上一个桌面中显示它
- 如何显示窗口大小不同的输出图像?通过使用 cv::Mat
- QMLApplicationViewer 多个实例仅首先显示窗口
- 为什么HWND_NOTTOPMOST无法在xp中显示窗口前景
- 基本C++SFML显示窗口错误
- 使用Richedit控件时,基于对话框的Win32 API程序将不会显示窗口
- 显示窗口的极简主义Visual C++应用程序
- Win32:是否可以显示窗口,但在任务栏中隐藏它
- OpenCV-关闭图像显示窗口
- IWebBrowser2在渲染完成后显示窗口
- 防止在调用SDL_SetVideoMode后显示窗口
- 如何使用rad studio显示窗口总数
- Opencv highgui显示窗口
- 使用sfml显示窗口
- 跨平台c++库/库:显示窗口,在屏幕上渲染2D形状,在屏幕上渲染文本
- 用于创建菜单栏的c++ win32程序(程序编译并运行,也显示窗口但不显示菜单栏)