(.text+0x26f): 对`TextOutA@20'的未定义引用

问题描述

我已经尝试修复这段代码好几天了。当我尝试编译 main.cpp 时,它给了我错误 C:\Users\Username\AppData\Local\Temp\cckKRlpR.o:main.cpp:(.text+0x26f): undefined reference to textoutA@20'。我也试过包括 gdi32.lib 和 lgdi32 但它仍然给我错误。如果你知道如何解决这个问题,请告诉我。这是源代码顺便说一句:

// main.cpp
// compile with: /D_UNICODE /DUNICODE /DWIN32 /D_WINDOWS /c

#include <windows.h>
#include <stdlib.h>
#include <string.h>
#include <tchar.h>
#include <wingdi.h>

#pragma comment(lib,"gdi32.lib")

// Global variables

// The main window class name.
static TCHAR szWindowClass[] = _T("Hello,World");

// The string that appears in the application's title bar.
static TCHAR szTitle[] = _T("Hello,World App");

HINSTANCE hInst;

// Forward declarations of functions included in this code module:
LRESULT CALLBACK WndProc(HWND,UINT,WParaM,LParaM);

int CALLBACK WinMain(
   HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR     lpCmdLine,int       nCmdshow
)
{
   WNDCLASSEX wcex;

   wcex.cbSize = sizeof(WNDCLASSEX);
   wcex.style          = CS_HREDRAW | CS_VREDRAW;
   wcex.lpfnWndProc    = WndProc;
   wcex.cbClsExtra     = 0;
   wcex.cbWndExtra     = 0;
   wcex.hInstance      = hInstance;
   wcex.hIcon          = LoadIcon(hInstance,IDI_APPLICATION);
   wcex.hCursor        = LoadCursor(NULL,IDC_ARROW);
   wcex.hbrBackground  = (HBrush)(COLOR_WINDOW+1);
   wcex.lpszMenuName   = NULL;
   wcex.lpszClassName  = szWindowClass;
   wcex.hIconSm        = LoadIcon(wcex.hInstance,IDI_APPLICATION);

   if (!RegisterClassEx(&wcex))
   {
      MessageBox(NULL,"Call to RegisterClassEx Failed!","Hello,World App",MB_OK);

      return 1;
   }

   // Store instance handle in our global variable
   hInst = hInstance;

   // The parameters to CreateWindow explained:
   // szWindowClass: the name of the application
   // szTitle: the text that appears in the title bar
   // WS_OVERLAPPEDWINDOW: the type of window to create
   // CW_USEDEFAULT,CW_USEDEFAULT: initial position (x,y)
   // 500,100: initial size (width,length)
   // NULL: the parent of this window
   // NULL: this application does not have a menu bar
   // hInstance: the first parameter from WinMain
   // NULL: not used in this application
   HWND hWnd = CreateWindow(
      szWindowClass,szTitle,WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,500,100,NULL,hInstance,NULL
   );

   if (!hWnd)
   {
      MessageBox(NULL,"Windows Desktop Guided Tour",MB_OK);

      return 1;
   }

   // The parameters to ShowWindow explained:
   // hWnd: the value returned from CreateWindow
   // nCmdshow: the fourth parameter from WinMain
   ShowWindow(hWnd,nCmdshow);
   UpdateWindow(hWnd);

   // Main message loop:
   MSG msg;
   while (GetMessage(&msg,0))
   {
      TranslateMessage(&msg);
      dispatchMessage(&msg);
   }

   return (int) msg.wParam;
}

//  FUNCTION: WndProc(HWND,LParaM)
//
//  PURPOSE:  Processes messages for the main window.
//
//  WM_PAINT    - Paint the main window
//  WM_DESTROY  - post a quit message and return
LRESULT CALLBACK WndProc(HWND hWnd,UINT message,WParaM wParam,LParaM lParam)
{
   PAINTSTRUCT ps;
   HDC hdc;
   TCHAR greeting[] = ("Hello,World");

   switch (message)
   {
   case WM_PAINT:
      hdc = BeginPaint(hWnd,&ps);

      
      textout(hdc,5,greeting,_tcslen(greeting));
      // End application-specific layout section.

      EndPaint(hWnd,&ps);
      break;
   case WM_DESTROY:
      PostQuitMessage(0);
      break;
   default:
      return DefWindowProc(hWnd,message,wParam,lParam);
      break;
   }

   return 0;
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)