암호화라고 거창하게 써놨지만, 사실 별거 없죠
걍 특정/불특정 문자열을 꼬아놓은다 랄까...
여튼, 전 제가 원하는 임의의 문자(숫자)를 곱하는 형식을 취했습니다.
CFile f;
CFileException e;
CString fileName, strHost;
UpdateData(TRUE);
char *p_host = (LPSTR)(LPCSTR)m_strHost; // 에디트 박스에 쳐박은 호스트주소입니다.
char key = 243;
int i = 0;
for( i = 0; i < strlen(p_host); i++){ // 한글자 마다 key 값을 곱합니다 (-_-) 제곱이랄까....
p_host[i] = p_host[i] ^ key;
}
strHost.Format("%s\r\n", p_host);
char szCurDir[256] = {NULL, };
GetCurrentDirectory(256, szCurDir);
strcat(szCurDir, "\\config.ini");
fileName=szCurDir;
if( !f.Open( fileName, CFile::modeCreate | CFile::modeWrite, &e ) )
{
#ifdef _DEBUG
afxDump << "File could not be opened " << e.m_cause << "\n";
#endif
}
else
{
f.SeekToEnd();
f.Write(strHost , strlen(strHost)); // 저장합니다.
f.Close();
}
끝.
읽어올때도 마찬가지로 하나씩 읽어오는 형태를 취합니다.
char szCurDir[256] = {NULL, };
CString fileName, strHost;
GetCurrentDirectory(256, szCurDir);
strcat(szCurDir, "\\config.ini");
fileName=szCurDir;
char load_data[256] = { 0 ,};
char key = 243;
int i = 0;
FILE *p_file = fopen(fileName, "rb");
if(p_file != NULL){
fread(load_data, 256, 1, p_file);
fclose(p_file);
}
int length = strlen(load_data);
int j = 0, k=0;
for(i = 0; i < length; i++){
load_data[i] = load_data[i] ^ key;
}
m_strHost = load_data;
if(bUpdate) UpdateData(FALSE);
끝...
| 태그 : | 개발관련 |
Static컨트롤에 색상을 입히는 것 까지는 좋으나, 다이얼로그를 계속 생성하거나
폰트사이즈를 지정해줄 경우, 1회성으론 관계가 없다.
하지만, 여러번 다이얼로그를 불러온다던가 하면서
SetFontSize 메소드를 계속 불러올 경우
에러를 토해내는데, 생각보다 단순한 문제였다.
우선, ColotStaticST의 함수 부분을 살펴보면
void CColorStaticST::SetFontSize(int nHeight, int nWidth, BOOL bold)
{
CFont* pFont = NULL;
LOGFONT LogFont;
pFont = GetFont();
pFont->GetLogFont(&LogFont);
if(nHeight > 0)
{
LogFont.lfHeight = nHeight;
}
if(nWidth > 0)
{
LogFont.lfWidth = nWidth;
}
if(bold)
{
LogFont.lfWeight = FW_BOLD;
}
m_pFont->CreateFontIndirect(&LogFont);
SetFont(m_pFont);
Invalidate();
}
자 무엇이 문제인지 알겠는가.
m_pFont->CreateFontIndirect(&LogFont);
이부분에서 에러가 발생하게 된다.
즉, 반복적으로 불러올 경우, 불러오는 만큼 오브젝트를 계속 생성하려 들기 때문인데
여러가지 해결 방법이 있을 수 있겠지만 본인은 이렇게 해결했다. (사실 좀 무식하게 해결한..)
m_cStStatus.m_pFont->DeleteObject();
해당 컨트롤에 대한 변수를 선언하고 (CColorStaticST m_cStStatus; 등..)
CColorStaticST가 가지고 있는 멤버변수인 m_pFont 에 직접 DeleteObject() 를 수행케 함으로써 해결했다.
.... 아 쓰고나니 진짜 개무식하네-_-
| 태그 : | 개발관련 |
포스팅도 잘 안하던 찰나에, 오늘은 조금 짬이 나네요.
네 이직했습니다.
기존 PMP/네비게이션 개발(OS/Platform part, Solution) 회사에서 일하다가
지금은 SEC 공정자동화 솔루션(SI분야) 개발자..로 이직했습니다.
더 나은 조건과 근무환경, 사내 복지도 좋고 연봉도 오르고 -_-
대우는 마찬가지로 일반 사원입니다만, 한가지 좋은점이라면 좋고 아쉬운점이라면 아쉬울 수 있는 부분은
'신입'으로 들어왔다는 정도 ....
기존에 일하던 회사 경력이 1년도 채 안된 부분도 있지만, 본인이 신입사원 모집하는 부분으로 지원하였기 때문에
신입인거죠 뭐 .... (-_-)
여튼 ... 이직한지는 어언 3주정도 되었습니다.
8월 24일부터 옮겼고요...
여튼 뭐 ... 그렇습니다. 요즘 근황 궁금해하실 분을 위해서 써둡니다 [......]
파일에 쓸때:
- 형식:
WritePrivateProfileStringA(
LPCWSTR lpAppName,
LPCWSTR lpKeyName,
LPCWSTR lpString,
LPCWSTR lpFileName
);
- 사용법:
WritePrivateProfileString("카테고리", "파라메터", 저장하고자하는항목(변수), ini파일의 위치);
실 사용 예:
char szCurDir[256] = {NULL, };
int port;
CString strPort;
GetCurrentDirectory(256, szCurDir);
strcat(szCurDir, "\\server.ini");
strPort.Format("%d", port);
WritePrivateProfileString("Server", "Port", m_nPort, szCurDir);
strMsg.Format("%d", size);
파일로부터 읽어올때:
- 형식:
GetPrivateProfileStringA(
LPCSTR lpAppName,
LPCSTR lpKeyName,
LPCSTR lpDefault,
LPSTR lpReturnedString,
DWORD nSize,
LPCSTR lpFileName
);
- 사용법:
GetPrivateProfileString("카테고리", "파라메터", "기본값", 저장할곳, 읽어올바이트수, ini파일의 위치);
실 사용 예:
CString strButt;
int port, m_nPort;
char szBuffer[256] = {NULL , };
char szCurDir[256] = {NULL, };
GetCurrentDirectory(256, szCurDir);
strcat(szCurDir, "\\server.ini");
GetPrivateProfileString("Server", "Port", "15000", szBuffer, 256, szCurDir);
strBuff.Format("%s", szBuffer);
port = atoi(szBuffer);
m_nPort.Format("%d", port);
| 태그 : | 개발관련 |
BOOL C다이얼로그클래스::PreTranslateMessage(MSG* pMsg)
{
if (pMsg->message==WM_MOUSEMOVE)
{
if (GetDlgItem(IDC_SEND)->GetSafeHwnd()==pMsg->hwnd)
{
}
else if (GetDlgItem(IDC_SELSEND)->GetSafeHwnd()==pMsg->hwnd)
{
}
else if (GetDlgItem(IDC_START)->GetSafeHwnd()==pMsg->hwnd)
{
}
else if (GetDlgItem(IDOK)->GetSafeHwnd()==pMsg->hwnd)
{
}
}
return CDialog::PreTranslateMessage(pMsg);
}
....
사실 버튼같은 경우엔 CButtonST를, 스태틱컨트롤은 CColorStaticST를 쓰는 편이 낫긴 하다.
| 태그 : | 개발관련 |
포괄적으로 생각하고 쓴 글이 아니고, 그냥 손가는 대로 끄적인 글이니 태클걸지마 ㅇㅇ;;;
내 블로그고, 그냥 단편적인 생각일 뿐임. 옹호하고 싶은것도 없고, 그저 이나라가 병맛이라고 ㅇㅇ;;
--------------------------------
좆같은 나라를 좆같다고 못하면 뭐라그럼 ㅇㅇ;;
이라는 생각도 살짝 들긴 하는데
뭐 그만큼 이나라가 병맛드립 쩔긴 하잖음.. 인정할건 인정하자.
외국인 노동자로 한국와서 일하는게 쉽지 않았으니 그런 글을 남겼기야 하겠지만서도
(마치 예전 개그프로그램에 나온, 파키스탄인가 노동자 블랑카 가 생각난다.)
어찌되었건, 표현의 자유는 있어야 하잖아?
한국인이고 한국 살면서도 '아 한국 좆같아' 라고 말하는 나도 있고 사람들도 많은데
뭘 굳이 예전 블로그같은거 뒤적거려서 까대는지 잘 모르겠 -_-;;;
어찌보면, 박재범의 개인적인 글을 외부에서 기어이 찾아내서 깠다는 것도 웃기는거고.
블로그나 트위터, 페이스북 등의 소셜네트워크는 애초에 개인공간 아닌가?
내가 쓰고싶은 대로 쓰고 내 아는사람들과의 공유하고자 하는 공간이지
너도나도 같이 쓰라고 만드는 공간은 아니잖음.
뭐 여기에 대해 이러한 항변이 있을 수는 있겠지
'공인인 만큼 언행에 신경써야한다.'
근데말이죠, 공인은 공인이고 개인공간은 개인공간이지.
공인이라 해서 내 개인생활이 없다는거, 이거 말이 된다고 생각해? -.-
뭐 잡설이 길어지면 더 보기 안좋으니 여기서 끝.
한줄요약: 호불호좆. 좆같은걸 좆같다고 못하는...
