
请问在 Dev C++ 里编写的 Windows 程序,为什么原先可以编译的,但修改了之后再改回来就不能编译了呢?
会自动进入到Makefile.win,指向$(CC)$(LINKOBJ)-o$(BIN)$(LIBS)这是我学习的第一个Windows程序:#include<window...
会自动进入到 Makefile.win,指向 $(CC) $(LINKOBJ) -o $(BIN) $(LIBS)
这是我学习的第一个Windows程序:
#include <windows.h>
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
RECT rect;
switch(message)
{
case WM_PAINT:
hdc = BeginPaint(hwnd, &ps);
GetClientRect(hwnd, &rect);
DrawText
(
hdc,
TEXT("这是我的第一个 Windows 程序!"),
-1,
&rect,
DT_SINGLELINE | DT_CENTER | DT_VCENTER
);
EndPaint(hwnd, &ps);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
default :
return DefWindowProc(hwnd, message, wParam, lParam);
}
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR LPCmdLine, int nCmdShow)
{
HWND hwnd;
MSG msg;
WNDCLASS wc;
TCHAR lpszClassName[] = "window";
TCHAR lpszWndName[] = "窗口";
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = WndProc;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH);
wc.lpszClassName = lpszClassName;
if(!RegisterClass(&wc))
{
MessageBox(NULL, TEXT("窗口注册失败"), TEXT("提示"), MB_OK);
return 0;
}
hwnd = CreateWindow
(
lpszClassName,
lpszWndName,
WS_TILEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
500,
300,
NULL,
NULL,
hInstance,
NULL
);
ShowWindow(hwnd, nCmdShow);
UpdateWindow(hwnd);
while(GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
如果我注释掉
wc.lpszClassName = lpszClassName;
再改回来就不行了,编译不过去了; 展开
这是我学习的第一个Windows程序:
#include <windows.h>
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
RECT rect;
switch(message)
{
case WM_PAINT:
hdc = BeginPaint(hwnd, &ps);
GetClientRect(hwnd, &rect);
DrawText
(
hdc,
TEXT("这是我的第一个 Windows 程序!"),
-1,
&rect,
DT_SINGLELINE | DT_CENTER | DT_VCENTER
);
EndPaint(hwnd, &ps);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
default :
return DefWindowProc(hwnd, message, wParam, lParam);
}
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR LPCmdLine, int nCmdShow)
{
HWND hwnd;
MSG msg;
WNDCLASS wc;
TCHAR lpszClassName[] = "window";
TCHAR lpszWndName[] = "窗口";
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = WndProc;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH);
wc.lpszClassName = lpszClassName;
if(!RegisterClass(&wc))
{
MessageBox(NULL, TEXT("窗口注册失败"), TEXT("提示"), MB_OK);
return 0;
}
hwnd = CreateWindow
(
lpszClassName,
lpszWndName,
WS_TILEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
500,
300,
NULL,
NULL,
hInstance,
NULL
);
ShowWindow(hwnd, nCmdShow);
UpdateWindow(hwnd);
while(GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
如果我注释掉
wc.lpszClassName = lpszClassName;
再改回来就不行了,编译不过去了; 展开
3个回答
展开全部
说明白点,就是你自己编译并运行后那个运行框没关闭,就又再编译。一些编译器不能打开多个运行框,如:Dev
展开全部
为什么要注释掉这行,所有的窗口类都需要类名称的啊
更多追问追答
追问
我知道肯定要这一行。
但我想搞清楚:
我注释掉它,那它肯定编译不了;
然后我再改回来。为什么它就一直编译不过去了;
当我重新建立一个项目时,把这代码粘贴上去,又没问题。
我想搞清楚是不是设置的问题还是其它问题;
追答
编译的时候提示什么错误?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2016-08-26
展开全部
编译提示什么错误麻烦吧问题描述清楚。
追问
cannot open output file window.exe: Permission denied
[Error] ld returned 1 exit status
刚试了试,改多几次之后就过不了了,有时头一两次还能过;
追答
任务管理器吧你程序的进程结束掉,你代码没问题,只是你程序在运行无法重新生成。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询