DEBUG ASSERTION FAILED问题
代码如下:
#include <afxres.h>
#include <afxdlgs.h>
#include <Windows.h>
#include <D:\备份\windows应用编程实践\windows应用编程实践\resource.h>
HINSTANCE hinst;
LRESULT CALLBACK MainWndProc (HWND, UINT, WPARAM, LPARAM);
BOOL InitApplication (HINSTANCE hInstance)
{
WNDCLASSEX wcx;
wcx.cbSize = sizeof (wcx);//WNDCLASSEX 的大小
wcx.style = CS_HREDRAW | CS_VREDRAW;//从这个窗口类派生的窗口具有的风格
wcx.lpfnWndProc = MainWndProc;//窗口处理函数的指针
wcx.cbClsExtra = 0;//指定紧跟在窗口类结构后的附加字节数
wcx.cbWndExtra = 0;//指定紧跟在窗口事例后的附加字节数
wcx.hInstance = hInstance;//本模块的事例句柄
wcx.hIcon = LoadIcon (NULL, IDI_APPLICATION);//图标的句柄
wcx.hCursor = LoadCursor (NULL, IDC_ARROW);//光标的句柄
wcx.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);//背景画刷的句柄
wcx.lpszMenuName = NULL;//指向菜单的指针
wcx.lpszClassName = "MYCLASS";//指向类名称的指针
wcx.hIconSm = LoadIcon(NULL, IDI_WINLOGO);//和窗口类关联的小图标。如果该值为NULL。则把hIcon中的图标转换成大小合适的小图标
return (RegisterClassEx (&wcx));
}
HWND CreateEdit (HWND);
BOOL InitInstance (HINSTANCE hInstance, int nCmdShow)
{
HWND hwnd, hwndEdit;
RECT rect;
hwnd = CreateWindow (
"MYCLASS",//WNDCLASSEX中定义的lpszClassName
"NEW",//窗口标题
WS_OVERLAPPEDWINDOW,//创建窗口的风格
CW_USEDEFAULT,//指定窗口的初始水平位置
CW_USEDEFAULT,//指定窗口的初始垂直位置
CW_USEDEFAULT,//以设备单元指明窗口的宽度
CW_USEDEFAULT,//以设备单元指明窗口的高度
NULL,//指向被创建窗口的父窗口或所有者窗口的句柄
LoadMenu (hInstance, MAKEINTRESOURCE(IDR_MENU1)),//菜单句柄
hInstance,//程序实例的句柄
(LPVOID) NULL);
hwndEdit = CreateEdit (hwnd);
ShowWindow (hwnd, nCmdShow);
UpdateWindow (hwnd);
if (!hwnd)
{
return FALSE;
}
else
{
return TRUE;
}
}
HWND CreateEdit (HWND hwndP)
{
HWND hwnde;
hwnde = CreateWindow (
"EDIT",
NULL,
WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_BORDER | ES_LEFT | ES_MULTILINE | ES_AUTOVSCROLL,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
hwndP,
(HMENU)NULL,
hinst,
(LPVOID)NULL);
ShowWindow (hwnde, SW_SHOW);
UpdateWindow (hwnde);
return hwnde;
}
LRESULT CALLBACK MainWndProc (HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam)//消息处理函数
{
CString lpFileName;
CFileDialog Dia (TRUE);
switch (uMsg)
{
case WM_COMMAND:
switch (LOWORD(wParam))
{
case ID_40001:
{
if (Dia.DoModal ()== IDOK)
{
lpFileName = Dia.GetPathName ();
MessageBox (NULL, lpFileName, "文件路径", MB_OK);//显示读取的文件路径
}
break;
}
default:
break;
}
break;
case WM_DESTROY://窗口消失函数
ExitThread (0);//线程终止
break;
default:
return DefWindowProc (hwnd, uMsg, wParam, lParam);//系统默认消息处理函数
}
UpdateWindow (hwnd);
}
int WinMain (HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
MSG msg;
if (!InitApplication (hInstance))
{
return FALSE;
}
if (!InitInstance (hInstance, nCmdShow))
{
return FALSE;
}
while (GetMessage (&msg, (HWND)NULL, 0, 0))
{
TranslateMessage (&msg);
DispatchMessage (&msg);
}
return msg.wParam;
}