int iNum = 1;
std::stringstream strTemp;
strTemp << "Test"; 
strTemp << std::setw(3) << std::setfill('0') << iNum;

=> strTemp는 "Test001"이 된다. 

'Programming > STL' 카테고리의 다른 글

list sort  (0) 2011.01.25
블로그 이미지

영스파파

3D 세상을 만들기 위한 프로그래밍 정보들을 정리하는 공간

,

MemoryLeak.h

#ifndef _MEMORYLEAK_H_  

#define _MEMORYLEAK_H_  

  

#ifdef _DEBUG  

#define _CRTDBG_MAP_ALLOC  

#include <crtdbg.h>  

#define new new(_NORMAL_BLOCK, __FILE__, __LINE__)  

static class MemoryMng  

{  

public:  

    MemoryMng() {   

        _CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);  

    }  

    ~MemoryMng() {   

    _ASSERTE( _CrtCheckMemory( ) );  

    }  

  

  

} MemoryLeak;  

#endif      // _DEBUG  

#endif      // _MEMORYLEAK_H_  


CrtDbgRoutine.cpp

#include "stdafx.h"

#include "MemoryLeak.h"


int _tmain(int argc, _TCHAR* argv[])

{

_CrtMemState ms;


for(int i = 0; i < 100; ++i)

{

int* p = new int;

}


//_CrtSetBreakAlloc(202); // 힙에 202번째로 메모리 할당을 요청하는 코드에서 브레이크

_CrtMemCheckpoint(&ms); // ms에 메모리 상태 저장


for(int i = 0; i < 200; ++i)

{

int* p = new int;

}


_CrtMemDumpAllObjectsSince(&ms); // ms에 저장된 메모리와 비교해서 누수된 메모리 리포트

_CrtDbgBreak();


return 0;

}



_CrtMemCheckpoint() 함수부터 _CrtMemDumpAllObjectsSince() 함수가 있는 부분까지 누수된 부분이 다음과 같이 표시된다.

.................................................................
d:\work\ogre\crtdbgroutine\crtdbgroutine.cpp(22) : {209} normal block at 0x00375D90, 4 bytes long.

 Data: <    > CD CD CD CD 

d:\work\ogre\crtdbgroutine\crtdbgroutine.cpp(22) : {208} normal block at 0x00375D50, 4 bytes long.

 Data: <    > CD CD CD CD 

d:\work\ogre\crtdbgroutine\crtdbgroutine.cpp(22) : {207} normal block at 0x00375D10, 4 bytes long.

 Data: <    > CD CD CD CD 

d:\work\ogre\crtdbgroutine\crtdbgroutine.cpp(22) : {206} normal block at 0x00375CD0, 4 bytes long.

 Data: <    > CD CD CD CD 

d:\work\ogre\crtdbgroutine\crtdbgroutine.cpp(22) : {205} normal block at 0x00375C90, 4 bytes long.

 Data: <    > CD CD CD CD 

d:\work\ogre\crtdbgroutine\crtdbgroutine.cpp(22) : {204} normal block at 0x00375C50, 4 bytes long.

 Data: <    > CD CD CD CD 

d:\work\ogre\crtdbgroutine\crtdbgroutine.cpp(22) : {203} normal block at 0x00375C10, 4 bytes long.

 Data: <    > CD CD CD CD 

d:\work\ogre\crtdbgroutine\crtdbgroutine.cpp(22) : {202} normal block at 0x00375BD0, 4 bytes long.

 Data: <    > CD CD CD CD 

Object dump complete.

CrtDbgRoutine.exe이(가) 중단점을 트리거했습니다.


위의 누수된 부분을 더블클릭하면 그 코드로 이동한다.

블로그 이미지

영스파파

3D 세상을 만들기 위한 프로그래밍 정보들을 정리하는 공간

,

char szTemp[100];

조사식에 "szTemp, su"라고 치면 utf16 스트링으로 볼 수 있고, 
"szTemp, s8"이라고 치면 utf8 스트링으로 볼 수 있다.

참고 페이지
참고 페이지



블로그 이미지

영스파파

3D 세상을 만들기 위한 프로그래밍 정보들을 정리하는 공간

,

도구 -> 옵션 -> 프로젝트 및 솔루션 -> 일반 -> 솔루션 탐색기에서 활성화된 항목 추적

 
블로그 이미지

영스파파

3D 세상을 만들기 위한 프로그래밍 정보들을 정리하는 공간

,


텍스트를 모두 대문자로 변환하려면 대문자로를 선택하거나 Ctrl+Shift+U를 누릅니다.

