win32api TextOut()

时间:2017-06-08 11:45:30

标签: c++ winapi

当我为Windows编写代码时,有几个函数会给我错误信息

  

"未定义引用...",

例如TextOut(...)函数生成

  

"未定义参考' TextOut @ 20' "

示例:

case WM_KEYDOWN ://cand apas o tasta
       {
          char szName[31];
          HDC  hDC;

          InvalidateRect( hWnd, NULL, TRUE );
          UpdateWindow( hWnd );

          hDC = GetDC( hWnd );
          GetKeyNameText( lParam, szName, 30 );
          TextOut( hDC, 10, 10, szName, lstrlen( szName ) );
          ReleaseDC( hWnd, hDC );
       }
       break;

我使用 GNU GCC代码块 - mingw编译器

请有人告诉我为什么会收到此错误消息? 谢谢。

1 个答案:

答案 0 :(得分:1)

不会从任何库导出符号TextOut@20。这些符号称为TextOutATextOutW(具有适当的装饰)。您使用的是与Windows API不兼容的标头文件,但无法将TextOut映射到TextOutATextOutW。考虑使用official SDK

暂且不说:拨打TextOut的电话需要const TCHAR*,而不是const char*。如果您希望使用char数组(不应该),请致电TextOutA。建议使用wchar_t数组,然后调用TextOutW