본문 바로가기

VisualStudio.C++.C#   ( 287 )


ATL Collection Classes from MSDN. Visual Studio 2015 ATL provides many classes for storing and accessing data. Which class you decide to use depends on several factors, including: The amount of data to be stored Efficiency versus performance in accessing the data The ability to access the data by index or by key How the data is ordered Personal preference Small Collection Classes ATL provides the following array class.. 2015. 12. 28.
C++. 파생 클래스에서 베이스 클래스의 인자 있는 생성자 실행되게 처리법 개요. C++ 에서 상속관계에 있는 "베이스 클래스 - 파생클래스" 에서 파생클래스 측에서의 생성자 처리법 정리. 요구사항. 1. 베이스 클래스에 인자있는 생성자만 정의해뒀다. 2. 파생클래스에도 인자있는 생성자가 정의되어있다. 2. 파생클래스 개체 생성시 상기1의 베이스클래스의 인자있는 생성자 호출되게 하고 싶다. 2가지 방법 가능. 방법1. 파생클래스에 인자있는 생성자의 선언 및 정의시 베이스클래스의 생성자 명시적 실행되도록 한다. 방법2. 파생클래스에는 별도의 생성자 만들지 않고 베이스클래스의 생성자를 상속받아서 사용한다. 방법2가 더 간단함. 방법1. // 베이스 클래스에 인자있는 생성자를 정의하였다. class CBase { public: CBase(int a); // 베이스 클래스의 인자 있는.. 2015. 12. 28.
C++. 클래스 생성자 관련 기초 지식. - 디폴트 생성자/복사생성자/디폴트복사생성자/Shallow Copy/Deep Copy 등. 개요. C++ 클래스 생성자 기초지식. C++ 클래스의 생성자 관련 기초 지식들 정리. 1. 클래스의 디폴트 생성자. 2. 클래스의 복사 생성자. 3. 디폴트 복사 생성자는 shallow copy 수행함. Deep Copy 원하면 복사생성자 명시적으로 정의하고 복사생성자 내에 값복사코드 추가할것. 클래스의 디폴트 생성자. 1. 컴파일 과정에서 자동으로 추가되는 생성자 를 디폴트 생성자라 한다. 디폴트 생성자는 인자없고 디폴트생성자 내에서 처리하는것도 없다. 2. 코드 작성시 클래스에 생성자를 구현하지 않은 경우, 컴파일 단계에서 클래스에 디폴트 생성자가 자동삽입되고 클래스 개체 생성시 디폴트 생성자가 실행된다. 참고 : 소멸자를 명시적으로 정의하지 않은 경우에도 컴파일 단계에서 자동으로 디폴트 소멸자가 .. 2015. 12. 28.
VC++ 프로젝트에 MFC CObject 파생클래스 추가하기.예: CyFinAPI프로젝트에 CCyItem 클래스 추가. 개요. VC++ 프로젝트에 MFC CObject 를 베이스로 하는 클래스 추가하기. 예 : CyFinAPI(MFC regular DLL) 프로젝트에 CCyItem 이라는 클래스를 CObject 를 베이스로 하여 생성. CObject 를 베이스 클래스로 하는 이유. CObject 에서 제공하는 기능활용하기 위함. 특히 파일저장 강력한 함수인 Serialize 등 활용. serialize 적용위한 클래스 필수 필수 요건. - 베이스 클래스 CObject 포함.- 디폴트 생성자 필수 - 클래스 선언에 DECLARE_SERIAL(클래스명) 매크로 기록. 동시에 클래스 정의파일에 IMPLEMENT_SERIAL(,,,) 기록.- CObject 의 virtual 함수인 Serialize() 오버라이드 하고 구현. 방.. 2015. 12. 26.
정수형 signed, unsigned 8, 16, 32, 64비트별 값 표현 범위. 정수 자료형. signed 값 범위. 문자열 표현시 문자수. 음수 부호표현 포함. int8_t -128 ~ 127 4 int16_t -32,768 ~ 32,767 6 int32_t -2,147,483,648 ~ 2,147,483,647 11 int64_t -9,223,372,036,854,775,808 ~9,223,372,036,854,775,807 21 정수 자료형. unsigned 값 범위. 문자열 표현시 문자수. uint8_t 0~255 (중심값 : 128) 3 uint16_t 0 ~ 65535 (중심값: 32768) 5 uint32_t 0 ~ 4294967295 10 uint64_t 0 ~ 18446744073709551615 20 본 글이 포함된 상위 정리 장소. Visual Studio/VC+.. 2015. 12. 24.
char*, const char*, char* const char* v; v는 문자, 문자열이 저장된 메모리의 첫주소를 저장할 수 있는 포인터변수. char* v = "문자열상수1"; 초기화 했어도 코드중에 언제든 변경가능. v="문자열상수2"; v="문자열상수3"; 등등. 모두 가능. const char * v; v는 문자열이 저장된 메모리의 첫주소를 저장할 수 있는 포인터변수, 금지되는것 : v 주소 메모리의 내용 변경불가. 즉, v는 "상수문자열" 의 포인트변수라는 의미. 한편, const 의 대상이 v 자체가 아니므로 v가 가리키는 주소는 변경가능함. 예를들면, const char* v = "난 문자열 상수1이다"; 로 초기화 했어도, 코드상에서 아래 처럼 다른 문자열의 메모리 주소를 대입가능하다는 말. v = "난 문자열 상수2임."; 가능함. v에 .. 2015. 12. 23.
문자열을 숫자로. atoi, _atoi_l, _wtoi, _wtoi_l,atol, _atol_l, _wtol, _wtol_l, atof, _atof_l, _wtof, _wtof_l atoi, _atoi_l, _wtoi, _wtoi_l Visual Studio 2015 Convert a string to integer. 구문복사 int atoi( const char *str ); int _wtoi( const wchar_t *str ); int _atoi_l( const char *str, _locale_t locale ); int _wtoi_l( const wchar_t *str, _locale_t locale ); 매개 변수strString to be converted. localeLocale to use. 반환 값Each function returns the int value produced by interpreting the input characters as a number.. 2015. 12. 23.
CString, LPCTSTR, LPTSTR. CString -> LPCTSTR(유니코드에선 const wchar_t* , 멀티바이트에선 const char*) CString cst; LPCTSTR m_lpctstr = cst; 별다른 처리 없이 대입하듯이 하면됨. 실제 컴파일 과정에서는 CString이 LPCTSTR로 알아서 변환 처리됨.그럼에도, 명시적으로 형변환 하는게 항상 안전함. 즉, 아래 처럼 형변환명시하자. LPCTSTR m_lpctstr = (LPCTSTR)cst; CString -> LPTSTR (유니코드에선 wchar_t*, 멀티바이트에선 char* ) CString cst; LPTSTR p = cst.GetBuffer(0); cst.ReleaeBuffer(); 본 글이 포함된 상위 정리 장소. Visual Studio/VC++/C.. 2015. 12. 21.
VC++. 리소스 String Table. 개요. VC++ 프로젝트의 리소스에 String Table 추가, 코드상에서 활용하는 법. 상세 1. 프로젝트 리소스에 String Table 추가. 프로젝트의 리소스 뷰에서 우마우스 클릭 -> "리소스 추가..." 클릭 하여 뜬 창에서 "String Table" 선택하여 버튼 "새로만들기"클릭-아래그림. String Table 추가된 모습캡션에는 원하는 문자열을 기록하면됨. 2. 코드에서 활용하기. 예1.CString cst;cst.LoadString(IDS_STRING2007);AfxMessageBox(cst); 추가정보. String Table 활용 : http://www.codeproject.com/Articles/10542/Easily-Load-and-Format-Strings-from-the-.. 2015. 12. 19.
VC++. 출력 언어 고정하기.예. #pragma setlocale("kor") 개요. 프로그램이 실행될때 컴퓨터에 설정되어있는 윈도우 운영체제의 기본언어로 표기된다. 프로그램이 윈도우에 설정된 기본언어 무시하고 고정된 언어로 표시되게 하려면 코드에 아래 구문 추가한다. 예 : 한국어 #pragma setlocale("kor") ///504. 2015. 12. 18.
VC++. LPCSTR, LPCWSTR, LPCTSTR, LPTSTR, TCHAR,char,wchar_t. 멀티바이트, 유니코드. LPCSTR = const char* : 멀티바이트. - LPCSTR 은 const char* 와 동일한것. typdedef const char* LPCSTR ; 로 되어있음. - 용어의미 : LP (Pointer ), C (constant) STR (string). LPCWSTR = const wchar_t* : 유니코드. - LPCWSTR 은 const wchar_t* 와 동일한것. typedef const wchar_t* LPCWSTR; 로 되어있음. - 용어의미 : LP(Pointer), C (constant), WSTR (wide string). LPCTSTR : 프로젝트 환경설정(문자집합 설정)에 따라 LPCSTR 혹은 LPCWSTR 로 처리됨. - 용어의미 : LP (Pointer), C (.. 2015. 12. 18.
VC++. CW2A, CA2W 멀티바이트 <-> 유니코드 변환 클래스. CA2W, CW2A 현재시점(2015년 12월) VC++ 에서 멀티바이트 문자 유니코드 문자 변환에 사용하기 가장 간편한 것. 기본 사용예. Colored By Color Scripter™ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 //Example 1 // Convert LPCWSTR to LPCSTR. void ExampleFunction1(LPCWSTR pszW) { // Create an instance of CW2A, called pszA, // and initialize it with pszW. CW2A pszA(pszW); // pszA works lik.. 2015. 12. 18.
Dependency Walker 로 Explicit linking 된 DLL 까지 확인하는법. 개요. Dependency Walker 프로그램을 이용하여 임의의 응용프로그램의 explitcit linking 된 DLL 확인방법. Dependency Walker 기본정보 -> http://igotit.tistory.com/497 상세. 1.Dependency Walker 실행한후 응용프로그램을 오픈한다. 아래그림예에서는 DEVCENTER.exe라는 응용프로그램. 그냥 열기만 한 경우에 보이는(아래 붉박) DLL 들은 응용프로그램에서 implicit linking 된 것들만 보이며, 응용프로그램에서 실행된 이후 특정시점에 dll이 로딩되는 식으로 코딩되어있다면 이 단계에서는 해당 DLL이 안보임. 2. 실행된 이후 로딩되는 DLL 들 확인하기 위해서는 메뉴 -> Profile -> Start Prof.. 2015. 12. 16.
Dependencey Walker - EXE,DLL 에서 사용되는 DLL 및 DLL 노출함수 볼 수 있는 툴. 개요 실행프로그램이나 DLL 에서 사용하고 있는 DLL 리스트를 볼 수 있고, DLL의 노출함수를 볼 수 있는 툴. 입수방법. 1. 제작사 홈페이지에서 무료다운 : http://www.dependencywalker.com/ 설치방법. - 설치과정없이 상기 다운로드 받은 파일 압축풀고 내부의 실행프로그램 실행하면됨. 사용법 요약. implicit linking 된 DLL 보기 "Dependency Walker" 실행하여 사용중 DLL 알고 싶은 exe 나 DLL 파일을 open하면, DLL 이 implicit linking 된것은 바로 리스트로 확인가능하며, explicit linking 된 DLL 보기 프로그램 내에서 explicit linking 된 DLL 을 보려면 메뉴 Profile -> Start.. 2015. 12. 16.
VC++, 이미 프로젝트에 포함된 클래스이름변경, 파일명 변경. 예 : CyFinAPI 프로젝트의 클래스 CDlgMain->CCyFinAPIMainDlg 개요. VC++ 프로젝트에 이미 생성되어있는 클래스 이름변경을 간단히 수행할 수 있는 Visual Studio 툴사용법. 동시에 파일명 변경법. VS 버전 : Visual Studio 2015. 예 : CyFinAPI 프로젝트의 클래스 CDlgMain->CCyFinAPIMainDlg 클래스 이름변경 방법. 클래스 뷰에서 변경하고자 하는 클래스 마우스 우클릭. 새 이름에 새 클래스 이름을 기록하고, 미리보기 클릭한다. CCyFinAPIMainDlg 본 글이 포함된 상위 정리 장소. Visual Studio/VC++/C/C# 활용정리 -> http://igotit.tistory.com/11 ///495. 2015. 12. 15.
VC++. 사용자정의메시지 수신처리기 추가. 예: CyFinAPI의 클래스 CDlgMain에 추가함. 상세. 클래스마법사 실행하여(아래 그림) 사용자 정의 메시지 수신 처리기를 추가할 클래스를 지정하고, 파랑박스에서 클래스 선택. 위 그림에, 탭 "메시지" 을 선택하고 버튼 "사용자 지정 메시지.." 클릭하면 메시지아이디, 메시지 처리기 함수명을 지정하는 창이 뜬다. 아래. 메시지 아이디부분에 기록하면 처리기 함수명은 자동으로 만들어진다. 이 함수명 그대로 사용해도 되고 임의로 변경가능. 메시지 아이디는 메시지를 송신하는 측에서 지정된 것을 기록하면된다. 통상 #define WM_MESSAG_ID WM_USER+번호 식으로 선정의 해두고 사용하게 된다. 위 그림의 확인버튼 클릭하면, 메시지 처리 함수가 코드속에 들어오게 되며, 이 함수에 메시지 수신시 처리할 사항을 코드 추가한다. 끝. - VC++. 사.. 2015. 12. 13.
VC++ 프로젝트 리소스에 아이콘 추가. 예:CyFinAPI 프로젝트에 아이콘 추가. 상세. 아이콘의 아이디를 설정하고(아래 붉박), 사이즈, 색상표현비트수 별로 아이콘들이 준비되어있다. 각각의 이미지를 원하는것으로 수정하면된다. 아이콘 이미지가 간단한 경우에는 본 편집기에서 직접 수정해도 되고, 이미지가 복잡한 경우 아래와 같은 과정으로 이미지 처리 작업 수행해도 된다. 1. 별도의 이미지 편집툴(포토샾 , 혹은 온라인 편집툴 http://igotit.tistory.com/491 ) 등에서 아이콘중 가장 큰 사이즈인 256x256 32비트 규격으로 이미지 작업하여 고품질 원본 1개 만들고 2. 상기 1의 원본을 48x48, 32x32, 16x16등의 축소판 만들고, 각 이미지들을 png로 저장하고, 3. 상기 2의 png를 그림판에서 열고, 이미지를 복사하여 아래 VC++ 그림부분에 복.. 2015. 12. 13.
VC++ 프로젝트 리소스에 메뉴 추가. 예:CyFinAPI 프로젝트에 트레이아이콘용 메뉴 추가. 상세. 본 글이 포함된 상위 정리 장소. Visual Studio/VC++/C/C# 활용정리 -> http://igotit.tistory.com/11 ///489. 2015. 12. 13.

.    
현물 |선물 인버스 |선물 USDT     현물 | 선물 USDT |봇제작툴/카피트레이딩     현물 |선물 인버스 |선물 USDT     .