strchr, strrchr, strstr, strtok 멀티바이트 함수, 유니코드 변환 멀티바이트에서 사용하던 strchr 함수, strrchr 함수, strstr 함수, strtok 함수는 프로젝트를 유니코드로 변환하면 사용할 수 없습니다. 그래서 간단히 위 4개를 포함해 총 10가지 함수를 유니코드에서 사용하는 방법 간단히 알아보겠습니다. 1. strchr 함수 -> wcschr 1234wchar_t *wcschr( wchar_t *str, wchar_t c ); cs 2. strrchr 함수 -> wcsrchr 1234wchar_t *wcsrchr( wchar_t *str, wchar_t c ); cs 3. strstr 함수 -> wcsstr 1234wchar_t *wcsstr( wchar_t *..
MFC, CString to Char* (문자열 변환, LPSTR, LPCTSTR) LPSTR은 char * 형입니다. 해보면 알겠지만 char *형을 CString 형에다 넣으면 들어갑니다. 그러나 반대로는 에러가 납니다. 1. CString to char*, 이 경우에는 에러가 없습니다 12char a[100] = {"하하"};CString b = a;cs 2. 이 경우에는 에러가 납니다 123CString b = "하하";char a[100];a = b;cs 문제 해결방법은 여러가지가 있습니다. 하지만, 이렇게 strcpy를 써서 char* 형인 a변수로 "하하"를 옮긴 다음에 a를 인자로 넘겨주면 에러가 없을것입니다. 123CString b ="하하";char a[100];strcpy(a, b);..
strncat, strcmp, strncmp, stricmp 멀티바이트 함수, 유니코드 변환 멀티바이트에서 사용하던 strncat 함수, strcmp 함수, strncmp 함수, stricmp 함수는 프로젝트를 유니코드로 변환하면 사용할 수 없습니다. 그래서 간단히 위 4가지 함수를 유니코드에서 사용하는 방법 간단히 알아보겠습니다. 결론적으로 strncat 함수, strcmp 함수, strncmp 함수, stricmp 함수는 다른 함수로 바꿔야 합니다. 1. strncat 함수 -> wcsncat 12345wchar_t *wcsncat( wchar_t *strDest, const wchar_t *strSource, size_t count );cs 2. strcmp 함수 -> wcscmp 1234int w..
strcpy, strncpy, strlen, strcat 멀티바이트 함수, 유니코드 변환 멀티바이트에서 사용하던 strcpy 함수, strncpy 함수, strlen 함수, strcat 함수는 프로젝트를 유니코드로 변환하면 사용할 수 없습니다. 그래서 간단히 위 4가지 함수를 유니코드에서 사용하는 방법 간단히 알아보겠습니다. 결론적으로 strcpy 함수, strncpy 함수, strlen 함수, strcat 함수는 다른 함수로 바꿔야 합니다. 1. strcpy 함수 -> wcscpy 1234wchar_t *wcscpy( wchar_t *strDestination, // 복사 당하는 소스 const wchar_t *strSource // 복사 하려는 소스);Colored by Color Scriptercs..
비욘드컴페어, 날짜는 비교 조건에서 제외 (BeyondCompare4) 이 포스트는 BeyondCompare4 기준입니다.비욘도컴페어에서 Rules - Comparison 탭으로 이동하여 비교 조건을 수정할 수 있습니다. 이 메뉴를 통해 날짜를 비교 대상에서 제외할 수 있어요. 아래처럼, 파일 내용, 즉 소스로 치면 소스 내용이 100% 같은 파일이 있다고 예를 들어보죠. 그러면 위와 같이 날짜가 다르기 때문에 다른 파일이라 빨간색으로 표시될 겁니다. 이때, Rules - Comparison - Compare timestamps를 체크 해제하면 날짜는 비교 조건에서 제외할 수 있습니다. 그리고 다시 확인해 보면, 서로 같은 파일이라는 것을 알 수 있습니다. BeyondCompare4 한글판은 아니고 영문..
DGPS, 위성항법보정시스템 측위 종류와 응용 방안 DGPS의 종류 위성항법보정시스템(DGPS)의 종류에는 실시간 보정된 위치를 제공하는 실시간 DGPS와 위성 신호를 수신하여 컴퓨터 프로그램으로 후처리하여 위치를 제공하는 후처리 DGPS로 나눌 수 있다. 1) 실시간(Real-Time) DGPS 실시간 DGPS는 측위를 위한 보정치를 실시간으로 제공하는 방법으로서 사용자가 실시간으로 정밀한 위치를 얻을 수 있게 하는 측위방식이다. 현장에서 실시간으로 정확하게 위치를 구할 수 있기 때문에 선박의 항만 또는 협수로 항해, 해양측량, 어로작업, 지하매설물 보수공사 등의 분야에 응용된다. 실시간 DGPS의 기본적 개념은 과 같이 정밀하게 측량된 기준점의 위치 값과 관측된 위성의 의사 거리를 이용한 측위 값을 ..
DGPS, 위성항법보정시스템 측위 원리, 설명 DGPS 기본이론 위성항법보정시스템(DGPS)은 GPS 위성의 의사거리 오차에 대한 보정치를 계산하여 방송하는 시스템이다. 위성항법보정시스템은 기준국(보정치 송신국), 감시국, 보정송신국, 통제센터 및 통신회선 등으로 구성되어 있다. 기준국은 GPS 위성의 신호를 수신하여 계산한 의사 거리 보정치와 통제센터가 시스템의 무결성(integrity) 확보를 위하여 지정하거나 작성하는 정보를 항법용 라디오비콘 신호(Maritime Radiobeacon Signal)를 방송하는 중파의 반송파에 변조되어 이용자에게 방송되며, 수신된 보정치는 위치 정밀도 향상에 사용된다. DGPS(위성항법보정시스템)는 위치를 알고 있는 기준국에서 위성을 통하여 구한 위치와 애초 위치와의..
Debug assertion failed 6가지 해결 방법 (debugger 팁) Assert() 사용 간혹, Release 모드에선 정상, Debug 모드에선 에러가 발생하는 경우가 있습니다. Assert()는 Release 모드에선 무시가 되며, 에러가 발생하는 부분을 포함하지 않게 됩니다. 즉, 오류가 발생하는 부분을 컴파일러가 잘라버리고 프로그램이 구동되니, 실제로는, Release 모드에서 "정상"이라고 말할 수 없습니다. 서비스팩 옆 동료는 디버깅이 잘되는데, 나만 안된다면, 서비스팩을 설치해서 오류가 나던 부분의 소스 코드를 비교해 보세요. 서비스팩을 설치해서 오류를 제거했다면, 분명 뭔가 다를 겁니다. 서비스팩을 설치해서 오류를 제거했다면 말이죠. DDX_Text(), Resource.h...
[안드로이드 강좌] NFC Reader 프로그래밍 소스 (Mifare) 안드로이드 강좌 - Mifare NFC Reader 프로그래밍 기초 안드로이드 Mifare NFC의 기본 구조는 참조 링크(Mifare 카드구조)에서 확인하시고, NFC Reader로 NFC 데이터를 읽기 위해선 NDEF를 거쳐야 합니다. 이 과정은 어느 분께서 pdf(NDEF NFC Forum Spec.pdf)로 정리해 주셨으니 문서로 확인하시면 됩니다. 안드로이드 Mifare NFC 중 A타입은 위와 같습니다. 16개의 섹터는 각각 4개의 블럭을 보유하고 있고, 각 블록 중 3개 블록은 위와 같은 구조로 이루어져 있습니다. 정확한 Mifare NFC 스펙과 구조는 fcd-14443-3과 fcd-14443-4의 pdf 파일에 있고,..
[C++구조체] #Pragma Once 사용, 헤더파일 안전하게 사용 1. 소개 헤더 파일은 프로그램에서 사용할 요소들을 미리 선언하고 정의한 내용을 담고 있습니다. 예를 들면, Class Template의 Layout 정보는 헤더 파일에 정의되어 있고(사용할 변수, 함수 등), Implementation File들은 실제로 함수와 변수들을 구현합니다. 2. #Pragma Once, 헤더 파일 Include .h나 .hpp의 확장자의 헤더 파일은 #include로 참조할 수 있고, .cpp 파일은 헤더 파일의 선언부 정의 내용을 담습니다. 아래는 선언 예입니다. 12#include "stdafx.h"#include cs 3. 두 가지 타입의 Include와 #Pragma Once 사용할 라이브러리는 한 ..
[C++구조체] #Pragma pack(1) 지시어 이해하기 Word Alignment(#pragma pack) Word Alignment(#pragma pack)는 어려운 개념은 아니지만, 매우 중요한 개념입니다. 우리는 하나의 word가 4바이트란 건 알고 있습니다. 메모리 주소 체계도 4바이트로 이뤄지며, 0x01ab23cd와 같은 값은 0x01, 0xab, 0x23, 0xcd로 각각 분리되어 저장되는 것도 알고 있죠. 알아야 #pragma pack도 이해할 수 있습니다. 그 저장되는 방법은 little Endian과 Big Endian으로 이 경우엔 0x01이 맨 뒤, 또는 맨 앞에 저장될 겁니다. 다소, 부정확한 의미가 될 순 있지만, 0x01이 저장된 주소가 N(1001) 번지라면 그다음 주소..
비주얼스튜디오 프로젝트 파일 설명(sln, suo, user, vcproj, ncb, sdf) 프로젝트 파일들이 하는 역할 솔루션과 프로젝트를 생성하면 자동으로 생기는 몇몇 파일들에 대한 설명을 기록합니다. sln : 텍스트 파일로 한 솔루션이 관리하는 여러 프로젝트에 대한 정보를 보유, 2008과 2010이 호환되지 않으므로 반드시 변환.suo : 바이너리 파일로 여러 작업 내용, 혹은 설정(탭 위치나 창 정보) 등이 저장.user : 사용자별 설정이 저장.vcproj : visual c++ 프로젝트 파일로 프로젝트가 어떤 파일을 가졌는지에 대한 정보를 보유.ipch : 컴파일 때 여러 파일이 저장.ncb : 비주얼 스튜디오 2008에서 intellisense를 위해 저장하는 데이터베이스 파일.sdf ..