PDCures를 Windows의 C ++ 응용 프로그램에 연결하려면 어떻게합니까?
문제
C ++ 응용 프로그램을 구축하고 있으며 Windows에서 PDCures를 사용해야합니다. MS VS 2005에서 VC ++로 컴파일하고 있으며 링크 오류가 발생합니다.
error LNK2019: unresolved external symbol __imp__GetKeyState@4 referenced in function __get_key_count
동일한 오류 코드와 다른 기호가있는 11 가지 오류가 있습니다. 누락 된 기호는 __imp__mapvirtualkeya@8, __imp__findwindowa@8, __imp__wsprintfa, __imp__sendmessagea@16, __imp__getWindowthreadProcessid@8, __imp__messagebeep@4입니다. VC ++는 이러한 기능의 적절한 ASCII 구현을 찾을 수없는 것과 거의 같습니다. 또한 PDCurses와 함께 제공되는 데모 프로그램은 C 프로그램이지만 잘 편집되었습니다.
C ++ 프로그램에는 사용 헤더를 포함합니다.
extern "C"
{
#include <curses.h>
}
나는 일부 C 표준 라이브러리와 연결하는 것을 잊고 있다고 확신하지만 어느 것이 확실하지 않습니다.
해결책
getKeyState ()는 "user32.dll"의 Windows 함수이므로 "user32.lib"에 연결되어 있는지 확인해야합니다. 또한 링커 라이브러리 목록에서 PDCurses 라이브러리를 따라야하는지 확인해야 할 수도 있습니다.
다른 팁
MS VC ++를 사용하여 컴퓨터에 pdcures를 만들었습니까? 그렇다면 무슨 일이 일어나고 있는지 잘 모르겠습니다. 그렇지 않다면, 사용하는 것이 MS VC ++와 호환되지 않을 가능성이 높습니다. 다른 C ++ 컴파일러의 혼합 코드가 결정됩니다. 또한 '몇 가지 다른 오류'가 의미하는 바에 따라 다릅니다. 그것이 '수백 가지 오류'에 대한 괴상한 과소 평가라면, 그것은 문제 일 것입니다. 비슷한 오류 만 있으면 문제가되지 않을 가능성이 적습니다.
좋아, 나는 이것을 알아 냈다;) 나는 스콘으로 만들고있다. 나는 user32.lib가 변수를 포함하고 있었다. USER32_LIB
, user32.lib에 정의되는 창을 제외하고는 빈 문자열로 기본값을 기본으로합니다. Windows 섹션에는 오타가 있었는데 USER32_LIb
보다는 USER32_LIB
.