728x90

전체 글 264

[C++] 캐스트 이해하기 (4) - dynamic_cast

1. 들어가기static_cast랑 reinterpret_cast, const_cast까지 정리해 놓고 나면마지막으로 자연스럽게 떠오르는 친구가 dynamic_cast다이름만 보면“런타임에 뭔가 확인해 준다는데 정확히 뭐가 다른지”“언제 static_cast 대신 써야 하는지”헷갈릴 때가 많다 이 글에서는dynamic_cast가 정확히 무슨 일을 하는지언제 static_cast보다 dynamic_cast가 더 어울리는지실무에서 자주 보게 되는 패턴과 주의할 점을 한 번에 정리해 본다2. dynamic_cast가 하는 일한 줄로 요약하면런타임에 실제 타입을 확인하면서상속 관계 안에서 안전하게 캐스트해 주는 도구 라고 보면 된다 조금 더 풀어서 말하면다형성 기반 클래스를 가리키는 포인터나 레퍼런스에서실제 객..

Application/C++ 2025.12.11

[C++] 캐스트 이해하기 (3) - const_cast

1. 들어가기static_cast랑 reinterpret_cast까지 정리해 놓고 나면캐스트 시리즈에서 자연스럽게 다음으로 떠오르는 친구가 const_cast다이름만 보면“const를 없애 버리는 무서운 캐스트인가…” 싶은데실제로는잘 쓰면 레거시 코드와 최신 코드를 이어 주는 어댑터 역할도 하고잘못 쓰면 설계 전체를 꼬이게 만드는 양날의 검 같은 존재에 가깝다 이번 글에서는const_cast가 정확히 무슨 일을 하는지실무에서 실제로 어디쯤에서 등장하는지절대 쓰면 안 되는 패턴은 뭐가 있는지를 정리해 본다2. const_cast가 하는 일한 줄로 요약하면타입의 const / volatile 수식자를 붙이거나 떼어 내는 캐스트 라고 보면 된다 조금 더 풀어서 말하면포인터나 레퍼런스 타입에서const / vo..

Application/C++ 2025.12.10

[C++] 캐스트 이해하기 (2) - reinterpret_cast

1. 들어가기C 스타일 캐스트를 오래 쓰다 보면어느 순간부터 reinterpret_cast라는 친구가 눈에 들어온다이름부터 뭔가 살벌한 느낌이라검색해 보면 하나같이 위험하다고만 하고정작 언젠 쓰는지 감이 잘 안 올 때가 많다이 글에서는reinterpret_cast가 정확히 어떤 캐스트인지실제로 어떤 상황에서 쓰는지왜 조심해서 써야 하는지를 정리해 본다2. reinterpret_cast가 하는 일한 줄로 요약하면메모리의 비트 패턴을 그대로 둔 채다른 타입으로 다시 읽게 만드는 캐스트 라고 할 수 있다 다른 캐스트와 비교하면 느낌이 좀 다르다static_cast타입이 논리적으로 맞는지 컴파일러가 최대한 체크dynamic_cast런타임까지 끌고 가서 타입을 확인reinterpret_cast비트만 맞으면 어떻게..

Application/C++ 2025.12.09

[C++] 캐스트 이해하기 (1) - static_cast

1. 들어가기C++로 개발하다 보면 가장 자주 보는 캐스트가 static_cast다그런데 막상 “언제 정확히 써야 하는지”를 설명해 보라고 하면대충 “타입 맞을 때 쓰는 거” 정도로 흐리게 넘어갈 때가 많다이 글에서는static_cast가 정확히 어떤 캐스트인지C 스타일 캐스트와 뭐가 다른지실무 코드에서 자주 쓰는 패턴을 정리해 본다2. static_cast가 하는 일한 줄로 요약하면컴파일러가 타당하다고 판단할 수 있는 범위 안에서타입 변환을 수행하는 캐스트 주로 이런 상황에서 사용된다정수 ↔ 실수 변환int → double, double → int상속 관계에서 업캐스트Derived* → Base*void* → 구체적인 포인터 타입enum ↔ 정수형 변환static_cast는 논리적으로 말이 되는 변환만..

Application/C++ 2025.12.08

