728x90

Programing Story's 260

[MFC] 볼륨으로 디스크 번호 가져오기 (Get Volume Disk Number)

볼륨의 디스크 번호를 가져오려면 아래와 같이 코드를 작성하면 됩니다 #include int GetVolumDiskNumber(WCHAR cVolume) { CString strVolume; strVolume.Format(_T("\\\\.\\%c:"), cVolume); HANDLE hVolume = CreateFile( strVolume, 0, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL); if(hVolume == INVALID_HANDLE_VALUE) { return -1; } VOLUME_DISK_EXTENTS vde; DWORD dwRet; if(DeviceIoControl(hVolume, IOCTL_VOLUME_GET_VOL..

Application/MFC 2023.03.21

[Windows] 디스크 파티션 활성화 방법 (Diskpart Partition Active)

MBR의 파티션의 경우 부팅 가능한 파티션을 만들기 위해서는 파티션 활성화가 이뤄져야 합니다 간단하게 DiskPart 프로그램을 이용해서 파티션 활성화 하는 방법을 알아보겠습니다 우선 diskpart 프로그램을 열고 『list disk』 명령어로 현재 연결된 disk를 확인 후 『sel disk x』 명령어로 활성화하려는 디스크를 선택해 줍니다 이후 『list part』 명령어로 활성화 하려는 디스크를 확인 후 『sel part x』 명령어로 파티션을 선택해 줍니다 이후 『active』 를 명령어를 실행하시면 해당 파티션을 활성화되는 것을 확인할 수 있습니다 이전 디스크 상태 이후 디스크 상태 제 글이 도움이 되셨다면 댓글 & 공감 부탁드려요 😀

OS/Windows 2023.03.20

[MFC] WriteFile & ReadFile & OVERLAPPED 사용 방법

비동기로 파일 입/출력을 하기 위해서는 Overlapped 를 사용해야 합니다 간단한 사용법을 소개합니다 우선 헤더 파일에 변수 선언을 진행합니다 OVERLAPPED m_overlapped; 이후 초기화 및 Event 초기화를 진행합니다 MyClass() { memset(&m_overlapped, NULL, sizeof(m_overlapped)); m_overlapped.hEvent = CreateEvent(NULL, FALSE, FALSE, NULL); } 소멸자에서도 처리해 줍니다 ~MyClass() { SetEvent(m_overlapped.hEvent); CloseHandle(m_overlapped.hEvent); m_overlapped.hEvent = NULL; } 그리고 마지막으로 아래와 같이..

Application/MFC 2023.03.17

[Linux/Ubuntu] Grub 부팅 Timeout

처음 세팅 후 Grub 선택 화면에서 30초 정도 선택 대기를 합니다 해당 Timeout의 속도를 조절하기 위해서는 /etc/default/grub 의 값을 조절해 주면 됩니다 # vi /etc/default/grub 위의 명령어로 grub 파일을 들어가서 #GRUB_DEFAULT=0 GRUB_DEFAULT=3 기존 DEFAULT 시간이 0으로 되어 있는것을 3 정도로 바꿔 줍니다 # update-grub 마지막으로 위의 명령어로 grub 설정을 업데이트 해 주면 끝납니다 제 글이 도움이 되셨다면 댓글 & 공감 부탁드려요 😀

OS/Linux(Ubuntu) 2023.03.15

[정보] VirtualBox 물리 디스크 연결 하기(Physical)

Oracle VM VirtualBox 으로 가상 머신을 사용할 때 현재 연결된 물리 디스크를 마운트 하려는 경우 방법을 소개합니다 Command 창을 열어서 VirtualBox가 설치된 위치로 이동합니다 기본적으로 설치된 위치라면 C:\Program Files\Oracle\VirtualBox 위치로 이동을 합니다 디스크 관리에서 디스크 번호를 확인합니다 (diskmgmt.msc) 그리고 마지막으로 Command 창에서 > VBoxManage.exe internalcommands createrawvmdk -filename {File Path}.vmdk -rawdisk \\.\PhysicalDrive{X} 위와 같이 입력을 합니다 {File Path}는 실제 물리 디스크가 파일 형태로 표시될 위치의 값을 넣..

Application/정보 2023.03.15

[MFC] Static 글자 색 및 배경 색 변경

MFC에서 Static 컨트롤 및 다른 컨트롤의 글자색 및 배경색을 변경하려고 할 때는 OnCtlColor 함수를 이용하면 됩니다 MFC 클래스 마법사를 이용하여 메시지 탭에서 WM_CTLCOLOR 를 선택 후 처리기를 추가합니다 이후 추가된 처리기에 아래와 같이 작성해 주면 됩니다 HBRUSH CDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor); // TODO: 여기서 DC의 특성을 변경합니다. switch(pWnd->GetDlgCtrlID()) { case IDC_STATIC_NOTICE: pDC->SetBkColor(RGB(0, 0, 0)); pDC..

Application/MFC 2023.03.14

[MFC] CMD로 명령어 실행 하기

CMD로 특정 명령어를 실행하고 완료시까지 대기를 하려면 SHELLEXECUTEINFO 구조체를 사용해서 ShellExecuteEx SellAPI를 이용하면 됩니다 void CMyClass::Commander(CString strCommand) { SHELLEXECUTEINFO ExecInfo; memset(&ExecInfo, NULL, sizeof(SHELLEXECUTEINFO)); ExecInfo.cbSize = sizeof(ExecInfo); ExecInfo.lpVerb = _T("open"); ExecInfo.lpFile = _T("cmd.exe"); ExecInfo.lpParameters = strCommand; ExecInfo.fMask = SEE_MASK_FLAG_NO_UI | SEE_MAS..

Application/MFC 2023.03.13

[C# WinForm] 키움 증권 Open API 분봉차트 가져오기

특정 종목의 분봉차트를 가져오고 싶다면 opt10080 TR 코드를 사용해서 가져올 수 있습니다 //종목코드 = 전문 조회할 종목코드 SetInputValue("종목코드", "입력값 1"); //틱범위 = 1:1분, 3:3분, 5:5분, 10:10분, 15:15분, 30:30분, 45:45분, 60:60분 SetInputValue("틱범위", "입력값 2"); //수정주가구분 = 0 or 1, 수신데이터 1:유상증자, 2:무상증자, 4:배당락, 8:액면분할, 16:액면병합, 32:기업합병, 64:감자, 256:권리락 SetInputValue("수정주가구분", "입력값 3"); //Tr 요청 CommRqData( "주식분봉차트조회요청","opt10080","0", "화면번호"); 위의 방식으로 Tr을 요청..

[MFC] 난수 생성하기(랜덤 값 생성)

랜덤 한 값을 생성하고 싶을 때 srand 함수를 이용해서 난수표를 만든 후 값을 가져옵니다 srand((unsigned int)time(NULL)); int iRand = rand() % 1000; 위와 같이 작성할 경우 1000 미만의 난수를 발생시킬 수 있습니다 하지만 쓰레드 같이 거의 동시에 난수를 발생할 경우 같은 값을 가지는 경우가 생깁니다 이를 회피하고자 현재 시간의 millisecond 단위를 활용해 프로그램을 구동시키면 다른 난수값을 가져올 수 있는 것을 확인할 수 있습니다 SYSTEMTIME st; GetLocalTime(&st); srand((unsigned int)st.wMilliseconds); int iRand = rand() % 1000; 위와 같이 작성하면 됩니다 제 글이 도..

Application/MFC 2023.03.08
728x90
반응형