본문 바로가기

Computer Science/Languages

[MFC] 투명 윈도우 만들기 [MFC] 투명 윈도우 만들기 더보기
[MFC] 중복실행방지 //OnInitDialog 에서 처음실행할때 확인 HANDLE hEvent; hEvent = CreateEvent(NULL, FALSE, TRUE, AfxGetAppName()); //어플이름으로 확인 if ( GetLastError() == ERROR_ALREADY_EXISTS) { AfxMessageBox(_T("Already running..")); exit(0) ; } //실행중인 어플 내부에서 프로그램 띄위기 SHELLEXECUTEINFO sei; ::ZeroMemory(&sei, sizeof(SHELLEXECUTEINFO)); sei.cbSize = sizeof(SHELLEXECUTEINFO); sei.lpFile = _T("실행할 프로그램 주소~~~(e.g c:\test.exe"); sei... 더보기
[Scrap] 시리얼 포트, TCP/IP, UDP/IP 터미널 프로그램 (시리얼 통신 프로그램) 이번에 소개 드리는 프로그램은 시리얼 포트(COM port)나 TCP/IP, UDP/IP 프로토콜로 데이터를 주고받을 수 있는 프로그램입니다. 시리얼이나 TCP, UDP 프로토콜로 통신하는 장비를 연결하는 프로그램을 작성하기 전에 프로토콜이 어떻게 동작하는지 간단히 테스트 하는 용도로 이 프로그램을 사용해 볼 수 있습니다. 그동안 제가 하이퍼터미널(hyperterm)이나 테라텀(TeraTerm)을 사용하면서 불편하게 생각했던 여러 기능들을 추가하여 만들었습니다. 아마도 저와 같은 각종 디바이스를 다루고 통신 프로토콜을 구현하는 개발자들에게 유용한 프로그램이 되지 않을까 합니다. 다음은 프로그램을 실행하고 [Connect] 버튼을 눌러 COM 포트로 연결한 그림입니다. 기본적으로 텍스트로 보여주면서 HEX.. 더보기
[C#] 프로세스 강제종료 process force kill private static void killps(string processName) { Process[] process = Process.GetProcessesByName(processName); Process currentProcess = Process.GetCurrentProcess(); foreach (Process p in process) { if (p.Id != currentProcess.Id) p.Kill(); } } 더보기
[MFC] String 문자열 공백 없애기 [모든 공백을 없애기] str.Replace( _T(" "), NULL ); [왼쪽 공백만 없애기] str.TrimLeft( _T(" ") ); [오른쪽 공백만 없애기] str.TrimRight( _T(" ") ); 더보기
[MFC] BMP 비트맵 투명 그리기 (Draw, Paint만 사용가능) HANDLE bmp; CBitmap cBitmap; BITMAP bmpinfo; //CDC는 pDC CDC memdc; bmp = LoadImage(NULL, _T("DDR_Skin/button/bt_Loop.bmp"), IMAGE_BITMAP, 0,0, LR_LOADFROMFILE); cBitmap.Attach(bmp); cBitmap.GetBitmap(&bmpinfo); memdc.CreateCompatibleDC(pDC); memdc.SelectObject(bmp); //pDC->BitBlt(chkboxrect.left,chkboxrect.top,bmpinfo.bmWidth,bmpinfo.bmHeight, &memdc, 0,0,SRCCOPY); pDC->Trans.. 더보기
[MFC] 부모 다이얼로그 함수 변수 호출 함수 ((CDDR3Dlg*)GetParent())->AdditemDrag(Itemcnt,AddDragPath); 변수 ((CDDR3Dlg*)GetParent())->m_cnt = 1; 더보기
[MFC] force shutdown process #include BOOL Cex_ProcessKDlg::KillProcess(CString strName) { strName.MakeUpper(); HANDLE hSnapshot = CreateToolhelp32Snapshot ( TH32CS_SNAPPROCESS, 0 ); if ( (int)hSnapshot != -1 ) { PROCESSENTRY32 pe32 ; pe32.dwSize=sizeof(PROCESSENTRY32); BOOL bContinue ; CString strProcessName; if ( Process32First ( hSnapshot, &pe32 ) ) { do { strProcessName = pe32.szExeFile; //strProcessName이 프로세스 이름; strPr.. 더보기
[C/C++] 주민등록번호 규칙 주민등록번호 각 자리별 의미 12번째 코드는 보통 많아야 2~3이므로 4를 넘어가는 경우 조작된 주민등록번호 라는걸 알 수 있다. 마지막 오류검증번호는 앞에 12자리를 이용하여 생성이 되고 그 공식은 아래와 같다. 예를들어 주민번호 7 8 0 9 2 5 - 1 3 2 4 0 1 1 위의 예를 들은 주민번호를 이용하여 계산해보면 2*7 + 3*8 + 4*0 + 5*9 + 6*2 + 7*5 + 8*1 + 9*3 + 2*2 + 3*4 +4*0 + 5*1 =186 186 / 11 = 16(몫) ----- 10(나머지) 11 - 10(나머지) = 1 (검증코드) 7 8 0 9 2 5 - 1 3 2 4 0 1 X 에서 X=1 라는 것입니다. 간단한 주민등록번호 생성, 검사 프로그램을 만들 수 있습니다~!! 하지만 .. 더보기
Dev-C++ 4.9.9.2 , C/C++ Compiler C/C++ 컴파일러인 Dev-C, Dev-cpp의 장점이라면 오픈소스로 gcc을 기반으로 계속해서 개발되고있고.. 또한 GNU(General Public License)를 따르기에 무료로 사용하실 수 있습니다. GNU는 UNIX Compatible Free Software를 제작해온 단체인데, 누구나 가입해서 자유롭게 프로그램을 만들 수 있습니다.. 아래 링크에서 다운가능합니다. http://sourceforge.net/projects/dev-cpp/files/Binaries/Dev-C%2B%2B%204.9.9.2/devcpp-4.9.9.2_setup.exe/download 특별히 설치과정에서 어려운 부분은 없다. 한글을 선택해준다. 동의해주세요 입맛에 따라 선택하거나, 그냥 냅두셔도 상관없다. 설지할 .. 더보기