시스템 프로그래밍

64bits-based Programming, GetLastError

믿고걸음 2019. 3. 17. 17:30


#6. 윈도우즈 시스템 프로그래밍





6-1. 64bits-based Programming




포인터가 8 byte 로 처리가 된다는 점을 챙기면 될 것 같다.







만약 arr (8byte) 를 int (4byte) 로 형변환될 경우 문제가 생긴다.





 


다음과 같은 형식으로 다형성을 지원할 수 있다.

_WIN64 가 정의되어 있을 경우 UINT_PTR 은 __int64 로 동작하고, 정의되어 있지 않을 경우 unsigned int 로 동작한다.

이것이 다형적 특징이다. PTR 이라고해서 포인터 연산에서 활용하기 위한 자료형이지, 그 자체가 포인터는 아니다.








6-2. GetLastError Function 






윈도우즈 시스템에서 오류가 발생되면, 전역적으로 설정된 공간에 오류가 발생한 이유를 저장한다. 

이 전역공간에 접근하기 위한 함수가 GetLastError 함수이다. 

MSDN 에는 더 세분화된 오류목록을 확인할 수 있다.






전역공간은 계속해서 그 내용이 바뀌기 때문에, 에러가 발생한 함수 '바로 뒤'에 호출을 시켜줘야한다는 주의사항이 있다.