목록프로그래밍 (29)
cyphen156

namespace _25._04._01_Divide_conquer{ internal class Program { static void Main(string[] args) { string str1 = "Hello"; string str2 = "Hello"; if (str1 == str2) { Console.WriteLine(); } string str3 = str1; } }}만약 다음과 같은 코드가 있다고 생각해보자str1과 str2의 주소는 서로 다르지만 값은 같은 것을 가리키고 있다. 그리고 이 문자열 "H..

C#에는 Enumerator라는 반복자가 있다.의미는 InterFace Enum Iterator를 의미한다.https://learn.microsoft.com/ko-kr/dotnet/api/system.collections.ienumerator?view=net-8.0 IEnumerator 인터페이스 (System.Collections)제네릭이 아닌 컬렉션에 대한 간단한 반복을 지원합니다.learn.microsoft.com왜 쓰는가 하면 foreach라는 구문을 통해 반복 작업을 하고 싶은데 제네릭이 아닌 타입에 대해서도 반복자 지원을 받기 위해 사용하는 인터페이스이다.public IEnumerator GetEnumerator() 함수를 통해 반복자 객체를 반환할 수 있게 하며 인터페이스를 통해 상속을 구현..

비주얼 스튜디오에서는 미리 컴파일된 헤더라는 옵션을 제공한다. 이 옵션은 프로젝트 속성 - c/c++ - 미리컴파일된 헤더 옵션에서 설정이 가능하다.예전에는 stdafx라는 이름으로 제공하던 사용자 정의 헤더였지만 최근에는 그냥 축약어로 Pre-Compiled-Header(pch)라는 이름으로 사용된다고 한다.미리 컴파일된 헤더에서는 자주 사용되는 iostream, windows.h, ctypes.h와 같은 STL라이브러리 등을 포함시켜 다른 파일들에 일일이 헤더를 추가하지 않을 수 있도록 연결된 헤더를 미리포함시켜 생산성을 높이고, 디버깅시 미리 컴파일된 헤더 파일은 빌드 과정에서 새로 연산하지 않고, 이전 연산결과를 그대로 사용해 디버깅 시간을 줄여준다. pch.h#pragma once#include..

GDI는 화면에 무엇인가를 보여주기 위해 사용되는 하드웨어에 의존하지 않는 가상 그래픽장치 인터페이스로, 2D그래픽을 처리한다.wingui.h함수 안에 존재하는데 windows.h안에 기본적으로 포함되어 있으므로 따로 호출할 필요가 없다.DC(Device Context)윈도우 클라이언트 영역에서 그리기 정보를 의미한다. HDC라는 핸들을 통해 운영체제가 자원을 직접 관리하고 있으므로 호출 했다면 반드시 반납해야 하는 메모리 관리가 필요하다.다음과 같이 WndProc함수 안에 DC함수 사용이 존재한다. case WM_PAINT: { PAINTSTRUCT ps; HDC hdc = BeginPaint(hWnd, &ps); // TODO: 여기에 hdc를 사용하는 그리..

백준과 같이 간단한 소스코드 파일 한개로 디버깅 해도 될 규모의 작은 프로젝트를 일일이 비주얼 스튜디오로 개발하는게 상당히 귀찮기도 하고 비주얼 코드에 익숙한 유저들을 위한 글이다.우선 VS Code에서 C/C++소스 코드를 디버깅하려면 VS Code 내에서 Extension C/C++(필수)와 Visual Studio (20XX) | GCC/G++ | MinGW중 하나가 필요한데나는 Windows 64bit 운영체제, Visual Studio 2022가 설치되어 있으므로 해당 환경에 대한 추가작업을 진행하겠다. 1. VS Code내에서 다음 Extension을 설치한다.2. Visual Studio installer를 켜고 자신의 VS 20XX버전을 선택 - 수정을 들어가 C++을 사용한 데스크톱 개발..

윈도우즈 운영체제는 문자 집합을 사용할 때 두가지의 방식을 사용한다.하나는 Multi Byte Character Set이며 다른 하나는 UniCode Character Set이다. 이전까지는 문자 변수를 사용할 때 영어로만 사용했기 때문에 이 두 문자 집합에 대해 생각하지 않고 그냥 사용했지만 앞으로 만들 프로그램에서는 한글 입력, 출력 등을 필요로 하기 때문에 두 문자 집합에 대한 차이를 분명하게 인식하고 사용해야 한다. Multi Byte Character Set영어는 1바이트 아스키 코드를, 다른 국가 언어(한국어, 중국어 등)의 언어는 2바이트 이상의 메모를 사용하여 완성형 코드를 사용하는 방법. 필요한 경우에만 2바이트 문자열을 사용하기 때문에 메모리 효율성이 좋지만 문자를 처리할 때 복잡성이 ..

취업전 코드 활용 재활 겸 다 까먹은 윈도우즈 32API 복습용 글쓰기 윈도우즈 32 API는 마이크로 소프트에서 Windows 운영체제를 위한 타겟플랫폼 개발을 지원하기 위해 만든 API이자 SDK이다.프로젝트의 생성은 다음 스크린샷을 따라 생성하면 된다.맨 처음 프로젝트를 생성하고 나면 확인해 볼 것은 딱 3개다. 1. 프로그램의 메인 시작점인 Win32API.cpp2. 프로젝트 내의 리소스들을 관리하는 Resource.h와 Resoruce.rc3. 프로그램이 빌드되었을 때 표시될 아이콘인 Winc32API.ico와 small.icoWin32API.cpp프로젝트명.cpp파일로 프로그램의 메인 진입점이 된다. React에서의 app.js/index.js에 해당하는 파일이다.처음 메인파일을 열어보면 뭔가..

C#의 역사에 대한 모든 사항은 MS에서 제공하고 있습니다. C#의 역사 - C# 가이드 - C# | Microsoft Learn C#의 역사 - C# 가이드 - C# 이 언어의 초창기 버전은 어떤 모습이었으며 이후 어떻게 변했는가? learn.microsoft.com 이 글에서는 일부 기능과 핵심 변경사항에 대해서만 서술합니다. C# 1.0 Delegate: C#에서 delegate는 메서드에 대한 참조를 저장할 수 있는 타입입니다. 다른 언어의 함수 포인터와 유사하지만, 타입 안전성과 객체 지향적 특성을 갖는다. 사용법 (//뒤의 내용은 사용자 지정인수이다.) delegate //return_type //function_Name (//props); 예제 코드를 보면 publisher에는 TestMet..