[C# (WinForm)] 암호화 및 복호화 (AES)

1. 참조 및 전역 변수using System.Security.Cryptography;using System.Text;string m_strKey = "Sample Cryptography Key"; 2. 암호화private string EncryptStringAES(string plainText, string keyString){ byte[] szDatas = Encoding.UTF8.GetBytes(keyString); // 키를 바이트 배열로 변환 byte[] key = new byte[32]; Array.Copy(Encoding.UTF8.GetBytes("12345678901234567890123456789012"), key, key.Length); // key 초기화 if ..

[Windows] 그래픽 카드 리셋

갑자기 화면이 이상하게 나오거나 특정 프로그램이 화면 밖에서 실행되거나 상태창이 화면 영역 밖에 있을 때 파일 이동 메뉴가 없을 경우 사용하는 방법입니다 일반적으로 Alt + Space + M 버튼으로 이동 메뉴를 선택 후 키보드 화살표로 이동하면 되지만 특정 프로그램의 경우 이동 메뉴가 없을 때 사용할 수 있는 방법입니다 키보드에서 Win + Ctrl + Shift + B 버튼을 같이 누르시면 연결된 모든 화면이 차례로 깜빡임 후 전체 깜빡임이 생기고 이후 모든 화면이 정상적으로 표시되는 것을 확인하실 수 있습니다 제 글이 도움이 되셨다면 댓글 & 공감 부탁드려요 😀

OS/Windows 2025.07.04

[영상편집] H.265 HEVC 코덱 설치 (Install Codec)

DJI Osmo Action 4 액션캠을 사용하면서 Davinci Resolve 프로그램으로 편집을 하려고 영상을 가져오니 Media offline 오류를 반환 이유를 찾아보니 H.265 HEVC 코덱 설치가 되어 있지 않아서 영상을 불러오지 못해서 나오는 문제로 이걸 해결하기 위해서는 코덱을 설치 후 프로그램 재 실행하면 해결되는 것을 확인했습니다 MS에서 제공하는 코덱으로 해결해서 해당 파일과 사용 방법을 올립니다 코덱 설치 방법업로드된 압축 파일을 다운로드한다다운로드한 압축파일의 압축을 해제한다powershell을 실행한다 (관리자 권한)cmd창에서 powershell 입력powershell 프롬프트에서 다운로드하여 압축 해제한 폴더로 이동한다cd "T:\Microsoft HEVC Video Ext..

취미/영상편집 2025.04.18

[정보] FPS / GPU / CPU / 지연시간 오버레이 없애기

화면 오른쪽 상단에 갑자기 FPS / GPU / CPU / 지연시간이 표시되는 현상이 발생되었습니다 곰곰이 생각해 보니 어제 그래픽 드라이버를 최신으로 업데이트 후 발생한 문제로 파악되어 NVIDIA 의 새로운 프로그램 검색 NVIDIA Control Panel 프로그램과 NVIDIA App 프로그램을 발견했습니다 그중 NVIDIA App 프로그램을 실행하여 왼쪽 메뉴의 설정탭을 선택 그리고 상단 기능 선택 후 오버레이 메뉴에서 NVIDIA 오버레이를 비 활성화 하니 기능이 비활성화되는 것을 확인했습니다 이렇게 활성화가 되어 있는 설정을 비활성화하니 오버레이 되던 문구가 사라졌습니다 제 글이 도움이 되셨다면 댓글 & 공감 부탁드려요 😀

Application/정보 2025.04.15

[정보] 크롬에서 긁어오기 & 우클릭 제한 해제하기 (자바 스크립트 중지)

특정 블로그나 웹 페이지에서 글을 긁어 가거나 우클릭을 제한하는 곳이 존재합니다 크롬에서 해당 제한을 해제하려면 크롬을 띄우고 해당 페이지로 접근 후 F12 키를 눌러서 개발자 도구를 활성화합니다 이후 상단 오른쪽 톱니 모양을 눌러서 설정으로 들어갑니다  이후 메뉴에서 환경설정을 선택하고 아래로 쭉 내리면 디버거 속성 설정이 나옵니다 해당 내용에서 자바스크립트 사용 중지 설정을 활성화하시면 됩니다  위의 설정값을 체크하시면 기존에 웹 페이지에서 사용하던 자바스크립트 사용을 중지하여 긁어오기나 우클릭이 가능하게 됩니다  제 글이 도움이 되셨다면 댓글 & 공감 부탁드려요 😀

Application/정보 2025.04.07

[MFC] 코드에서 Menu caption(string, text) 변경

MFC 코드상에서 Caption을 변경하려면 아래와 같은 코드를 작성하면 됩니다 // 첫번째 메뉴AfxGetMainWnd()->GetMenu()->ModifyMenu(0, MF_STRING | MF_BYPOSITION, 0, _T("첫번째 메뉴"));// 첫번째 메뉴의 하위 메뉴// ID의 경우 메뉴 리소스의 메뉴 ID를 참조AfxGetMainWnd()->GetMenu()->GetSubMenu(0)->ModifyMenu(0, MF_STRING | MF_BYPOSITION, ID_30001, _T("첫번째 메뉴 하위 첫번째 메뉴"));AfxGetMainWnd()->GetMenu()->GetSubMenu(0)->ModifyMenu(1, MF_STRING | MF_BYPOSITION, ID_30002, _T..

Application/MFC 2025.02.07
728x90
반응형