PL/C++(108)
-
C# 스레드 안에서 타이머 동작시키기
기본적으로 Tick 이벤트로 동작하면서 기본적으로 사용하는 Timer는 빨간색인 System.Window.Forms에 있는 것이다. 하지만 문서를 찾아보면 System.Window.Forms.Timer는 싱글스레드에서만 지원이 된다. 따라서 멀티스레드에서 동작시키려면 반드시 주황색인 System.Timers를 사용해야만 한다 Tick 함수는 System.Timers에서는 Timer_Elapsed 이벤트 함수로 대체된다
2019.09.05 -
system("cls") 떨림 현상 줄이는 방법
윈도우에서의 Console 제어 라이브러리는 대체적으로 느린 편이다. 사용자가 굳이 하지 않아도 될 불필요한 기능들이 포함되어 있기 때문이다. 해외에서 이를 줄이고자 따로 cls 함수를 만들어서 제공하고 있다 [참고] https://docs.microsoft.com/en-us/windows/console/clearing-the-screen
2019.09.03 -
C# 네임스페이스와 열거형
C#에서의 네임스페이스는 기능의 이름 중복을 피하기 위한 공간으로써 C++에서의 네임스페이스와 기능이 유사하다. 네임스페이스를 이용해 동일한 이름의 클래스를 분리된 공간에서 사용할 수 있다. enum 열거형 변수와 C에서와 유사하게 쓸 수 있으며 특별한 번호 할당이 없으면, 0부터 시작한다
2019.09.03 -
네트워크 오목 게임 구현하기
혼자하는 오목게임을 구현함으로써 전체적인 틀을 구성했다. 여기에 네트워크 Winsock을 추가해서 두 명의 플레이어가 게임을 하도록 만들어볼 것이다 먼저 메뉴 폼에서 멀티게임 버튼과 새로운 멀티플레이 창이 열릴 수 있도록 새로운 폼을 생성하도록 한다 Single_Button 클릭과 마찬가지로 메뉴 폼에서 창 이동에 대한 코드를 똑같이 작성한다. 이동하는 폼에 대한 객체만 변경하면 된다 private void Multi_Button_Click(object sender, EventArgs e) { Hide(); MultiPlay sp = new MultiPlay(); sp.FormClosed += new FormClosedEventHandler(Form_Closed); sp.Show(); } 그리고 Mult..
2019.09.02 -
C++에서의 string token
c++에서는 애석하게도 string token을 지원하지 않는다. c에서 사용했던 strtok를 사용할 수 있지만 string 클래스에서 getline을 이용해 구분해보려고 한다. getline은 default로 '\n' 개행을 delimeter로 받지만, 세번째 인자에 따로 사용자가 명시한다면 그 문자를 delimeter로 사용한다. 참고로 자르고 난 반환값은 delimeter는 포함하지 않는다 #include #include #include using namespace std; int main(void) { ios_base::sync_with_stdio(false); cin.tie(nullptr); string input = "Hello World My World!"; istringstream f(i..
2019.09.02 -
memset과 ZeroMemory
둘 모두 어셈블리 코드를 보면 똑같다. 다만 ZeroMemory는 윈도우 프로그래밍에서 자주 쓰이는 초기화 함수다. memset은 원하는 1바이트 숫자로 바꿀 수 있지만 ZeroMemory는 이름에서 알 수 있듯이 0으로만 초기화를 해준다
2019.09.02