Computer/Programming
-
printing __int64 (DWORD64) in hex (Visual C++)Computer/Programming 2011. 12. 27. 10:53
DWORD64 n64 = 0x123456789ABCDEF; _tprintf(TEXT("%016I64X %s\n"), n64) 그냥 printf 하면 문제가 생기므로 X 앞에 I64를 붙여 주어야 한다. DWORD64 n64 = 0x123456789ABCDEF; _tprintf(TEXT("%I64d %s\n"), n64) 10진수로 할 때도 마찬가지로 d 앞에 IA64를 붙인다.
-
Visual C++ 실행파일 실행 후 종료시까지 기다리기Computer/Programming 2011. 7. 11. 14:11
Project 두 개를 합치고 싶기는 하지만, 이름이 충돌해서 합치는 것이 곤란하다. 그래서 분리된 실행 파일로 놓고 한 실행 파일에서 다른 실행 파일을 호출하고 끝날 때까지 기다리도록 했다. STARTUPINFO si; PROCESS_INFORMATION pi; ZeroMemory( &si, sizeof(si) ); si.cb = sizeof(si); ZeroMemory( &pi, sizeof(pi) ); if( !CreateProcess( NULL, // No module name (use command line) "c:\\Temp\\Optimizer.exe", // Command line NULL, // Process handle not inheritable NULL, // Thread handle..
-
stl::map에서 updateComputer/Programming 2011. 6. 29. 10:45
stl::map에 에서 이미 존재하는 항목을 update하기 위해서는 다음과 같이 사용한다. #include #include void main() { std::map test1; test1[0] = 1; test1[1] = 2; test1[1] = 3; for (auto it = test1.begin(); it != test1.end(); it++) { printf("%d %d\n", it->first, it->second); } } 배열에 값을 할당하듯 사용하면 해당되는 key 값이 없으면 map에 새로 추가되고, 해당되는 key 값이 없으면 map에 있는 해당 항목 값이 변경된다. 그런데 stl::map 구조를 pointer로 선언했을 때는 배열 사용하듯 할 수가 없고 값의 변경을 위한 함수가 따로 ..
-
visual c++ 에서 std::string에서 formatted string을 찍어주기 위한 코드Computer/Programming 2011. 6. 21. 18:22
formatstdsting.h #include #include std::string format(const char *fmt, ...); std::string format_arg_list(const char *fmt, va_list args); formatstdstring.cpp #include "formatstdstring.h" #pragma warning(disable:4996) std::string format(const char *fmt, ...) { va_list args; va_start(args, fmt); std::string s = format_arg_list(fmt, args); va_end(args); return s; } std::string format_arg_list(const ..