MFC 가이드, 코딩 표준 방법 3가지 (함수, 초기화, 반환, 변수, if문) MFC로 코딩하는 C++ 개발자분들이 보셔야할 표준 코딩 방법입니다. 큰 주제로 3가지, 기타 분류로는 십여가지가 있으니 천천히 가이드를 읽어보세요. 함수의 중간에서 리턴값을 보내지 마세요 함수의 중간에서 다른 코드의 로직으로 "점프"하도록 구성하면 코드를 이해하고 수정하는게 힘들어집니다. 항상 함수는 처음부터 끝까지 구동하는게 좋고 그렇지 않을 경우엔 함수 자체를 정리해야 합니다. (기능별 분할) 선언과 초기화 단 한번만 정의하면 되거나 정의된 이후 값이 변경되지 않는다면 const를 사용하세요. 은닉 변수(Shadow Variable)를 사용하지 마세요 아래는 너무나도 어처구니 없는 코드입니다. MFC 가이드에서 따로 소..
C언어 순차탐색, 이진탐색 코드 (Sequential Search, Binary Search) C언어로 구현한 두 개의 소스 코드를 소개합니다. 아마도 학교 다닐 때 구했던 소스 같은데 출처는 기억이 안 나네요. 1. C언어 순차탐색 코드 (Sequential Search) 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859#include#include#include#include #define MAX_ELEMENTS 10000000Lint list[MAX_ELEMENTS]; int count; //수행횟수 int seqsearch(int list[], int ..
DevExpress GridControl Column Header 클릭 막기 (Click Disable) 그리드컨트롤 컬럼을 클릭하면 정렬이 됩니다. 하지만, 이 기능을 사용하고 싶지 않을 때가 있죠.그럴 경우 GridControl의 정렬 기능을 꺼두시면 됩니다. 클릭 자체를 막는 방법은 모르겠네요. 아무튼, UI 편집창에서 GridControl 디자이너를 엽니다. 그리고 아래 순서에 맞춰 설정값들을 변경하세요. Main Columns - Columns 선택 1. OptionsColumn - AllowSort : False2. OptionsFilter - AllowAutoFilter : False3. OptionsFilter - AllowFilter : False 위 그림처럼 따라해보세요. 결과적으로 포..
MFC Edit Control 문자열 추가 (에디트 박스 텍스트, 에디트 컨트롤) MFC 에디트 컨트롤(Edit Control)에 텍스트를 추가하는 방법으로는 GetWindowText()를 호출한 다음에, 텍스트 정보를 불러들여 새로운 내용을 추가한 다음 SetWindowText()로 다시 설정하는 것이죠. GetWindowText() -> 텍스트 정보에 내용 추가 -> SetWindowText() 그렇지만, 이미 창의 텍스트에 길이가(GetLength()) 너무 길면, 매우 비효율적인 방법이 됩니다. 새로 설정한 텍스트에 맞춰 길이까지 매번 조절해야 하고, 그 때문에 발생할 UI의 전체 문제까지 생각해 보면 머리가 아픕니다. 그래서 위의 방법은 전반적인 방향 정도로만 생각하고 조금 다른 방법을 찾아서 ..
TCC 컴파일러로 구현한 스캐너 문법 예제 (Tiny C Compiler) 이 자료는 제가 대학원생 시절에 과제로 했던 내용으로 아래에 삽입된 그림들을 보시면 아시겠지만, 윈도우 XP에서 작업했었습니다. 최근에 윈도우 7에서 10으로 넘어가며 Tiny-C 컴파일러에 대한 몇 가지 이슈를 들었습니다. 대표적인 것은 tcc 파일을 인식하지 못한다거나, 인식하더라도 오동작을 한다는 것이죠. 이건 임베디드 쪽에서도 마찬가집니다. 우분투를 비롯해 최근에 32비트를 버리는 쪽으로 시대가 기울고 있기에 상대적으로 지원이 미비해지는 점도 있긴 합니다만, 자세한 건 저희로선 알 수가 없어요. 이 자료는 TCC 컴파일러 감을 잡거나, 아직 XP를 사용하는 분들에게 적합합니다. 그동안 시간이 많이 지나 곳곳에서 변화한 것이..
C++11 stoi stol stoll 함수 사용법, 문자에서 정수 변환 예제 string 헤더 파일에 정의된 함수 원형은 아래와 같습니다. 12345678int stoi( const std::string& str, std::size_t* pos = 0, int base = 10 );int stoi( const std::wstring& str, std::size_t* pos = 0, int base = 10 ); long stol( const std::string& str, std::size_t* pos = 0, int base = 10 );long stol( const std::wstring& str, std::size_t* pos = 0, int base = 10 ); long long stoll( ..
라즈베리파이2 - START X 자동 실행 (raspberry pi startx) 라즈비안 최초 실행 시 부트 옵션을 설정할 수 있습니다. 근데 이때, Desktop Log in as user 'pi' at the graphical desktop을 설정해 놓지 않으면, 계속 텍스트 모드로 진행이 될겁니다. 나중에 마음이 바뀌어 GUI로 로그인 하고 싶다면 이 부분을 다시 바꿔주시면 됩니다. 먼저 Light Display Manager를 실행시켜 줍니다. 1/etc/init.d/lightdm startcs 그리고, 1sudo raspi-configcs 위의 명령어로 라즈베리 파이 소프트웨어 설정 툴을 실행시킵니다. 이어서 3번, 1Enable Boot to Desktop/ScratChoose whether..
VC++ PostMessage 예제, mfc 화면 갱신 깜박임 사용법 PostMessage 사용 시 주의 PostMessage 는 SendMessage 와 달리 프로그램이 메시지를 빈번히 처리해서 메시지큐가 full인 경우에는 처리되지 않는다. 따라서 중요한 처리의 경우는 리턴값을 확인해야 한다. 화면 갱신 시 깜박임 없애기 클라이언트 영역에 그래픽 작업이나 컨트롤을 올릴 때 화면이 깜박이는 문제를 없에려면, (1) Memory DC를 사용한다.화면에 직접 그릴 경우는 배경 칠하고 위에 다른 것을 그리면 이것이 눈에 띄게 된다. CreateCompatibleDC를 이용해 메모리 DC에 모두 그려준 다음 BitBlt를 이용해 한꺼번에 화면에 복사해 주면 깜박임이 없어진다. (2) OnEraseBkgnd (..
KICC 이지페이 가맹점 서비스 9개와 전자결제 PG 설명 출처 : 한국정보통신 PG EasyPay [바로가기] 우리나라 VAN 회사 중 점유율 1위에 기업 규모 1위인 KICC PG 정보입니다. 홈페이지에 올라온 결제 정보들 간략하게 요약하여 소개합니다. 이 내용은 가맹점에 해당하는 것으로 일반 소비자와는 직접적으로 관련이 없습니다. 자영업자분들에게 참고할 자료입니다. 이지페이 차별화 서비스 6개 (전자결제 PG) 1. 마케팅 프로모션 4개 무이자 할부 다이어트 할부 청구 할인 포인트 결제 7개 카드 회사와 제휴한 KICC가 가맹점에 제공합니다. 2. 이지페이 모바일앱 스마트폰 앱으로 구매자 결제를 돕습니다. 사회적 문제인 개인 정보 보호는 금융권에서 사용중인 PKI방식(RSA 2048bit, SEED..
Qt4 -> Qt5 업그레이드 차이 6가지 (우분투 리눅스 기준) pro에서 배포 출처 : Qt4 → Qt5 プログラム移行注意点 [링크] Qt4와 Qt5의 차이를 일부 정리한 포스트입니다. 아래 사항을 수정하면 대부분 정상적으로 빌드될 것입니다. 1. xxxx.pro Qt4 : QT += core gui network webkit Qt5 : QT += core gui network webkitwidgetsgreaterThan(QT_MAJOR_VERSION, 4): QT += widgets 2. QApplication 선언 Qt4 : #include Qt5 : #include 3. Local 데스크탑 트리 Qt4 : QDesktopServices::storageLocation(QDesktopServices..
UF_DRAW_set_view_display 사용 문제 (4.0, 7.5) UG NX C++ API 출처 : UF_DRAW_set_view_display 使用问题 [링크] 주제 : NX 4.0에서 UF_DRAW_set_view_display 함수 설정 방법이 NX 7.0과는 다릅니다. 함수 호출하면 에러가 발생합니다. NX 4.0과 NX 7.5의 정의 형태가 다르므로 발생하는 문제입니다. 7.5에서는 전달받는 인자 구조가 변경되어 interfering_solids 변수를 logical(논리형 bool)에서 int로 바꿔줘야 합니다. 만약 소스 하나로 NX4.0과 NX7.5에 프로그램을 공급해야 한다면, 버전에 맞도록 데이터를 변환하는 소스를 추가해야 합니다. UG NX C++ API를 사용하다 보면 다른..
FPGA와 TCM를 이용한 임베디드 보안 시스템 개요 (TPM, 반도체, OS) 이전 글에서 이어지는 내용입니다. 이전 글 링크 : 안전한 임베디드 시스템 구현 [링크] 3. TFSES Architecture 아래 그림을 보면 TFSES는 두 가지의 모듈을 포함하고 있다 : FPGA 컨트롤러와 TPM. FPGA 컨트롤러는 임베디드 시스템 프로세서와 부트롬으로 분리되어 있다. - BootROM 보안은 신뢰 컴퓨팅의 근원이 됨- 임베디드 시스템의 전원이 켜질 때, 가장 먼저 FPGA 컨트롤러는 BootROM의 내용을 읽고 무결성을 검사하게 됨 - 그 결과는 TPM 칩에 암호화 형식으로 전송 - 결과에 따라 TPM은 임베디드 프로세서의 응용 프로그램에서 컴퓨팅 서비스를 제공할 것인지 신뢰 여부를 결정- TFS..