본문 바로가기

반응형

분류 전체보기

(36)
[MFC] PostMessage/SendMessage 문자열 인자 넘기기 문자열 인자 넘기기 CString *pstrString = new CString(strString); //new 해야함. ::PostMessage(hWnd, UM_MY_MESSAGE, (WPARAM)0, (LPARAM)pstrString); LRESULTCMyClass::OnMyMessage(WPARAM wParam, LPARAM lParam) { CString* pstrString = (CString*)lParam; CString strString= pstrString->GetString(); //TODO : ......................... return 0; }
암호화 HASH(단방향)공개키(비대칭)비밀키(대칭)StreamBlock 1. HASH(단방향) 해시함수는 임의길이의 정보를 입력으로 받아, 고정된 길이의 암호문(해시값)을 출력하는 암호기술.암호화된 정보는 복호화가 불가능한 특징을 가지고 있다. 따라서 해시함수를 이용하면 아래와 같이 비밀번호를 입력하여 (해시값)을 생성해 낼 수는 있지만, (해시값)을 가지고 원래의 비밀번호 를 알아낼 수는 없다. 즉, 개인정보처리자도 시스템에 저장된 암호문(해시값)을 가지고 원래의 사용자 비밀번호를 알 수 없기 때문에 안전한 비밀번호 관리가 가능해 진다. => 용도 1.메시지 인증용2.키유도/난수생성용3.단순 Hash/전자서명용. 2. 공개키(비대칭) 3. 비밀키(대칭)송신자는 수신자의 공개키를 구한다.송신자는 수신자의 공개키..
[MFC] static Thread 생성, 사용 CreateThread, SetEvent, WaitForSingleObject Thread 선언, 생성 staticDWORD WINAPI MyThread(LPVOID pArg);//선언 HANDLEhMyEvent; hMyEvent = CreateEvent( NULL, FALSE, FALSE, "MY_EVENT_NAME" ); DWORD WINAPI MyThread(LPVOID pArg) { while( TRUE ) { DWORD dwWaitObject = WaitForSingleObject(hMyEvent, 1000);// 1000 : 1초 대기 WAIT_TIMEOUT. if( dwWaitObject == WAIT_TIMEOUT ) { // TODO: } else if( dwWaitObject == WAIT_OBJECT_0 ) { // TODO: } else { // TODO: }..
[MFC] CEdit 에디트 박스 KillFocus, 포커스 제거 CEdit 에서는 KillFocus가 안됨... BOOL CMyClass::PreTranslateMessage(MSG* pMsg) { if(pMsg->message == WM_LBUTTONDOWN) { if ( pMsg->hwnd == ((CEdit *)GetDlgItem(IDC_MY_EDIT))->m_hWnd) { /// } else { SetFocus(); //현재를 포커스로 둠. 그럼 해제됨. } } }
[MFC] Edit 에디트 입력 제한하기. SetLimitText는 길이만, 바이트 단위로 제한 안되므로... SetLimitText는 길이만 제한되고 바이트 단위로 제한 안됨. 하지만 한글은 2byte character. 에디트에 UM_UPDATE추가void CMyClass::OnEnUpdateEditMyEdit() { UpdateData(TRUE); CString strReturn = ""; m_edMyEdit.GetWindowText(strReturn); INT nMaxLen = MultiByteToWideChar(CP_UTF8, 0, strReturn, -1, NULL, 0); if (nMaxLen > (MAXLEN + 1) && m_nIndex != 1) { DWORD dwSel = m_edMyEdit.GetSel(); m_edMyEdit.SetWindowText(m_strOld); m_edMyEdit...
[MFC] string to wstring/wstring to string변환/ CStringA <-> CStringW std::wstring NarrowToWide(const std::string& szNarrow) { int size = MultiByteToWideChar( CP_ACP, // code page 0, // character-type options szNarrow.c_str(), // string to map szNarrow.size(), // number of bytes in string NULL, // wide-character buffer 0 // size of buffer ); size++; WCHAR* pBuf = new WCHAR[size]; memset(pBuf,0,size*sizeof(WCHAR)); int size2 = MultiByteToWideChar( CP_ACP, // code p..
[MFC] Office CommandBars 추가하는 COM 에드인이 최초 실행시에만 로드되는 문제/Office Context Menu CommandBars Addin loads only initial start up. Office CommandBars (컨텍스트 메뉴) 추가하는 COM 에드인이 최초 실행시에만 로드되는 문제. "Caption", "Style", "Visible" 등 외에 "Tag"를 추가해야 함. 왜인지는 모름. CComVariant AddtButton; // Grab our button to sink events... VariantClear(&vtParam); vtParam.vt = VT_BSTR; vtParam.bstrVal = ::SysAllocString(CALL_MENU_NAME); hr = CallMethod(vtCtrls.pdispVal, L"Item", &AddtButton, 1, &vtParam); VariantClear(&vtParam); // If we can't find it, m..
[MFC] error C2248: 'CObject::CObject' 해결 CStringArray를 변수로 추가만 해도 2248에러-> CStringArray를 포인터로 변경 후 추가하니 해결됨. CStringArray m_arrMyString;->CStringArray *m_pArrMyString;

반응형