프로그래밍 일지

Sources

Posts

13 posts
[scrcpy] MacOS에서 안드로이드 장치 미러링

[scrcpy] MacOS에서 안드로이드 장치 미러링

프로그래밍 일지|2019년 11월 6일

삼성 휴대폰의 경우, 갤럭시 S9 이하의 휴대폰은 자체적으로 제공하는 SideSync 프로그램을 활용하여 MacOS 에서도 스크린 미러링이 가능하다. 하지만 삼성의 갤럭시 S9 이후 출시 모델들은 SideSync의 지원을 끊고 Samsung Flow를 사용하도록 하였는데, 이 Samsung Flow가 윈도우 10에서만 사용이 가능한 프로그램이라 자체 소프트웨어로는 MacOS에서 미러링을 할 수가 없다. 자체 소프트웨어가 없는 다른 제조사의 안드로이드 디바이스 또한 마찬가지이다.모비즌 등의 대체제가 없는 것은 아니지만, 로그인이나 싱크 등 복잡한 방법이 따르기 때문에 다른 방법을 소개하고자 한다. 바로 scrcpy라는 프로그램이다. [Github : https://github.com/Genymobil

[C++] base 클래스(부모 클래스)의 초기화 순서

프로그래밍 일지|2019년 1월 18일

[상속 관계에서 클래스의 초기화 순서에 대하여] Class가 생성될 경우 생성자가 호출된다. 이 클래스가 Base Class (부모 클래스)를 가진다면 유도된 (상속받은) Class 보다 먼저 초기화된다. Base Class의 초기화는 default 생성자를 사용하거나 유도된 Class에 작성된 base Class의 생성자를 사용하여 이루어진다. 그렇다면 다중 상속을 지원하는 C++에서 Base Class가 여러개 있을 경우 어떤 순서로 초기화가 되는 것일까? 다중 상속 Class 초기화 시 호출 순서는 아래의 기준으로 결정된다.Base Class들이 먼저 호출되는데 상속 시 나열한 순서 (아래 [코드 1]의 경우 30번 줄 참고) 대로 초기화.Member 객체들의 초기화생성자의 Code 아래의

[C++] C2440 : const char[]에서 char*로 변환할 수 없습니다 에러에 관하여

프로그래밍 일지|2019년 1월 17일

[그림 1] C2440 ERROR 문자열 리터럴을 사용하기 위해서 char* 형태의 변수를 선언했을 때 [그림 1]과 같은 에러가 발생한다.에러의 내용은 "aa"라는 문자열은 const(상수)값인데 변수에 그 값을 집어넣으려고 하니 에러가 발생한다는 것이다. 도대체 이런 에러가 왜 발생하는 걸까? 이런 에러가 발생하는 이유를 MSDN에서는 다음과 같이 설명하고 있다. C2440 can be caused if you attempt to initialize a non-const char* (or wchar_t*) by using a string literal in C++ code, when the compiler conformance option /Zc:strictStrings is set.

[C++] 월별 날짜 수, 윤년 계산기 코드

프로그래밍 일지|2019년 1월 16일

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576#pragma once#include using namespace std; class Date { int month; int day; int year; public: Date(int m, int d, int y) : month(m), day(d), year(y) { if (month == 2 && day == 29) cout << "incorrect

[C++] inline 함수의 특징과 define macro와의 차이

프로그래밍 일지|2019년 1월 16일

[인라인 함수(Inline function)] inline 함수란?C99부터 지원하는 기능으로, C와 C++ 프로그래밍 언어에서 컴파일러가 완전한 함수 구현을 함수가 호출되는 모든 장소에 삽입하도록 하는 키워드를 뜻한다. inline 함수는 다음과 같은 형태로 사용할 수 있다.123inline int sum(int a, int b){ return a + b;}cs 이 코드를 컴파일 할 경우, 컴파일 단계에서 컴파일러는 모든 sum() 함수 호출을 함수 구현 code로 대치하게 된다.예를 들어 i = sum(x,12)라는 문장이 있으면, 컴파일 단계에서 이 문장은 i = x + 12가 되는 것이다. inline 함수를 사용하는 가장 큰 목적은 효율성(efficiency) 때문이다. 간단하고