본문 바로가기
Development/C++

바이너리로 읽어온 1바이트 4개를 4바이트 변수로 변환하기

by KingCat 2015. 10. 30.

SQL 컬럼 중 varbinary 같은 경우 RecordSet에서는 RFX_Binary로 불러온다.


RFX_Binary(pFX, _T("[컬럼이름]"), m_arValue, 400); <- varbinary의 사이즈가 400이면, RFX_Binary의 기본크기가 255가 최대이므로 사이즈를 명시해주어야한다.


CByteArray m_arValue; <- 클래스내 Field/Param Data에 변수가 정의되어 있어야한다.


GetDWORD 같은 함수로 (TCHAR*)&m_arValue 이런식으로 매개변수 전달시 값이 제대로 안읽어지기도 한다.


DWORD value = 0;

*((char*)&value) = m_arValue[0];

*(((char*)&value)+1) = m_arValue[1];

*(((char*)&value)+2) = m_arValue[2];

*(((char*)&value)+3) = m_arValue[3];


이를 통해 value는 m_arValue의 첫 4바이트를 DWORD로 반환한다. 즉, 바이트 단위로 접근해서 값을 가져와야된다.