사용방법은 create_log_file() 후 write_log_file()함수를 호출해주면 됩니다.



// stdafx.cpp : 표준 포함 파일만 들어 있는 소스 파일입니다.
// CrevisFnIO.pch는 미리 컴파일된 헤더가 됩니다.
// stdafx.obj에는 미리 컴파일된 형식 정보가 포함됩니다.

#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#include <commctrl.h>
#include <direct.h>

헤더 파일 추가 후...

static char LogPath[MAX_PATH];

int write_log_file(char *wstring)
{
    FILE *LogFile;
    char l_str[100];
    SYSTEMTIME lpSystemTime;
    if ((LogFile = fopen(LogPath,"at" )) == NULL)
   {
            return(1);
   }
GetLocalTime(&lpSystemTime); // 현재 날짜, 시간 가져오는 함수
sprintf(l_str,"%02d.%02d.%04d - %02d:%02d:%02d:%03d : ",lpSystemTime.wDay,lpSystemTime.wMonth,lpSystemTime.wYear,lpSystemTime.wHour,lpSystemTime.wMinute,lpSystemTime.wSecond, lpSystemTime.wMilliseconds);

fputs( l_str, LogFile);
fputs( wstring, LogFile);
fputs( "\n", LogFile);
fclose(LogFile);
return(0);
}

int create_log_file()
{
    FILE *LogFile;
// get current application path
_getcwd(LogPath, MAX_PATH );
if(LogPath[strlen(LogPath) - 1] != '\\')
       strcat(LogPath,"\\");
strcat(LogPath,"LogFileName.log");

if ((LogFile = fopen(LogPath,"wt" )) == NULL)
{
     return(1);
}
fputs( "------------------------------ Log File Crate.... ", LogFile);
fputs( " Log File ------------------------------\n", LogFile);
fputs( "---------------------------------------------------------------------------------------------------\n", LogFile);

fclose(LogFile);
return(0);
}


IP Address를 문자열을 받으면 각 한 BYTE로 나누는 방식입니다.

strtok() 함수를 사용하였습니다. - 함수에 대한 자세한 내용은 MSDN http://msdn.microsoft.com/ko-kr/library/2c8d19sb(VS.90).aspx

strIpAddres = "192.168.0.0"    이렇게 받는다고 하면...

char* szIpAddress;
BYTE  m_IpAddr[4];

char *p;
 int i = 0;
 p = strtok(szIpAddress, ".");  // 192 대입됨
 m_IpAddr[i] = atoi(p);        
 while(p!=NULL) 
 {
  i++;
  p = strtok(NULL, "."); // 168  -> 0 -> 0 순서대로 대입 (이유는 아래)
  if(p)
 IpAddr = atoi(p);
 } 

이렇게 하면 BYTE m_IpAddr[4];  에 [0] ~ [3] 배열에 192.168.0.0 이 들어갑니다.

ex)
IpAddr[0] ->192
IpAddr[1] ->168
IpAddr[2] ->0
IpAddr[3] ->0


-- 아래 --
strtok 함수 사용 할때 알아야 할점)

처음 호출할땐 strtok(szIpAddress, "." ) 이것처럼 해당 문자열의 처음시작주소를 넘겨주고

다음 호출할땐 좀 전에 니가 바꿔버린 NULL부터 다시 토큰을 뽑아내라고 strtok( NULL, "." )이라고 집어넣어야 합니다.

strtok() 함수의 특성(?)이라고 합니다.

Visual Studio 2010 부터는 "MFC PropertyGird Control"을 지원해줍니다. 2008 이하 버전부터는 따와(?)야 되죠 -ㅇ-;;


암튼 오랜만에 2010을 쓰기도하고, 처음으로 2010버전 PropertyGird Control을 사용했는데..

처음부터 난관(?)에 부딪혔습니다. 밑에 그림처럼 1번째 Column의 사이즈가 작게 나오더군요 -.-;;



해결 방법은 간단합니다.

컨트롤 변수를 선언해주시고. 밑에 소스 추가합니다.

 HDITEM item;
 item.cxy = 200;  // Size
 item.mask = HDI_WIDTH;
 m_ctrlGridControl.GetHeaderCtrl().SetItem(0, &HDITEM(item));  //  m_ctrlGridControl => Control 변수 // Header Column Size 설정


(2008 이하 버전들도 동일할 것 입니다)


짜잔!

아마..아마도...저처럼 검색하는 분들이 있을거라..믿고..적어봅니다 =ㅇ=ㅋㅋ
  1. dd 2012.06.14 16:27 신고

    헐... 느무느무 감사합니다-_-;

+ Recent posts