— 또는 —

텍스트를 모두 소문자로 변환하려면 소문자로를 선택하거나 Ctrl+U를 누릅니다.


참고 페이지

블로그 이미지

영스파파

3D 세상을 만들기 위한 프로그래밍 정보들을 정리하는 공간

,

#pragma init_seg( {compiler | lib | user | "섹션이름"[, 함수이름]} )

파일 스코프에 선언된 정적 객체가 생성, 소멸되는 시점을 설정한다.
한 소스코드에서는 하나의 #pragma init_seg()만 사용할 수 있다.

//CA.cpp


class CA

{

int a;

int b;


public:

CA();

~CA();

};


CA::CA()

{

a = 10;

b = 10;

}


CA::~CA()

{

a = 10;

b = 10;

}


#pragma init_seg(lib)


CA ca;




//CB.cpp


class CB

{

int a;

int b;


public:

CB();

~CB();

};


CB::CB()

{

a = 10;

b = 10;

}


CB::~CB()

{

a = 10;

b = 10;

}


#pragma init_seg(compiler)


CB cb;




//CC.cpp


class CC

{

int a;

int b;


public:

CC();

~CC();

};


CC::CC()

{

a = 10;

b = 10;

}


CC::~CC()

{

a = 10;

b = 10;

}


#pragma init_seg(user)


CC cc;




CB -> CA -> CC 순으로 생성.
CC -> CA -> CB 순으로 소멸.


블로그 이미지

영스파파

3D 세상을 만들기 위한 프로그래밍 정보들을 정리하는 공간

,

'Programming > C#' 카테고리의 다른 글

DataTable에서 데이터 삭제  (0) 2011.06.03
DataTable에 데이터 추가  (0) 2011.06.03
sqlite  (0) 2011.05.30
DataGridView와 ContextMenu 연결  (0) 2011.05.16
DataGridView와 sqlite 테이블 연결하기  (0) 2011.05.16
블로그 이미지

영스파파

3D 세상을 만들기 위한 프로그래밍 정보들을 정리하는 공간

,

DataTable table = new DataTable("Customers"); 
table.Rows[0].Delete();
table.AcceptChanges();


'Programming > C#' 카테고리의 다른 글

DataSets, DataTables 및 DataViews(ADO.NET)  (0) 2011.06.03
DataTable에 데이터 추가  (0) 2011.06.03
sqlite  (0) 2011.05.30
DataGridView와 ContextMenu 연결  (0) 2011.05.16
DataGridView와 sqlite 테이블 연결하기  (0) 2011.05.16
블로그 이미지

영스파파

3D 세상을 만들기 위한 프로그래밍 정보들을 정리하는 공간

,

DataTable workTable = new DataTable("Customers");

DataRow workRow = workTable.NewRow();
workRow["CustLName"] = "Smith";
workRow[1] = "Smith";
workTable.Rows.Add(workRow);

workTable.AcceptChanges(); 


'Programming > C#' 카테고리의 다른 글

DataSets, DataTables 및 DataViews(ADO.NET)  (0) 2011.06.03
DataTable에서 데이터 삭제  (0) 2011.06.03
sqlite  (0) 2011.05.30
DataGridView와 ContextMenu 연결  (0) 2011.05.16
DataGridView와 sqlite 테이블 연결하기  (0) 2011.05.16
블로그 이미지

영스파파

3D 세상을 만들기 위한 프로그래밍 정보들을 정리하는 공간

,

sqlite

Programming/C# 2011. 5. 30. 18:24

        SQLiteConnection cn = new SQLiteConnection(Form1.dbQuery); 
        cn
.Open();
       
string SQL;
        SQL
= "SELECT users_id, name, username, place FROM users";
       
SQLiteCommand cmd = new SQLiteCommand(SQL, cn);
       
SQLiteDataAdapter da = new SQLiteDataAdapter(cmd);
       
DataSet ds = new DataSet();
        da.Fill(ds);
       
DataTable dt = ds.Tables[0];
       
this.grid_userlist.DataSource = dt;
        cn.Close(); 


'Programming > C#' 카테고리의 다른 글

DataTable에서 데이터 삭제  (0) 2011.06.03
DataTable에 데이터 추가  (0) 2011.06.03
DataGridView와 ContextMenu 연결  (0) 2011.05.16
DataGridView와 sqlite 테이블 연결하기  (0) 2011.05.16
MDI 창 만들기  (0) 2011.05.16
블로그 이미지

영스파파

3D 세상을 만들기 위한 프로그래밍 정보들을 정리하는 공간

,