当我为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编译器
请有人告诉我为什么会收到此错误消息? 谢谢。
答案 0 :(得分:1)
不会从任何库导出符号TextOut@20
。这些符号称为TextOutA
和TextOutW
(具有适当的装饰)。您使用的是与Windows API不兼容的标头文件,但无法将TextOut
映射到TextOutA
或TextOutW
。考虑使用official SDK。
暂且不说:拨打TextOut
的电话需要const TCHAR*
,而不是const char*
。如果您希望使用char
数组(不应该),请致电TextOutA
。建议使用wchar_t
数组,然后调用TextOutW
。