PLC 기초 - 프로그래밍 용어, 약어 설명 (미쓰비시, 지멘스 공통) ROM(Read Only Memery), RAM(Random Access Memory) 롬은 읽기 전용으로, 메모리 내용을 변경할 수 없다. 따라서, 고정된 정보를 써넣는다. 이 영역의 정보는 전원이 끊어져도 기억시킨 정보 내용을 상실하는 휘발성 메모리이다. 램은 메모리에 정보를 수시로 읽고 쓰기가 가능하여 정보를 일시 저장하는 용도를 사용되나, 전원이 끊어지면 기억시킨 정보 내용을 상실하는 휘발성 메모리이다. 그러나 필요에 따라 RAM 영역 일부를 배터리 백업(back up) 때문에 부 휘발성 영역으로 사용할 수 있다. 사용자 프로그램 메모리 제어하고자 하는 시스템 사양에 따라 사용자가 작성한 프로그램이 저장되는 영역으로, 제어 내..
C# URL 웹페이지 존재 확인 (WebBrowser.Url - HTML) 회사 이윤 창출을 위해 손가락을 놀리던 중, 특정 페이지가 존재하는지 확인할 필요가 생겼습니다. (C# URL 웹페이지 존재 확인 (WebBrowser.Url)) 일명 URL이 깨졌는지 안 깨졌는지 확인하는 과정인데, 블로그를 예로 들어 특정 페이지가 삭제되었다면 그 주소를 사용자에게 알려주는 것이죠. 여러 웹사이트를 운영하는 관리자에겐 특정 URL이 접근하지 못한다거나 사이트가 없어졌다고 알려주는 겁니다. 즉, 웹페이지가 존재하지 않는다면 존재하지 않는다 알려주는 겁니다. 처음엔 어렵게 생각했는데 HttpWebRequest를 사용하면 쉽게 알아낼 수 있습니다. 아래 소스 보시죠. 123456789101112131415161718..
비주얼스튜디오2015 C2338 에러 해결 (msvs2015) error C2338: va_start argument must not have reference type and must not be parenthesized 작업하던 비주얼스튜디오 버전이 바뀌면 생기는 문제입니다. 이럴 땐, C/C++ - 전처리기 - _CRT_NO_VA_START_VALIDATION 추가하면 됩니다. 만약 비주얼스튜디오 버전이 바뀌고 여러 에러가 생긴다면 이 코드를 추가하세요. 비주얼스튜디오2015 C2338 에러 해결 (msvs2015)
MFC 엑셀에 그림 파일 추가, Excel import Picture 엑셀에 그림 파일 추가하는 소스인데 저는 함수 3개로 구현했습니다. 1. 기능 함수 : 그림 추가 함수 호출2. 실행 함수 : 실제 엑셀 시트에 그림 추가하는 함수3. 그림 파일 처리 함수 : BMP 파일 유효성 검사 함수 이렇게 3개 기능으로 구성했는데, 1번부터 살펴봅니다. 1. 첫 번째로 기능 함수입니다. 여기선 간단히 AddPicture()란 함수를 호출하는 정도입니다. 123456789101112CString img_path = "C:\abc.bmp"; int IMG_POS_LEFT = 0;int IMG_POS_TOP = 100;int IMG_WIDTH = 100;int IMG_HEIGHT = 100; Shapes shape ..
C# byte 배열 빠르게 합치기 (바이트 array) C#에서 바이트 배열 합치기를 시도할 때, System.Buffer.BlockCopy가 System.Array.Copy보다 빠릅니다. 아래는 10 바이트 배열 3개를 1백만 번 반복한 결과로 함수의 수행 시간을 측정한 결과입니다. 바이트 배열 : System.Array.Copy - 0.2187556초바이트 배열 : System.Buffer.BlockCopy - 0.1406286초IEnumerable : C# yield operator - 0.0781270초IEnumerable : LINQ's Concat - 0.0781270초 byte 배열 크기를 100개로 늘리고 다시 테스트한 결과는 아래. 바이트 배열 : System.Array.Copy - 0...
[Qt프로그래밍] 비트맵 QGuiApplication QPixmap 에러 해결 Qt5.6.2 : QPixmap: Must construct a QGuiApplication before a QPixmap 해결책 : Qt5Widgets -> Qt5Widgetsd Qt프로그래밍 도중 버전을 바꾸며 겪었던 에러입니다. Qt4에선 발생하지 않았는데 Qt5로 버전을 올리니 발생하네요. Qt프로그래밍은 Qt5 부터 규칙이 깐깐해지며 변화의 폭이 많았죠. 어쨌든 해결하려면 Qt5Widgets 대신 디버그에 사용하는 Qt5Widgetsd를 사용하면 됩니다. 큐트파이브위젯스디가 되는 것이죠. 디. 디. D. D. 다시 정리하면, Qt5Widgets -> Qt5Widgetsd 디버그에 사용되는 d가 붙어있는 파일이 따로 있..
C# string double 변환 7가지 방법 C# string double 변환 8가지 방법C#에서 float을 string 변환하는 방법입니다. String.Format 또는 double.ToString, float.ToString를 사용할 수 있습니다. 소수점 이하 자리수소수 자리수가 작으면 나머지는 0으로 채워지고 크면 반올림됩니다. 1234// 소수 둘째 자리String.Format("{0:0.00}", 123.4567); // "123.46"String.Format("{0:0.00}", 123.4); // "123.40"String.Format("{0:0.00}", 123.0); // "123.00"cs 1234// 두자리 소수점String.Format("{0:0.##}", 123.4567)..
Dictionary에 키값 4개를 추가한 뒤 비주얼 스튜디오 디버거를 통해 내용을 확인합니다. Dictionary는 키와 값을 쌍으로 보유합니다. 글 시작 전, 독학으로 공부하는 분들이 많으신데, 국비지원 무료 교육도 함께 알아보세요. 프로그래밍 공부 시작 단계에선 아무래도 혼자보단 여럿이 같이 배우는 게 낫습니다. [▼ 국비지원 내일배움카드 신청하기▼ ] 내일배움카드 발급 자격 확인 및 신청 방법 가이드 - 1mm 내일배움카드 발급 자격과 신청방법에 대해 A to Z 상세하게 가이드로 알려드립니다. kako.co.kr string, int 다른 자료형을 요소로 사용합니다. using System; using System.Collections.Generic; class Program { static vo..
MFC, 동적 버튼 생성, 색을 입히고 클릭 이벤트 설정 첨부 파일 데모 - Test_DynamicCreation_Button.exe 프로젝트 - Test_DynamicCreation_Button.zip MFC에서 동적으로 버튼을 생성하고 클릭 이벤트를 설정합니다. 동적 버튼이란 동적으로 색상을 변경하는 것을 의미합니다. 아래 그림처럼 색상이 다양합니다. 위의 첨부 파일을 다운 받으셔서 실행하시면 확인이 됩니다. 프로그램 개요 - 버튼의 동적 생성. - 버튼 클릭 시, 색상이 변하며 메시지 박스가 생성. 달랑 두 가지 기능이 있습니다. 버튼을 동적으로 생성하고 색을 입히고, 클릭 이벤트도 설정합니다. 우선, 아래와 같이 4개의 함수와 1개의 변수를 설정합니다. 123456virtual BOOL OnCom..
QSerialPort Qt 시리얼 5.1부터 추가 (Serial 예제 소스) Qt 이전 버전엔 QSerialPort 라이브러리가 없어서 QExtSerialPort란 타사 라이브러리를 이용하는 게 일반적이었습니다. 그렇지만 5.1.0이 릴리즈되면서 QSerialPort(Qt 시리얼) 라이브러리는 Qt의 일부가 되었습니다. QSerialPort Qt 시리얼 라이브러리는 Qt4와 Qt5 이후를 지원하며 UNIX, 윈도우, 리눅스, MAC OS X, POSIX 32비트, 64비트도 지원합니다. 윈도우 CE와 심비안은 부분적으로 지원하나 Qt5 자체가 이들을 지원하지 않기에 향후 별도의 라이브러리가 추가될 가능성은 작습니다. Using ItQt 시리얼은 QtSerialPort와 QSerialPortInfo 클래스..
Qt 버전 확인하는 방법 (리눅스 우분투에서) 내가 지금 사용하는 Qt의 버전이 가끔 헷갈릴 때가 있는데, 그럴 땐 터미널에 명령어 한 줄만 넣어주면 됩니다. 1qtchooser -print-envcs 위의 명령어 한 줄만 넣어주면, 아래 그림처럼 현재 사용 중인 Qt의 버전과 QMake의 버전까지 확인됩니다. 이 방법 외에, /usr/lib/ 하단의 qtchooser/default.conf를 수정하는 방법도 있는데 인위적으로 고치면 나중에 무슨 문제가 발생할지 모르니 추천하고픈 방법은 아닙니다. 설치된 Qt 버전이 여럿이고, 버전마다 작업 중인 프로젝트가 다르다면 『매번 Qt 버전을 확인』할 필요가 있습니다. 그럴 때면 이렇게 qtchooser 명령어를 사용해 확인해 보세요. 왜냐면 Qt5가 등장하면서..
리눅스 터미널 스크롤 무제한 (프로파일 스크롤 범위) 리눅스 터미널 사용하다 보면 스크롤이 사라져 내용을 놓치는 경우가 있습니다. 리눅스 터미널에 너무 많은 텍스트가 찍혀 중요한 내용을 보지 못하는 것이죠. 그럴 땐 올라가지 않는 터미널 스크롤이 원망스러워요. 그러나, 안타까워 마세요. 리눅스 터미널 스크롤 무제한으로 만드는 방법이 있습니다. 모든 텍스트 다 볼 방법이 있죠. 먼저, 리눅스에서 터미널을 띄우세요. 화면 아무 곳에서 마우스 오른쪽 버튼을 누릅니다. 그러면 아래 같은 메뉴가 보입니다. (오른쪽 클릭 - 프로파일 - 프로파일 기본 설정) 오른쪽 버튼 누른 뒤 보이는 메뉴에서 "프로파일(R) - 프로파일 기본 설정(O)"을 누르세요. 그러면 아래처럼 리눅스 터미널 프로파일 편집 창이 새롭게 뜹니..