鱼C论坛

 找回密码
 立即注册
查看: 3040|回复: 5

我把甲鱼老师的代码自己敲了一下,结果出错了,帮我找一下,谢谢

[复制链接]
发表于 2014-5-24 19:58:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
错误提示:错误        1        error LNK2019: 无法解析的外部符号 "long __stdcall WinProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WinProc@@YGJPAUHWND__@@IIJ@Z),该符号在函数 _WinMain@16 中被引用        C:\Users\1065609785\Desktop\作业\Windows\Win32Project1\Mywindows1\main.obj        Mywindows1
错误        2        error LNK1120: 1 个无法解析的外部命令        C:\Users\1065609785\Desktop\作业\Windows\Win32Project1\Debug\Mywindows1.exe        1        1        Mywindows1


#include<windows.h>
LRESULT CALLBACK WinProc(HWND , UINT,WPARAM,LPARAM);

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,PSTR szCmdLine, int  iCmdShow)
{
        static TCHAR szAPPName[] = TEXT("我的第一个窗口");
        HWND hwnd;
        MSG msg;
        WNDCLASS wndclass;
        wndclass.style = CS_VREDRAW | CS_HREDRAW;
        wndclass.lpfnWndProc = WinProc;
        wndclass.cbClsExtra = 0;
        wndclass.cbWndExtra = 0;
        wndclass.hInstance = hInstance;
        wndclass.hIcon = LoadIcon(NULL,IDI_APPLICATION);
        wndclass.hCursor = LoadCursor(NULL,IDC_ARROW);
        wndclass.hbrBackground = (HBRUSH)GetStockObject(GRAY_BRUSH);
        wndclass.lpszMenuName = NULL;
        wndclass.lpszClassName = szAPPName;

        if (  !RegisterClass(&wndclass))
        {
                MessageBox(NULL, TEXT("这个只能在windowsNT才能用"), szAPPName, MB_ICONINFORMATION);
                return 0;
        }

        hwnd = CreateWindow(szAPPName,
                TEXT("3#105"),
                WS_OVERLAPPEDWINDOW,
            CW_USEDEFAULT,
                CW_USEDEFAULT,
                CW_USEDEFAULT,
                CW_USEDEFAULT,
                NULL,
                NULL,
                hInstance,
                NULL
                );
        ShowWindow( hwnd, iCmdShow);
        UpdateWindow(hwnd);

        while (GetMessage(&msg,NULL,0,0))
        {
                TranslateMessage(&msg);
                DispatchMessage(&msg);
        }

        return msg.wParam;

}   
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("这是第一个窗口"), -1, &rect,DT_SINGLELINE|DT_CENTER|DT_VCENTER);
                EndPaint(hwnd,&ps);
                return 0;
        case WM_DESTROY:
                 PostQuitMessage(0);
                return  0;
        }
        return DefWindowProc(hwnd, message, wparam, lparam);
}

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

头像被屏蔽
发表于 2014-5-24 20:57:02 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-24 22:31:18 | 显示全部楼层
本帖最后由 rmb788520 于 2014-5-24 22:32 编辑

#include<windows.h>

LRESULT CALLBACK WinProc(HWND , UINT,WPARAM,LPARAM);

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,PSTR szCmdLine, int iCmdShow)
{
        static TCHAR szAPPName[] = TEXT("我的第一个窗口");
        HWND hwnd;
        MSG msg;
        WNDCLASS wndclass;

        wndclass.style = CS_VREDRAW | CS_HREDRAW;
        wndclass.lpfnWndProc = WinProc;
        wndclass.cbClsExtra = 0;
        wndclass.cbWndExtra = 0;
        wndclass.hInstance = hInstance;
        wndclass.hIcon = LoadIcon(NULL,IDI_APPLICATION);
        wndclass.hCursor = LoadCursor(NULL,IDC_ARROW);
        wndclass.hbrBackground = (HBRUSH)GetStockObject(GRAY_BRUSH);
        wndclass.lpszMenuName = NULL;
        wndclass.lpszClassName = szAPPName;

        if (  !RegisterClass(&wndclass))
        {
                MessageBox(NULL, TEXT("这个只能在windowsNT才能用"), szAPPName, MB_ICONINFORMATION);
                return 0;
        }

        hwnd = CreateWindow(szAPPName,
                TEXT("3#105"),
                WS_OVERLAPPEDWINDOW,
            CW_USEDEFAULT,
                CW_USEDEFAULT,
                CW_USEDEFAULT,
                CW_USEDEFAULT,
                NULL,
                NULL,
                hInstance,
                NULL
                );
        ShowWindow( hwnd, iCmdShow);
        UpdateWindow(hwnd);

        while (GetMessage(&msg,NULL,0,0))
        {
                TranslateMessage(&msg);
                DispatchMessage(&msg);
        }

        return msg.wParam;

}   
LRESULT CALLBACK WinProc(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("这是第一个窗口"), -1, &rect,DT_SINGLELINE|DT_CENTER|DT_VCENTER);
                EndPaint(hwnd,&ps);
                return 0;
        case WM_DESTROY:
                 PostQuitMessage(0);
                return  0;
        }
        return DefWindowProc(hwnd, message, wparam, lparam);
}

更正完毕。
这种情况。如果 建立(bulid) 没有问题,但运行出错。。请把代码复制。重新新建一个win32Application 粘贴代码再建立-->运行 就可以了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-25 13:53:49 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-26 20:18:58 | 显示全部楼层
同是菜鸟。。共勉之。。。{:7_182:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-8-19 07:57:22 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-1 22:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表