IT News/C++ 8

string to char array in c++, 문자열을 char 배열로 변환방법 c++

오늘 rapidxml 이라는 라이브러리를 사용했는데요. 이 라이브러리를 사용해서 xml 로 되어있는 문자열을 받은 정보를 c++ 로 해석을 해서 사용을 하려고 하였는데요. 이상하게도 사용할 수가 없었습니다. 한참을 헤메다가 알게된 사실은 바로.. 바로 아래의 예제에서 text 로 되어있는 부분에 char array 를 넣어야 하는데 제가 string 으로 넣어서 자꾸 에러가 난 것이었어요. 처음 xml 파싱을 하다보니 몇 시간을 그냥 날려 버렸네요ㅠ using namespace rapidxml; xml_document doc; // character type defaults to char doc.parse(text); // 0 means default parse flags 아래의 예제는 string 을 ..

IT News/C++ 2019.06.10

c++ 바이러리로 이미지 복사하기 visual studio 2008

c++ 에서 텍스트 복사와는 달리 이미지 복사는 바이러리로 열고 복사해야 합니다. 아래에 예제를 보시고 참고하세요~^^ -------------------------------------------------------------------------------- #include "fcntl.h" #include "io.h" //MAX_PATH 값과 INSTALL_DIR 경로는 define 되어있습니다. #define 으로 지정하거나 // 직접 값을 넣거나 경로를 입력하시면 됩니다. char source_img_path[MAX_PATH]; char desti_img_path[MAX_PATH]; sprintf(source_img_path, "%s\\source.bmp", INSTALL_DIR); sprin..

IT News/C++ 2015.01.22

C++ MFC을 사용하여 picture control[픽처 컨트롤러]를 클릭하면 color picker [컬러픽커] 가 되도록 기능 구현

picture control 을 클릭하면 색상을 선택하는 다이얼로그가 표시가 되고 색상을 클릭하면 해당 색상으로 변경되는 코드를 적어보았습니다. 다른 분들은 리스트 박스에 했던것 같은데 아무튼 picture control 로 해보았는데요. 위 그림과 같이 Toolbox 에서 Picture Control 을 선택해서 폼(Form)으로 이동시키고 속성(Properties)에서 Misc 부분에 있는 Type 속성을 Rectangle 로 바꾸었습니다. 그러면 네모난 처럼 보이구요. 색깔을 Appearance 부분의 Color 속성을 변경하시면 됩니다. 그러면 이제 이벤트를 주어야 하는데요. 여기서 중요한 점은 Appearance 부분에서 Notify 속성을 True 로 해주어야 합니다. 왜냐하면 Notify 속..

IT News/C++ 2014.10.21

visual studio 2008 (다이얼로그 탭 순서 변경) dialog tap order change

Visual Studio 2008 을 이용하여 MFC 를 하다가 다이얼로그 폼에서 레이블이나 텍스트 박스와 버튼 사이의 탭 순서가 맞지 않았다. 이상하게 탭이 잘 되다가 바로 버튼으로 이동하고 다시 텍스트 박스로 돌아온다. 즉 이것은 기본적으로 생성 순서에 영향에 따른것으로 보인다. 그래서 각 객체의 생성 순서와 상관없이 탭순서를 사용자 마음대로 변경할때에는 먼저는 다음과 같이 하면 된다. 폼을 연 상태에서 CTRL + D 키를 누른다. 그러면 아래와 같은 화면을 볼 수 있다. 이미지에서 보는 바와 같이 각 객체의 탭 순서가 숫자로 보여지게 될것이다. 그런데 이 숫자의 배치가 원하는 바와 다른 경우에는 이렇게 하면 된다. 1) 1번째 탭을 하기를 원하는 객체의 파란색 숫자(탭번호) 부분을 더블 클릭해준다..

IT News/C++ 2014.10.10

C++ memset, memcpy 함수

1. 배열에 사이즈만큼 초기값으로 세팅할때 memset(배열, 초기값, 사이즈); memset(array, 0, sizeof(uint32_t) * 3); 2. 원본 배열의 값에서 사이즈 만큼 새로운 배열에 값을 복사함 memcpy(값을 넣을 배열, 원본 배열, 사이즈); memcpy(newArray, orignalArray, sizeof(uint32_t) * 3); 참고로 1번 방식은 쓰레드에서 사용할때 주의가 요구된다. cpu 의 점유율을 높이기 때문이다.

IT News/C++ 2014.06.23

C/C++ 동적 메모리 생성과 해제

만일 동적 메모리 생성을 위해서 malloc 을 사용했다면 메모리 해제할때에는 free 를 사용해야합니다. 그리고 메모리 생성에 new 를 사용했으면 메모리 해제에는 반드시 delete 를 사용해야합니다. 이 두개의 함수 malloc, new 의 차이점은 malloc 은 C 언어 표준라이브러리 함수이며 new는 C++에 추가된 기능입니다. 이렇게 할당받은 메모리는 반드시 해제해주어야 하는데요. C언어에서는 free(), C++에서는 delete([]) 을 사용합니다. 다만 free, delete 의 차이점은 동적으로 할당받은 C에서는 메모리를 반환(free함수)하며, C++에서는 메모리를 삭제(delete)를 합니다.

IT News/C++ 2014.06.18