2014년 4월 25일 금요일

if / else 문을 한줄로 간단히 표현

if / else 문의 사용에서 각 조건에 대하여 처리하는 연산이 하나(또는 한줄) 인 경우, 이를 간단히 표현할 수 있다.

int v = 30, x;

if (v > 30)
    x = 100;
else
    x = 0;


위의 if / else 문을 한줄로,

x = (v > 30) ? 100 : 0;


코드가 길어지는 것이 싫을 때, 사용하면 좋지 아니할까?

다이얼로그와 관련된 컴파일 에러 대처

아래의 메세지는 해당 다이얼로그를 사용하기 위해
다른 곳에서 #include "DlgView.h"할때 발생됩니다. 

이 메세지는 #include "resource.h"의 위치에 의해 발생하게 됩니다.

 error C2065: 'IDD_DLGVIEW' : undeclared identifier error C2057: expected constant expression 이 에러를 해결하한 방법으로는 2가지가 있습니다.

1. 해당 Dlg 헤더에 #include "resource.h"를 추가해 줍니다.
 2. Dlg 헤더 파일에 자동으로 작성되는 구문인
enum { IDD = DLG_VIEW }; 를 주석처리 하고
 // Dialog Data
 //{{AFX_DATA(CDlgView)
 //enum { IDD = IDD_DLGVIEW };
Dlg 소스 파일을 아래와 같이 바꾸어 줍니다.

//CDlgView::CDlgView(CWnd* pParent /*=NULL*/) 
//: CDialog(CDlgView::IDD, pParent) CDlgView::CDlgView(CWnd* pParent /*=NULL*/) : CDialog(IDD_DLGVIEW, pParent)

[출처] error C2065: ''### : undeclared identifier|작성자 가가고

[C/C++] 폴더 내 파일목록 읽기

특정 폴더 내에 존재하는 파일목록을 얻고자 할 경우 다음과 같이 한다.
먼저 _findfirst 함수를 이용하여 핸들을 얻는다. 이 때, 첫 번째 파라메터에
폴더 및 찾고자하는 파일 명(또는 확장자)을 설정한다. 이 후 _findnext 함수를
이용하여 폴더 내 모든 파일을 검색하며, 결과가 -1이 리턴되면 종료한다.

#include <stdio.h>
#include <io.h>
#include <conio.h>

void main()
{
    _finddata_t fd;
    long handle;
    int result = 1;
    handle = _findfirst(".\\*.*", &fd);  //현재 폴더 내 모든 파일을 찾는다.

    if (handle == -1)
    {
        printf("There were no files.\n");
        return;
    }

    while (result != -1)
    {
        printf("File: %s\n", fd.name);
        result = _findnext(handle, &fd);
    }

    _findclose(handle);
    return;
}

[Windows XP, VS2010에서 동작 확인 함]

2014년 4월 16일 수요일

아스키 코드표



GUI기반 MFC 프로그램에서 Console 창 보이기

MFC GUI 기반 프로젝트에서는 console 창이 나타나지 않는다. 
하지만 디버깅 목적이나 기타 다른 이유로 보고 싶을때,

 #pragma comment(linker, "/entry:WinMainCRTStartup /subsystem:console") 

이걸 추가해주면 콘솔창도 함께 뜬다.


 (From 루오니의 집: http://katalog.egloos.com/4695822)