일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- memory
- flutter
- parameter
- mfc
- wpf
- java
- sensor
- stream
- UNO
- Unity
- Android
- length
- Binary
- inheritance
- digitalRead
- atmega328
- Class
- Read
- Contour
- aduino
- Overloading
- file access
- Pointer
- Encapusulation
- public
- compare
- APP
- preprocessing
- Barcode
- SERIAL
- Today
- Total
목록분류 전체보기 (287)
폴크(FOLC)
# 윈도우에서 현재 실행되고 있는 프로그램을 찾아보고 핸들을 이용해서 상태를 변경할 수 있다. > FindWindow : 윈도우 핸들을 찾는다. > ShowWindowAsync : 윈도우를 활성화 시킨다. > SetForegroundWindow : 윈도우를 최상위로 이동 시킨다. # 소스 코드 using System; using System.Runtime.InteropServices; class FindProcess { [DllImport("user32.dll")] public static extern IntPtr FindWindow(string lpClassName, string lpWindowName); [DllImport("user32.dll")] private static extern bool S..
# 8bit / 16bit / 24bit / 32bit 등의 여러가지 이미지 데이터 포멧이 있다. > CImage 형태 이용 > 8bit : 0 ~ 255까지의 값을 표현 ( Gray ) > 16bit : 0 ~ 65,535까지의 값을 표현 ( HQ Gray ) > 24bit : 0 ~ 16,777,215까지의 값을 표현 ( RGB ) > 32bit : 0 ~ 4,294,967,295까지의 값을 표현 ( RGBA ) # 소스 코드 const int src_sizex = src.GetWidth(); const int src_sizey = src.GetHeight(); const int src_pitch = abs(src.GetPitch()); const int src_bitpp = src.GetBPP();..
# 현재 모니터 화면에서 특정한 영역의 정보를 이미지 파일로 저장 > ATL::CImage 형태를 이용 # MFC 에서 CImage 을 기본으로 제공 # 소스 코드 HDC hdcSrc = ::GetWindowDC(NULL); const int size_x = GetSystemMetrics(SM_CXSCREEN); const int size_y = GetSystemMetrics(SM_CYSCREEN); const int BitpPx = GetDeviceCaps(hdcSrc, BITSPIXEL); CImage image; if (image.Create(size_x, size_y, BitpPx, 1) == TRUE) { BitBlt(image.GetDC(), 0, 0, size_x, size_y, hdcSrc..
# Local 폴더를 Zip 파일을 복원 > ziplib 라이브러리 이용 ( www.info-zip.org ) > BSD license # 소스 코드 bool CFileMakeZip::FileDeComp(CString src, CString dst) { // 연결 HZIP hz = OpenZip(src, 0); if (hz == 0) { return false; } // 해체 ZRESULT zr = UnzipItem(hz, 0, dst); if (zr != ZR_OK) { return false; } // 닫기 zr = CloseZip(hz); if (zr != ZR_OK) { return false; } return true; }
# Local 폴더를 Zip 파일로 생성 > ziplib 라이브러리 이용 ( www.info-zip.org ) > BSD license # 소스 코드 bool CFileMakeZip::FileComp(CString src, CString dst) { // 생성 HZIP hz = CreateZip(dst, 0); if (hz == NULL) { AfxMessageBox(_T("Error: Failed to Create Zip")); } // 추가 - 압축 ZRESULT zr = ZipAdd(hz, src, src); if (zr != ZR_OK) { zr = CloseZip(hz); return false; } // 닫기 zr = CloseZip(hz); if (zr != ZR_OK) { return fa..
# FTP : File Transfer Protocol은 TCP/IP 프로토콜을 가지고 있어서 서버(HOST)와 모듈(CLIENT) 사이의 파일 송/수신 > TCP/IP 프로토콜 테이블의 응용 계층 > 운영 체제가 그래픽 사용자 인터페이스를 갖추기 이전에 개발된 명령 줄 프로그램 > 대부분의 윈도우, 유닉스, 리눅스 운영 체제에 기본 포함되어 있다. # 소스 코드 bool FileUpload(CString host, CString user_id, CString user_pw, int port, int passive, CString local, CString remote) { try { CInternetSession m_session; m_session.SetOption(INTERNET_OPTION_CON..
# FTP : File Transfer Protocol은 TCP/IP 프로토콜을 가지고 있어서 서버(HOST)와 모듈(CLIENT) 사이의 파일 송/수신 > TCP/IP 프로토콜 테이블의 응용 계층 > 운영 체제가 그래픽 사용자 인터페이스를 갖추기 이전에 개발된 명령 줄 프로그램 > 대부분의 윈도우, 유닉스, 리눅스 운영 체제에 기본 포함되어 있다. # 소스 코드 bool FileUpload(CString host, CString user_id, CString user_pw, int port, int passive, CString local, CString remote) { try { CInternetSession m_session; m_session.SetOption(INTERNET_OPTION_CON..
# 네트워크에서 운영되는 HDD 드라이브 > 근거리 통신망으로 네트워크의 선택된 사용자에게 공유 > 표준 디스크 드라이브와 동일하게 액세스를 제공 # 소스 코드 bool CNetworkDrive::ConnectDrive(CString local_name, CString remote_name, CString userID, CString password) { try { NETRESOURCE rc; memset(&rc, 0, sizeof(NETRESOURCE)); rc.dwDisplayType = RESOURCEDISPLAYTYPE_SHARE; rc.dwScope = RESOURCE_GLOBALNET; rc.dwType = RESOURCETYPE_DISK; rc.dwUsage = RESOURCEUSAGE_CO..
# 통신 채널이나 컴퓨터 버스를 거쳐 하나의 비트 단위로 연속적으로 데이터를 전송하는 과정 > 시간으로 나누어 차례대로 전송 > 전송 방식은 동기/비동기 방식으로 나뉜다. - 동기 방식 : 데이터 신호와는 별도로 동기신호를 보낸다. - 비동기 방식 : 데이터 신호만 보내고 각각의 방식에 따라 데이터 비트를 찾는다. # 소스 코드 bool CRS232Serial::OpenPort(CString strPort) { m_osRead.Offset = 0; m_osRead.OffsetHigh = 0; m_osRead.hEvent = CreateEvent(NULL, TRUE, FALSE, NULL); if (m_osRead.hEvent == NULL) return false; m_osWrite.Offset = 0;..
# 매우 빠른 C++ 로깅 전용 라이브러리 > 리눅스, FreeBSD, OpenBSD, 솔라리스, AIX, Windows, macOS 등 다양한 언어와 플랫폼을 지원한다. > 파일, 콘솔, DB로 출력할 수 있고 날짜, 파일 크기마다 생성가능하다. # 적용 방법 > https://cppget.org/spdlog/1.9.2 에서 검색 후 설치(download) > 파일 생성 주기를 설정할 수 있다. # 소스 코드 std::shared_ptr m_file; void CSPDLOG::Initialize(CStringA strPath, int dailyLogHour, int dailyLogMinute) { m_file = spdlog::daily_logger_mt("file", strPath, dailyLogH..
# 현재 모니터 화면에서 특정한 영역의 정보를 이미지 파일로 저장 > Bitmap 형태를 이용 # MFC 에서 Bitmap 을 기본으로 제공 # 소스 코드 bool CScreenCapture::CaptureFullscreen() { HDC h_screen_dc = ::GetDC(NULL); int dstX = ::GetDeviceCaps(h_screen_dc, HORZRES); int dstY = ::GetDeviceCaps(h_screen_dc, VERTRES); CaptureROI(h_screen_dc, 0, 0, dstX, dstY); if (NULL != h_screen_dc) ::ReleaseDC(NULL, h_screen_dc); return true; } bool CScreenCapture:..
# 특정 영역에 대해서 CPU 가동에 대한 소요 시간을 확인 > QueryPerformanceCounter 를 이용 # 소스 코드 void CTimeChecker::Reset() { QueryPerformanceFrequency(&m_freq); QueryPerformanceCounter(&m_st); } double CTimeChecker::Elapsed_ms() { QueryPerformanceCounter(&m_ed); double gap = (m_ed.QuadPart - m_st.QuadPart) / m_freq.QuadPart; return gap * 1000.0; // msec }
# MFC를 이용하는 과정에서 HDD 에 존재하는 파일 ( txt format ) 제어 > Save, Load 형태 - CStdioFile 이용 > exe 파일 위치에 test.txt 파일 생성 # 소스 코드 bool CTxTFormHelper::ReadFile(CString strFileName) { std::vector vecParam; CStdioFile file; CFileException e; if (file.Open(strFileName, CFile::modeReadWrite | CFile::typeText, &e) == TRUE) { CString strReadData; while (file.ReadString(strReadData) == TRUE) { vecParam.push_back(st..
# MFC를 이용하는 과정에서 HDD 에 존재하는 파일 ( ini format ) 제어 > Save, Load 형태 - Shlwapi.lib 이용 > exe 파일 위치에 test.ini 파일 생성 # 소스 코드 > #include > #pragma comment(lib, "Shlwapi.lib") GetPrivateProfileInt(szCategory, szKey, nDefValue, m_strFilePath); WritePrivateProfileString(szCategory, szKey, strValue, m_strFilePath); > 읽기/쓰기 부분에 대한 내용을 별도로 wrapping 해서 이용한다. int CINIFormHelper::LoadINT(LPCTSTR szCategory, LPCT..
# MFC를 이용하는 과정에서 HDD 에 존재하는 파일 ( binary format ) 제어 > Save, Load 형태 - Map 형태 이용 > exe 파일 위치에 test.dat 파일 생성 # 소스 코드 m_pdbBinary = new CDataBaseBinary; bool CBINFormHelper::FileLoad() { CFile file; CFileException fe; if (file.Open(m_strFilePath, CFile::modeRead, &fe) == FALSE) { return false; } CArchiveUserDefine ar(&file, CArchive::load); BOOL bReturn = FALSE; if (m_pdbBinary) { delete m_pdbBina..
# 현재 모니터 화면에서 특정한 영역의 정보를 이미지 파일로 저장 > Bitmap 형태를 이용 # WPF 에서 Bitmap 을 기본으로 제공하지 않기에 참조에서 dll 을 추가한다. > 솔루션에서 참조 마우스 오른쪽 "참조 추가" 선택 # 소스 코드 using System.IO; using System.Windows; using System.Windows.Media.Imaging; using System.Drawing; using System.Drawing.Imaging; public class ScreenCapture { BitmapImage m_bitmapimage = new BitmapImage(); public void CaptureFullscreen() { // 주화면의 크기 정보 읽기 int ..
# 통신 채널이나 컴퓨터 버스를 거쳐 하나의 비트 단위로 연속적으로 데이터를 전송하는 과정 > 시간으로 나누어 차례대로 전송 > 전송 방식은 동기/비동기 방식으로 나뉜다. - 동기 방식 : 데이터 신호와는 별도로 동기신호를 보낸다. - 비동기 방식 : 데이터 신호만 보내고 각각의 방식에 따라 데이터 비트를 찾는다. # 소스 코드 using System; using System.IO.Ports; SerialPort m_port = new SerialPort(); string m_strQueueMessage; public bool OpenPort(string port, int baud = 9600) { m_port.PortName = port; // default : COM1 m_port.BaudRate =..
# .NET 표준을 포함한 유연한 무료 로깅 플랫폼 > Java, C++, .NET 등 다양한 언어와 플랫폼을 지원한다. > 파일, 콘솔, DB로 출력할 수 있고 날짜, 파일 크기마다 생성가능하다. # 적용 방법 > NuGet 에서 "NLog" 검색 후 설치(download) # 환경 설정 > 환경설정을 code level 로 작성할 수도 있고 xml 파일을 연결해서 사용 가능하다. > 솔루션 탐색기에 추가 - 출력 디렉토리에 복사 ( 항상 복사 ) # 소스 코드 using System; using System.IO; using System.Reflection; using System.Windows; using System.Xml; using NLog; using NLog.Config; string re..
# 네트워크에서 운영되는 HDD 드라이브 > 근거리 통신망으로 네트워크의 선택된 사용자에게 공유 > 표준 디스크 드라이브와 동일하게 액세스를 제공 # 소스 코드 using System; using System.Text; using System.Runtime.InteropServices; // 연결 하기 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)] public struct NetworkResource { public uint Scope; public uint Type; public uint DisplayType; public uint Usage; public string LocalName; public string RemoteName; pu..