前言
大家好,我是yma16,本文分享windows编程入门_链接错误的配置
window编程示例
以下是一个简单的 C++ Windows GUI 程序示例,它创建了一个窗口并在其中显示一段文本:
#include <windows.h> LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam); int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { // 注册窗口类 WNDCLASS wc = {}; wc.lpfnWndProc = WindowProc; wc.hInstance = hInstance; wc.lpszClassName = "MyClass"; RegisterClass(&wc); // 创建窗口 HWND hwnd = CreateWindow("MyClass", "My Window", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 500, 500, NULL, NULL, hInstance, NULL); // 显示窗口 ShowWindow(hwnd, nCmdShow); // 循环消息 MSG msg = {}; while (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return 0; } LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch (uMsg) { case WM_DESTROY: PostQuitMessage(0); return 0; case WM_PAINT: { PAINTSTRUCT ps; HDC hdc = BeginPaint(hwnd, &ps); const char* text = "Hello, world!"; TextOut(hdc, 100, 100, text, strlen(text)); EndPaint(hwnd, &ps); } return 0; default: return DefWindowProc(hwnd, uMsg, wParam, lParam); } }
该程序使用 WinMain 函数作为应用程序的入口点,它创建一个窗口并进入消息循环直到接收到 WM_QUIT 消息。窗口过程 WindowProc 函数处理窗口消息并在窗口中绘制文本。在该示例中,我们使用 TextOut 函数在窗口客户区域显示一段文本。
注意,该示例称为 “My Window” 窗口,其类名为 “MyClass”。在注册窗口类和创建窗口时,需要使用相应的名称。在 WindowProc 函数中,我们处理了 WM_DESTROY 和 WM_PAINT 消息。在窗口关闭时,我们使用 PostQuitMessage 函数发送 WM_QUIT 消息以退出消息循环。在窗口需要绘制时,我们使用 BeginPaint 和 EndPaint 函数处理绘制操作。
C++的的window编程实例
这是一个使用C++和Windows API编写的简单窗口应用程序,它可以显示一个窗口并响应关闭事件。
#include <windows.h> LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam); int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { // 定义窗口类 WNDCLASS wc = {}; wc.lpfnWndProc = WindowProc; wc.hInstance = hInstance; wc.lpszClassName = L"MyWindowClass"; // 注册窗口类 RegisterClass(&wc); // 创建窗口 HWND hwnd = CreateWindowEx(0, L"MyWindowClass", L"My Window", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 800, 600, nullptr, nullptr, hInstance, nullptr); // 显示窗口 ShowWindow(hwnd, nCmdShow); // 循环消息 MSG msg = {}; while (GetMessage(&msg, nullptr, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return 0; } // 窗口过程 LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch (uMsg) { case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hwnd, uMsg, wParam, lParam); } return 0; }
这个程序创建了一个简单的窗口,当用户关闭窗口时,它会发送 WM_DESTROY
消息。在窗口过程中,我们捕获了这个消息并调用 PostQuitMessage(0)
以终止程序的消息循环。在 WinMain
函数中,我们在消息循环中调用 GetMessage
函数以等待消息,将它们翻译为窗口消息并将它们分派给窗口过程处理。
无法解析外部符号
常见:
MSVCRTD.lib(exe_main.obj) : error LNK2019: 无法解析的外部符号 _main,函数 “int __cdecl invoke_main(void)” (?invoke_main@@YAHXZ) 中引用了该符号
解决办法
打开项目属性中的链接器
关闭链接开关
ok,这样就可以运行
结束
本文分享到这结束,如有错误或者不足之处欢迎指出,感谢大家的阅读!