본문 바로가기

Programming

서버 간단한 tcp 통신 server 포트는 알아서 정해주자 while 문안에서 ns.Read 는 클라이언트에서 데이타를 보내줄때까지 대기한다. 클라이언트에서 데이타가 오면 온 데이타를 출력후 다시 대기 using System; using System.Net; using System.Net.Sockets; using System.Text; using static System.Console; namespace Server { class Program { static int port = 7000; static void Main(string[] args) { WriteLine("Starting Server"); TcpListener server = new TcpListener(IPAddress.Any, port); server.Sta.. 더보기
비쥬얼 스튜디오 디버깅 팁( Visual Studio Debugging Tips ) 출처 http://kindtis.tistory.com/518 스코프를 벗어난 객체 주시하기디버깅을 하다 보면 스코프를 벗어난 객체를 계속 주시하고 싶을 때가 있습니다. 하지만 비쥬얼 스튜디오의 조사식 창(Watch Window)에서는 입력한 객체가 스코프를 벗어나면 비활성화가 되어 더이상 값을 확인 할수 없게 되어버리죠. 이 때, 조사식에 주시 하고픈 객체의 포인터를 입력하면, 해당 객체가 스코프를 벗어났더라도 (해당 객체가 살아 있다면) 지속적으로 값을 확인할 수 있습니다. 위 코드를 보면 mHyuna 객체는 이미 스코프를 벗어나 조사식 창에서 비활성화가 되었지만, (CHyuna*)0x0031fe2c 식으로 직접 객체의 주소를 참조하여 스코프를 벗어난 객체의 값을 확인할 수 있습니다. 배열값 확인간혹 .. 더보기
error C2061: 구문 오류 : 식별자 '__RPC__out_xcount_part' error C2061: 구문 오류 : 식별자 '__RPC__out_xcount_part'이런 종류의 에러를 뿜어 낸다면VC++ 디렉터리 -> 포함 디렉터리에 밑에 꺼 내지는 각자 컴에 Microsoft SDKs\Windows 에 v6.0A 등등의 버전으로 추가시키면 된다예> C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include 더보기
win32 프로젝트에서 콘솔창(dos) 띄우기 헤더 설정하고#include // 도스창 띄움AllocConsole();freopen( "CONOUT$", "wt", stdout); 끝! 더보기
error LNK2019 망할 에러!!링커 / 입력 / 추가 종속성에서 추가 시켜야될 dx 용 lib dxerr9.lib;dxguid.lib;d3dx9d.lib;d3d9.lib;winmm.lib;으 빼먹지 좀 말자 ㄷㄷㄷ 쿨럭;; 더보기
try – catch, throw -예외처리- try – catch, throw 지금까지 알면서도 사용하지 않았던 try -catch문... 꼭 사용할 이유없이 if문등으로 예외처리는 가능하지만 보다 명확하고 명시적으로 코드를 보여주기위해선 꼭 필요하다는 사실이 요즘 들어 느끼게 되어 다시 "게임개발자를 위한 C++ 책"에서 그 내용을 찾아 정리해본다. 프로그램 코드에서 예외가 발생할 것 같은 부분은 특정한 몇 곳이다. 즉, 코드의 일부 – 예를 들면 5% - 에서만 예외 처리를 수행할지도 모른다. 이러한 부분이 문법적으로 명시된다면 프로그램을 유지 보수하는데 많은 이득이 있을 것이다. 즉 if문으로 예외처리가능하지만 구지 try catch문 안에 넣은 이유가 바로 문법적인 명시때문이다.! void main() { int i=5, j=2.. 더보기
Effective C++ 정리글(펌) Effective C++ Scott Meyers 저 연승훈, 표광준 역 Eclipse(김주현) 정리 ※ C에서 C++로의 전환 1. #define 보다는 const와 inline을 사용한다. 전처리기보다는 컴파을러를 선호한다. 전처리기에서 처리되는 내용은 디버깅시, 컴파일러가 알고있는 내용이 아니기 때문에 전처리기를 이용한 심볼이 들어간 자리에서 에러가 나게 되면 알아차리기 어렵다. 전처리기를 이용한 메크로의 사용은(Ex. #define max(a, b) ? ((a) : (b)) ) 올바르게 사용하였을 경우에도 오류(Ex. Max(++a, b); 의 경우 a의 값이 두번 증가하게 된다.)가 생길 가능성이 있다. 이 경우는 inline함수를 이용해서 사용하는 것이 좀 더 효율적이다. (Ex. Inline .. 더보기
비트 연산자 0. 비트 연산 n 비트 연산은 객체 상태를 추적하기 위해서 플래그를 설정할 때 유용하게 사용된다. n 모든 비트는 8비트를 가지고 있고 따라서 4바이트의 길이는 32비트의 독립된 플래그를 가질 수 있다 비트는 그 값이 1이면 설정되었다라고 하고 0이 되면 설정되지 않았다 할 수도 있다. n C++에서 각각의 비트에 작용하는 비트 연산자를 제공을 한다. 이는 논리 연산자와 비슷해 보이지만 다르다. 비트 연산자는 아래 표와 같다. 기호 연산자 & | ^ ~ AND OR 배타적인 OR 보수(Complement) n 비트 연산자 AND AND(&) 연산자는 논리 연산자(&&)와 달리 ‘&’가 한 개가 쓰인다. 두 개의 비트를 AND를 하면, 만일 두 개의 비트가 다 1이면 1이고 나머지는 0이된다. n 비트 .. 더보기
namespace Declaration #include namespace Game { int SelfMul(int nA) { return nA * nA; } } namespace Myth { float SQRT(int nA) { return sqrt(nA); } } int main() { Game::SelfMul(5); Myth::SQRT(5); return 0; } 이름이나 사용처가 헷갈릴 함수에 이름을 붙여 준다. 그리고, cout, cin, endl 을 사용할 때 신표준에 맞춰서 std::cout, std::cin, std::endl 으로 작업을 하였는데 불편함이 존재 합니다. 계속해서 std:: 를 적어주어야 하기 때문인데 using namespace Game; 라고 선언하면 Game:: 을 붙일 필요가 없어집니다. using Game.. 더보기
timeGetTime & GetTickCount timeGetTime The timeGetTime function retrieves the system time, in milliseconds. The system time is the time elapsed since Windows was started.DWORD timeGetTime(VOID); Parameters This function does not take parameters. Return Values Returns the system time, in milliseconds. GetTickCount The GetTickCount function retrieves the number of milliseconds that have elapsed since the system was started... 더보기