C/C++ 썸네일형 리스트형 html로 excel 파일 만들때 <br>을 한 셀에 넣기 (멀티라인) html로 excel 파일 만들때 을 한 셀에 넣기 report와 같은 출력물을 만들때 Excel 파일을 사용하기도 한다.C/C++과 같은 프로그래밍을 할때 과 같은 웹 포맷으로 만들고 Excel파일에 붙여넣기 하면 간단히 Excel 파일을 만들 수 있다.즉, border, font, table 등의 모든 포맷을 Excel이 해석하고, 그 결과물을 worksheet에 저장한다. 일단, 기초적인 방법은 뒤로하고,,보통 Excel에서 하나의 셀에 멀티라인을 작성할때, 텍스트를 적고 Alt+Enter를 입력하면 다음 라인을 작성한다.(word wrap를 어렵게 설명했다 ;;)그런데 이게 단순히 태그로는 같은 셀이 아닌 다음 라인의 셀로 넘어간다. 해결책은 다음과 같이 간단하다. 태그안에 아래의 코드를 적어주면.. 더보기 [C++] 포인터 및 배열 초기화 [C++] 포인터 및 배열 초기화 char * msg = new char[65546];C언어에서는, 배열의 모든 값을 초기화하려면 memset를 사용하거나 for문을 돌면서 각각 초기화를 수행한다. 그러나 C++에서는 value-initialization 이라고 알려진, 보다 간단한 방법이 있다.char * msg = new char[65546](); 즉, ()를 추가하는 것이다. 이는 배열/포인터 모두 해당된다. 예를 들면, #include struct Foo { char bar; char baz; char foobar; // the struct is a POD //virtual void a() { bar='b'; } }; int main() { Foo o1; Foo o2 = Foo(); std::cout 더보기 왜 delete는 포인터를 NULL로 만들지 않는가 왜 delete는 포인터를 NULL로 만들지 않는가 C++로 프로그래밍을 하다 보면, 보통 delete 연산 후에 해당 포인터를 NULL로 만들어 줘야 한다.그렇다면, ‘언어차원에서, delete를 했을 때 NULL로 세팅해 줬으면 이런 귀찮은 작업을 피할 수 있는데, 왜 그렇게 하지 않았을까? 일단, c++ 창시자인 스트롭스트룹님이 한 이야기를 보자, [1] delete p;// ...delete p;… 부분에서 p에 관한 아무 작업도 하지 않았다면, C++은 심각한 에러를 낸다. C++은 이에 대해 효율적인 방어수단이 없기 때문이다.pointer를 zero(0 or NULL)로 만드는 것이 나쁜 것은 아니지만, 위의 문제를 해결해 주지는 않는다. delete 연산자가 lvalue(좌변)이 필요 하지 .. 더보기 엑셀에서 숫자를 컬럼명으로 변환하기 엑셀에서 숫자를 컬럼명으로 변환하기 숫자를 엑셀의 영문 컬럼명으로 변환 하는 함수'AAAA'와 같이 4글자 컬럼명까지 변환 가능하다. NumberToExcelColumnbool NumberToExcelColumn(int32 nColumn, int32 nRow, ADT_CHAR* pszColumn){ if (!pszColumn) return false; int32 nZColumn = 26; int32 nZZColumn = 702; //nZColumn + (26 * 26); int32 nZZZColumn = 18278; //nZZColumn + (26 * 26 * 26); int32 nAColumn = 1; int32 nAAColumn = 27; // nZColumn + 1 int32 nAAAColumn =.. 더보기 현재 사용중인 프로세스의 DLL 출력하기 현재 사용중인 프로세스의 DLL 출력하기 현재 시스템에서 사용중인 프로세스의 목록과 해당 프로세스가 사용중인 DLL의 목록을 보여준다. #include #include #include #include // To ensure correct resolution of symbols, add Psapi.lib to TARGETLIBS // and compile with -DPSAPI_VERSION=1 int PrintModules( DWORD processID ) { HMODULE hMods[1024]; HANDLE hProcess; DWORD cbNeeded; unsigned int i; // Print the process identifier. printf( "\nProcess ID: %u\n", proce.. 더보기 [winapi] Windows XP에서의 OpenProcess 에러 Windows XP에서의 OpenProcess 에러 OpenProcess()를 Windows 7 환경에서 컴파일한 후에, Windows XP에서 실행시켰더니,Windows 7에서 잘 돌아가는 프로그램이 XP에서는 OpenProcess()에서 NULL을 리턴해 버리네요 구글링을 해보니, 아래와 같은 버그(?)가 있나 봅니다.결론 먼저 쓰자면, 첫번째 파라미터로 넘겨주는 access 권한을 PROCESS_ALL_ACCESS로 넘기면 안됩니다. msdn에서 OpenProcess의 프로토타입을 보면 아래와 같습니다.HANDLE WINAPI OpenProcess( __in DWORD dwDesiredAccess, __in BOOL bInheritHandle, __in DWORD dwProcessId ); 첫번째 .. 더보기 C/C++ 코드 커버리지 툴 10 10 Code Coverage Tools for C & C++ Code coverage is a measure used in software testing that describes the degree to which the source code of a program has been tested. It a form of white box testing as it is a form of testing that inspects the code directly.Image Source : http://www.zeeteenet.com/images/sw_testing.jpgRecommended Reading:12 Source Code Profilers for C & C++Top 12 Open Source UML .. 더보기 [Google C++ Style Guide] 8. Formatting Google C++ Style Guide 8. Formatting코딩 스타일과 포맷팅은 매우 제멋대로지만, 모든 사람이 같은 스타일을 사용한다면 프로젝트는 보다 쉬워진다. 포맷팅 규칙에 동의하지 않는 사람도 있겠지만, 금방 익숙해질 것이며 모든 사람의 코드를 보고 이해하기 쉽도록 한다. A. Line Length (라인 길이)각 라인은 80자를 넘지 않는다. 이 룰은 논쟁의 여지가 있지만, 기존 코드는 모두 이를 고수하고 있으며, 일관성이 중요하다. 장점 :이 룰을 좋아하는 사람들은 그들의 윈도우 창을 강제로 리사이징하는 것은 무례하고, 더 길 필요가 없다고 주장한다.일부는 다수 코드 윈도우 창을 나란히 세워 사용하기 때문에 윈도우 창을 더 넓히고 싶어하지 않는다. 최대 윈도우창의 가로 사이즈를 고려해서.. 더보기 [Google C++ Style Guide] 7. Comments Google C++ Style Guide 7. Comments (주석)주석은 코드를 가독성 있게 유지시킨다. 다음의 규칙들은 무엇을 작성할지 어디에 작성할지를 기술한다. 주석은 매우 중요하지만, 최선의 코드는 self-documenting이라는 것을 기억해라. 타입과 변수 이름을 센스 있게 지으면 주석으로 설명하는 것보다 훨씬 낫다. A. Comment Style (주석 스타일)// 또는 /* */ 를 사용하며, 일관성 있게 사용한다. // 또는 /* */ 를 사용하지만, //이 더 많이 사용된다.어떻게 사용하고 어떤 스타일로 사용하든지 일관성 있게 사용한다. B. File Comments (파일 주석)각 파일의 시작은 저작권(copyright)을 게시하며, 파일 내용에 대한 설명을 기술한다. Legal.. 더보기 [Google C++ Style Guide] 6. Naming Google C++ Style Guide 6. Naming A. General Naming Rules (일반적인 네이밍 규칙)함수 이름, 변수 이름, 파일 이름은 설명적이어야 한다. 생략을 피한다. 타입과 변수는 명사이며 함수는 ‘명령형’ 동사 이어야 한다. How to Name (이름 짓는 방법)이름은 가능한 설명적으로 짓는다. 공간 절약이 중요한 게 아니라, 코드를 즉시 보고 이해할 수 있어야 한다. 아래 예는 좋은 이름들이다.int num_errors; // Good.int num_completed_connections; // Good. 모호한 약어나 의미를 알 수 없는 임의의 문자를 사용하지 않는다.int n; // Bad – 의미 없음int nerr; // Bad – 모호한 약어int n_com.. 더보기 이전 1 2 3 4 5 6 7 8 다음