[C++] 스마트 포인터
·
Study/C++ & C#
이전에 「*」을 사용하는 전통적 포인터 개념을 복습했다. 하지만 요즘의 C++ 프로젝트에선 스마트 포인터가 대세가 된 지 오래. 언리얼 엔진도 소스코드를 들여다보면 스마트 포인터로 가득하다. 정말 중요한 개념이라 할 수 있는 스마트 포인터에 대해 복습해 보자. 1. 스마트 포인터의 필요성 먼저 기존의 포인터를 사용하는 환경을 아래와 같은 코드로 구성했다. #include class Player { public: Player() { std::cout
[C++] 다중 포인터
·
Study/C++ & C#
스마트 포인터로 바로 가려다가 역시 다중 포인터도 빼먹을 수 없다고 생각해 먼저 작성 다중 포인터란? 포인터를 가리키는 포인터를 두고 '다중 포인터'라고 부른다. 겨우 포인터라는 큰 장벽을 넘어왔는데, 더 커다란 무언가가 앞길을 가로막는 느낌이다. 하지만 어렵게 느낄 이유는 없다. 포인터를 잘 이해하고 넘어왔다면 헤매지 않을 것이다. 다중 포인터 선언 포인터에 「 * 」을 하나 더 붙이면 그게 다중 포인터다. // 변수 생성 const char* ch = "BVM"; // 다중 포인터 // pp[&ch] / 8Byte // ch[BVM의 주소] / 8Byte // .rdata [B][V][M][\0] const char** pp = &ch; 일반 포인터 ch를 선언하고 그 주소를 갖고있는 다중 포인터 p..
[C++] 포인터 기초
·
Study/C++ & C#
근래 C++에 대한 감각이 무뎌지는 듯해서 내가 복습하는 내용을 정리할 예정. 포인터란? 포인터(Pointer)는 단적으로 말해 주소를 가리키는(Point) 변수라 할 수 있다. 우리가 늘 보는 마우스 포인터를 생각할 수 있겠다. 마우스 포인터가 아이콘이나 버튼을 가리키듯이 포인터는 주소를 가리킨다. 처음 프로그래밍을 배울 때 포인터가 어려운 이유는 포인터가 완전히 다른 개념이라고 생각하기 때문이다. 포인터를 늘 보던 변수라고 생각하자 포인터에 사용되는 뭔가 특별한 장치가 있는 것이 아니다. 이는 그저 int형 변수가 정수를 갖고 있듯이 주소를 갖고 있다. 단순히 우리가 배울 때 '포인터는 가리키는 것' 이라는 개념에 정신이 팔려서 이해가 잘 되지 않았던 것이다. 포인터가 단순히 변수와 다르지 않다는 것..
[C#, Python] C# 라이브러리를 이용한 discord.py 봇 개발 (2/2)
·
Study/C++ & C#
1번 글에서 예고한 대로 이번 글에서는 앞서 만든 라이브러리와 discord.py를 활용한 봇을 개발에 관한 내용을 기술한다. 파이썬에 C# 라이브러리를 올리기 위해 pythonnet - Python.NET을 사용했다. VS2022로 라이브러리를 테스트하던 중, 자꾸 에러가 나서 닷넷 버전 문제인 것 같아 VS2019에서 4.8 환경에서 빌드 후 테스트 하니 잘 동작했다. 혹시 이 글을 본 사람 중 이런 시도를 할 사람이 있다면 닷넷 4.* 버전을 사용하길 바란다... dll 임포트는 아래와 같은 코드로 할 수 있다. import clr clr.AddReference("kord") from kord import Translator trns = Translator(TR_Cliend_Id, TR_Cliend..
[C#, Python] C# 라이브러리를 이용한 discord.py 봇 개발 (1/2)
·
Study/C++ & C#
예전에 만들었던 한>중>한 번역기를 개선하기로 했다. 하는 김에 디스코드 봇도 개발하기로 결정했다. 사실 예전에 discord.js로 개발하다 도저히 내 맘대로 되지 않아서 방치해 두었기에 그런 실패도 극복해보고 싶었다. 단순히 discord.py를 이용해 봇을 개발한다면 전부 다 파이썬으로 개발해도 된다. 그런데 왠지 C# 으로 만들어놓은 것을 다시 파이썬으로 옮기기 귀찮았고 파이썬 상에서 dll을 활용하는 방법이 공부가 되지 않을까... 생각했다. 이번엔 글을 2 파트로 나눴고, 1에서는 라이브러리 개선사항을, 2에서는 봇 관련 내용으로 채울 예정이다. 기존에 쓰던 바이두 번역 API를 사용할 수 없게 되어서 파파고 API로 교체했다. 사용하기는 확실히 이쪽이 편한 듯. 교체하면서 코드 구조도 살짝 ..
[C#] WPF로 만들어 본 한>중>한 번역기
·
Study/C++ & C#
뭔가 새로 만들어 볼 것을 찾다가 문득 떠올랐다. 콜옵 같은 게임을 하다보면 바이두 번역기로 한국어로 번역해서 잡소리를 하는 중화대협들을 많이 볼 수 있다. 내가 한장 플레이하던 때는 바이두 번역기의 중>한 번역의 성능이 그리 좋지 못했기 때문에, 저 이미지처럼 띄어쓰기가 제대로 안되는 문제가 있었고 그게 재밌는 점이었다. 그런 생각이 들어서 "저걸 웹에 가서 수작업 하긴 귀찮으니 원버튼으로 만들어야지." 하고 만들기로 했다. 처음엔 웹 번역기에 사용되는 요청들을 모방하려고 했는데 뭔가 이상하게 잘 안됐다. 파파고는 잘 됐는데.... 그래서 그냥 바이두에서 제공하는 API를 이용하기로 했다. 예전에 쓸 일이 있어서 만들어 둔 아이디가 있었기 때문에 그 아이디를 사용해서 개발자로 등록했...으면 좋았을텐데..