🧼C, C++86

c++17 | r-value를 l-value로 바꾸는 방법 안녕하세요! 이번에는 r-value를 l-value로 바꾸는 방법에 관하여 알아보겠습니다. 저가 이번에 그래픽공부를 하면서 진짜~~!! 엄청 많이 마주친 오류... 흠... 이 오류는 l-value가 있어야 할 자리에 r-value가 존재하기 때문이죠. l-value는 고유의 메모리주소를 참조할 수 있으며, r-value로도 치환이 가능하지만, 반대로 r-value는 불가능하죠... 그래서 생기는 문제입니다. 저는 이 문제를 그냥 고유의 메모리주소를 할당해주어 인스턴스 하나만들어가면서 고치고있었는데, 매번~ 이 오류뜰때마다 인스턴스만들기도 뭣하고.... "뭐 간단하게 바꿀수있는법 없나?" 라고 생각하면서 스택오버플로우를 탐방해보았습니다. 그리고.. 발견!! 이 방법이 진짜 간단해요. https://sta.. 2022. 1. 30.
윈도우 애플리케이션에서 콘솔 사용하는 법 윈도우 애플리케이션에서 콘솔 사용하는 법 오늘 게임엔진 공부하는데 하드웨어어댑터를 콘솔로 출력하고 싶어서 찾아봤는데, 이러한 내용이 있더라구요. https://stackoverflow.com/questions/587767/how-to-output-to-the-console-in-c-windows How to output to the console in C++/Windows When using iostream in C++ on Linux, it displays the program output in the terminal, but in Windows, it just saves the output to a stdout.txt file. How can I, in Windows, make the output a.. 2021. 12. 28.
주석(Comment) 강박증이 생겼다... 최근에 주석(Comment) 강박증이 생겼다... 뭔가 나만의 깔끔하고 독창적인 주석체계를 만들고싶다. 내가 최근에 아이디어를 내서 쓰고있는 주석문인데, 보기 되게 좋고 코드도 깔끔하게 보인다. 근데, 그냥 이렇게만 사용하면 안될것같다. 뭔가 설명, 함수파라미터, 클래스, 네임스페이스, 사용법 등등도 옵션처럼 주석에 끼워넣고싶다. 흠.... 이것도 연구해봐야겠다. 2021. 12. 25.
c/c++ 메일 전송(smtp프로토콜) | 이론과 실습 🎄 개요 안녕하세요! 오랜만에 c++ 네트워크글이 돌아왔습니다... 이번에는 저가 엄청나게 유익한 내용을 들고왔는데요.. 흔히 여러분들중에서 키로거사용경험이 있으신분들은 smtp를 이용한 메일전송을 많이보셨을겁니다. 이번 포스팅에서는 c++환경에서 아무 상용라이브러리의 도움없이 smtp프로토콜을 이용하여, 메일을 전송하는 방법에 관하여 토론하는 시간을 가져보도록 하겠습니다. 🎄 목차 - SMTP 프로토콜이란? - SMTP 프로토콜의 내부구조 - 구글의 SMTP 서버 이용하기 - C++20을 이용한 메일전송 프로그램 만들기 (Unauthorized id[:비검증된 계정]) - 나만의 SMTP 서버 만들기 - C++20을 이용한 메일전송 프로그램 만들기 (Authorized id[:검증된 계정]) - 마치며.. 2021. 12. 25.
[C++/MSVC] 디버깅(Debugging) 강좌 (메모리 누수 방지) 해당강좌는 미완성강좌입니다. 완성될때까지 북마크하고 기다려주세요! 디버깅(Debugging) 강좌 안녕하세요! 이번 포스팅에서는 MSVC컴파일러에서 지원하는 디버깅 기능을 적극적으로 이용하여 저희가 직접 메모리에서 생겨나는 누수들을 탐지하고 디버그하는 내용을 알려드리겠습니다! 우선 시작하기 앞서서 목차를 확인하고 가시죠! 목차 1-1. Visual Studio 2022 Current (v143) 디버그 하는방법 1-2. 메모리 누수가 위험한 이유 2-1. _CrtDumpMemoryLeaks : 메모리누수를 방지하는 간단한 방법 2-2. _CrtSetReportMode : 메모리누수 보고를 설정하는 방법 2-3. 메모리누수를 탐지하고 통지하는 기능 만들기 2-4. MyCheckMemoryLeaks 클래스 .. 2021. 11. 25.
[임시중단] C++ UI/그래픽스 | 0. 시작하기및 윈도우생성 (GDI+무료강좌) 해당 포스팅은 임시중단되었습니다. 간단한 이유이지만 더욱 더 높은 퀄리티와 친절한 설명으로 돌아오겠습니다. 감사합니다! 안녕하세요! 원래는 UI/그래픽스시리즈는 파이썬으로만 진행할려고했는데, 국내자료중에서 c++ GDI+ 무료로 되어있는 관련자료가 찾아보니까 거의 안보이기도하고, 이렇게 된김에 유튜브에서도 GDI+강좌 진행중이니까, 블로그에서는 읽기형식의 자료형태로써 같이 사용해보겠습니다. 파이썬 UI/그래픽스는 해당 링크로 들어가시면 됩니다. 파이썬 UI/그래픽스 | 0. 라이브러리 설치및 시작하기 그래픽(Graphic)은 그리스어 낱말 γραφικός (그라피아)에서 온 것으로, 상품화, 정보 제공, 일러스트레이트, 엔터테인먼트를 위한, 벽, 캔버스, 컴퓨터 화면, 종이, 돌과 같은 어떠한 표면에 m.. 2021. 11. 1.
배열의 차원을 구하는 방법 C++ (강화버전) 안녕하세요!! 이번에는 저번에 배열의 차원의 찻수를 구하는 방법에 관하여 포스팅했습니다. 몇시간 더 삽질하면서, "벡터에 클래스가 들어와도 정상적으로 작동시킬수 없을까?"라는 생각이 들어서 강화버전을 준비했습니다. https://mawile.tistory.com/206 배열의 차원을 구하는 방법 C++ 우리는 흔히 배열의 크기를 구하고는 합니다. 예를들어서 이런식으로 말이죠.. int main() { int arr[5]; int size = sizeof(arr) / sizeof(arr[0]); } 하지만 ... 만약 아래 코드와 같은 5차원 배열이 존재할때,.. mawile.tistory.com 이번에는 저번에 만들었던 로직을 살짝수정하여 좀더 강력하게, 클래스가 와도 정상작동되게 수정했죠...훗.. #.. 2021. 10. 12.
배열의 차원을 구하는 방법 C++ [ 강화버전 ] https://mawile.tistory.com/207 배열의 차원을 구하는 방법 C++ (강화버전) 안녕하세요!! 이번에는 저번에 배열의 차원의 찻수를 구하는 방법에 관하여 포스팅했습니다. 몇시간 더 삽질하면서, "벡터에 클래스가 들어와도 정상적으로 작동시킬수 없을까?"라는 생각이 들 mawile.tistory.com 우리는 흔히 배열의 크기를 구하고는 합니다. 예를들어서 이런식으로 말이죠.. int main() { int arr[5]; int size = sizeof(arr) / sizeof(arr[0]); } 하지만 ... 만약 아래 코드와 같은 5차원 배열이 존재할때, 이 배열의 찻수인 "5"를 프로그램에게 알리려면... 즉, n차원 배열이 있다고할때, 프로그램에게 그 n차원 배열.. 2021. 10. 11.
이벤트 제어 c/c++ 다중 스레드환경에서 가끔 코루틴처럼 특정이벤트가 발생해야만 함수가 실행되는방법에 관하여 찾고계신가요..? velog에다가 다중스레드 환경에서 이벤트를 제어하는 여러가지 방법에 관하여 포스팅해놓았습니다. 참고해두셨으면 좋겠습니다. https://velog.io/@dpmawile/EventHandling 이벤트 제어 c/c++ 다중스레드환경에서 이벤트제어에 관한 여러가지 방법입니다. velog.io 2021. 9. 10.
IOCP 에코 서버-클라이언트 C++ (CompletionQueue) 오랜만에 네트워크관련글을 쓰게되었습니다. 사실 반년전에는 네트워크관련글을 열심히올리다가, 대부분 알고리즘&게임엔진에 대한 글을 많이쓰게되었습니다. 그리고, 현재.. TCP/IP IOCP 에코서버&클라이언트에 대한 글을 쓰게되네요. ✨ 다운로드 https://github.com/orangelie/IOCP-Echo GitHub - orangelie/IOCP-Echo: WSA IOCP Tcp/ip Echo Server on C++17 WSA IOCP Tcp/ip Echo Server on C++17. Contribute to orangelie/IOCP-Echo development by creating an account on GitHub. github.com 🔮 클라이언트를 특정할 수 있습니다. /** @s.. 2021. 9. 8.
소수점 반올림하는법 c++ 예를들어서, "0.00457"라는 수를 0.00460으로 반올림하고싶다. 그러면은 c++에서는 어떻게 해야할까..? 답은 간단하다. #include int main() { float fl = 0.00457f; std::cout 2021. 8. 14.
윈도우 콘솔디버깅 ( C++ / 20 ) 개발환경 >> Visual Studio 2022 Preview 언어 >> C++20에서 정상작동확인 운영체제 >> Windows10 home 안녕하세요!! 혹시 윈도우 애플리케이션 개발해보신분들중에서, 도중에 변수값을 확인하고싶은데 확인하는부분을 따로 만들기 귀찮으신분계신가요?? 윈도우 애플리케이션개발을 하다보면, 콘솔과는다르게 문자열값이 아닌값을 확인하려면 귀찮게 그부분도 따로 구현했어야됩니다.. 이번에는 윈도우 애플리케이션환경에서 콘솔환경에서의 디버깅을 쉽게 하도록하는 라이브러리를 만들었습니다. 솔직히 디버깅이라는거는 그냥 부주제로 써본것이고, 윈도우애플레케이션환경에서도 콘솔에다가 c++ 스탠다드 라이브러리인 iostream에 포함된 std::cout을 마음껏 사용할수있는 라이브러리를 만들어왔습니다... 2021. 7. 4.
가변인자 프린트함수 ( c++23 ) 개발환경 >> Devcpp 언어 >> C++23 운영체제 >> Windows10 home 안녕하세요! 이번에 c++에서 새로나온 문법 concept아시나요?? 이번에 이것에 대해서 공부해보기위해서 만들어본 카테고리입니다. 그것과 동시에 SFINAE도 동시에 병행해서 공부해보려합니다. 그러면 오늘은 이를 이용한 가변인자 프린트함수 만들기 참고자료를 통해서 바로 공부시작해보겠습니다! 우선은 concept에 대한 기본적인 문법은 알고있으시다는 전제하에 진행하겠습니다. 소스코드 #include #include template concept IsAnyOf = (std::same_as || ...); template concept IsPrintable = std::integral || std::floating_po.. 2021. 6. 23.
Devcpp에서 c++23 사용하기 Devcppで c++23を 使用する Using c++23 with Devcpp 안녕하세요!! devcpp에서 c++23을 사용하는방법을 알려드리겠습니다. 우선은 이방법으로 2020년도에 정식으로출시된 c++20또한 사용가능합니다! 바로가시죠! gcc 다운로드 https://winlibs.com/ WinLibs - GCC+MinGW-w64 compiler for Windows WinLibs standalone build of GCC and MinGW-w64 for Windows Jump to: Download | How to use from Windows Command Prompt | How to use from Code::Blocks | Philosophy What is it? In short: it's a free C and C++ compiler for Microsoft Win.. 2021. 6. 20.
우주선 연산자 '<=>' 사용법 ( C++20 ) 개발환경 >> Visual Studio 2022 언어 >> C++20 운영체제 >> Windows10 안녕하세요!! 이번에 C++20에서 새로나온 연산자인 "" 이 연산자에 대한 설명과 사용법을 적어보겠습니다! 우선은 이 연산자의 정식명칭은 "SpaceShip (Three-way Comparison) operator"라고 합니다. 해석하자면 "우주선 연산자"입니다. 이 연산자는 (a b) 라고 주어졌을때, a와 b가 같은지, 다른지, a가큰지 b가 작은지등등 값의 대소와 값비교를 한번에 다 해버릴수가있습니다. 그리고 반환값이 좀 특이한데, 반환하는 녀석은 이녀석입니다. struct strong_ordering { static const strong_ordering less; static const str.. 2021. 6. 19.