鱼C论坛

 找回密码
 立即注册
查看: 3058|回复: 6

[已解决]模板

[复制链接]
发表于 2019-12-17 17:45:00 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 lixiangyv 于 2019-12-17 19:44 编辑

我在其他地方找到了源代码,但是编译后报错了:
C:\Users\yunzh\AppData\Local\Temp\ccr8Onml.o:windows.c:(.text+0x7f): undefined reference to `__imp_GetStockObject'
collect2.exe: error: ld returned 1 exit status
源代码是:
#include <windows.h>

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

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
        static TCHAR szClassName[] = TEXT("HelloWin");  //窗口类名
        HWND     hwnd;  //窗口句柄
        MSG      msg;  //消息
        WNDCLASS wndclass;  //窗口类

        //为窗口类的各个字段赋值
        wndclass.style = CS_HREDRAW | CS_VREDRAW;  //窗口风格
        wndclass.lpfnWndProc = WndProc;  //窗口过程
        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(WHITE_BRUSH);  //窗口背景画刷
        wndclass.lpszMenuName = NULL;  //窗口菜单
        wndclass.lpszClassName = szClassName;  //窗口类名

        //注册窗口
        RegisterClass(&wndclass);

        hwnd = CreateWindow(
                szClassName,  //窗口类的名字
                TEXT("Welcome"),  //窗口标题(出现在标题栏)
                WS_OVERLAPPEDWINDOW,  //窗口风格
                CW_USEDEFAULT,  //初始化时x轴的位置
                CW_USEDEFAULT,  //初始化时y轴的位置
                500,  //窗口宽度
                300,  //窗口高度
                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("你好,欢迎来到C语言中文网"),
                        -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);
}
请问怎么改呀?
小甲鱼求助  
最佳答案
2019-12-17 21:29:11
建立的是Win32项目吗,如果不是,先建立win32项目,选择空项目,再运行代码试试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-12-17 21:29:11 | 显示全部楼层    本楼为最佳答案   
建立的是Win32项目吗,如果不是,先建立win32项目,选择空项目,再运行代码试试
TIM截图20191217212742.png
TIM截图20191217212549.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-12-18 20:18:40 | 显示全部楼层
你这个Visual Studio是是什么版本的?我这个怎么和你的不一样?
Screenshot_1.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-20 09:33:42 | 显示全部楼层
空项目那个应该就可以
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-12-20 17:51:42 | 显示全部楼层
这是控制台项目......
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-12-22 07:04:21 | 显示全部楼层
本帖最后由 lixiangyv 于 2019-12-22 07:06 编辑

我真是没想到……小甲鱼打包的也报那个错!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-4 11:00:31 | 显示全部楼层
太好了,学到了。谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-21 19:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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