본문 바로가기

VIsual Studio의 /MP 옵션 (컴파일을 빠르게) VIsual Studio의 /MP 옵션 Visual Studio 2008부터(?) MP(Multiple Processes)옵션을 지원하는데,다수의 프로세스를 사용하여 컴파일을 하여 컴파일을 아주 빠르게 할 수 있다.아래는 [1]에서 퍼온 내용. /MP(여러 프로세스로 빌드)/MP 옵션은 명령줄에서 소스 파일을 컴파일하는 총 시간을 줄일 수 있습니다. /MP 옵션을 사용하면 컴파일러가 자체의 복사본 하나 이상을 각각 개별 프로세스로 만듭니다. 그런 다음 이러한 복사본에서 소스 파일을 동시에 컴파일합니다. 따라서 소스 파일을 빌드하는 총 시간이 상당히 줄 수 있습니다./MP[processMax] 인수processMax(선택적 요소) 컴파일러에서 만들 수 있는 최대 프로세스 수입니다.processMax 인수의.. 더보기
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 =.. 더보기