Universal CRT14년 6월 ms에서 기존CRT의 논리파트를 VCRuntime과 Stable로 나누었는데, VCRuntime은 프로세스 시작과 예외처리와 같은 것을 지원하며, stable은 CRT의 순수한 라이브러리를 지원하도록 설계했다. 여기서 stable은 또 AppCRT와 DesktopCRT로 나뉜다. ms가 이렇게 CRT구조를 나눈 이유는 in-place 서비스를 제공하기 위해서 나눴다고 했는데 15년 말에 ms가 두개로 나눈 stable 파트를 다시 하나의 라이브러리로 바꾸었는데 이게 바로 Universal CRT가 되겠다. (이 또한 in-place 서비스 제공을 위함이라 함)Universal CRT는 기존 CRT와 다르게 Visual C++의 일부가 아닌 WindowsKits의 일부로..
* remote debug - 비주얼 스튜디오를 사용하여 원격으로 디버깅을 함 - 원격 PC에 비주얼 스튜디오가 없어도 디버깅이 가능함 로컬 pc : 디버깅을 하는 pc (visual studio 가 설치된 pc)원격 pc : 디버깅을 당하는(?) pc * 순서 1. 원격 PC의 IP 획득 2. 원격 PC의 C:/Remote 경로에(사실 경로는 아무데나 상관없다) 폴더를 만들어줌 3. 원격 PC의 C:/Remote 경로에 로컬 PC의 C:\Program Files\Microsoft Visual Studio(version)\Common7\IDE\Remote Debugger 폴더를 복사 (상식적으로 visual studio 가 안깔린 pc에 깔린pc의 분비물이라도 들어가야 뭐라도 할거 아닌가) 4. 원격 P..
* MT - Multi Thread - CRT 라이브러리를 정적 라이브러리로 링크하는 것 - CRT 라이브러리를 실행파일(EXE, DLL)에 포함시키겠다는 의미로 생각하면된다. - 실행파일에 CRT라이브러리를 넣기 때문에 파일 사이즈가 커진다. - MT는 모든 실행파일(DLL, EXE)에 각각의 파일들이 사용하는 힙메모리가 생성된다 ( n개의 DLL파일에 n개의 독립적인 CRT 힙메모리) * MD - Multi Thread DLL - CRT 라이브러리를 DLL로 제공하겠다는 것 - MT에 비해 파일 사이즈가 작음 - CRT DLL이 없는 환경에서는 사용 불가 - MD는 모든 실행파일(DLL, EXE) 이 사용하는 하나의 힙메모리가 생성된다 ( n개의 DLL파일에 1개의 공통 CRT 힙메모리) 출처 : h..
C++에서는 접근 제어자라는것이 있는데, 이는 함수를 구조체 내에 정의하거나, 구조체 키워드가 생략되는 것 이외에도 멤버의 접근에 제한은 둘 수 있도록 하는 것이다. 접근 제어 지시자 의 종류 : public, private, protected public 지시자는 프로그램 어디에서나 접근가능private 지시자는 외부에서 접근하지 못하며, 내부에서만 접근가능하다. struct student {private: int id; char *name; float percentage;public: void Show(); void SetInfo(int _id, char * _name, float _percentage);}; // 구조체 뒤에 세미콜론이 와야함 void student::Show() { cout
기존 C에서 힙영역의 메모리 공간을 할당과 해제하는 malloc 과 free가 있는데 C++ 에서는 new 와 delete로 대체되었다. 결론적으론 new는 힙영역의 메모리 할당을 담당하며, delete는 힘영역의 할당된 메모리를 해제하는 역할을 한다. int * pt1 = new int; // 객체를 동적할당delete pt1; // 할당된 객체 소멸 int * pt2 = new int[10]; // 길이가 10인 객체의 배열을 동적할당.delete []pt2 // 동적할당된 객체의 배열을 소멸 중요: 동적할당된 객체의 배열은 delete []pt2와 같이 작성하여야한다. 그렇지 않으면 메모리 누수가 발생. 출처 : http://blog.eairship.kr/164
함수의 오버로딩이라 함은 함수명이 같으나, 인자의 자료형, 수가 다른 함수의 선언을 사용하는 것이다. using namespace std;void functionA(int a){printf("a = %d",a);}void functionA(int a, int b){printf("a+b = %d",a+b);} int main(){fucntionA(1);functionA(1,2);return 0;}출처 : http://blog.eairship.kr/163
네임스페이스란 간단히 말해서 관련있는 녀석들끼리 모여있는 공간을 말한다.여러 팀이서 하나의 작업을 할 경우, 각 팀이 짠 프로그램을 병합할때 생기는 문제(함수명의 유사성, 동일성 과같은)를 사전에 방지하기위해 각 코드를 묶는 개념이다.namepace A{ //이와 같은식으로 namespace를 선언할 수 있는데,void functionA(){ }void functionB(){ }}int main(){A::functionA();A::functionB();}보는 거와 같이 네임스페이스의 함수를 사용할 수 있다.이런게 선언한 namespace를 쉽게 사용할 수 있도록 도와주는 놈이 있는데, using 이라는 놈이 그역할을 합니다. 이러한 using에는 지시자와 선언자가 있다.위의 예제를 using의 지시자, ..
- Total
- Today
- Yesterday
- Node.js
- ATS
- Universal CRT
- full stack
- execute double click
- AES
- TypedArray
- iOS10
- 암호화
- node js
- 윈도우 라이브러리
- reactivex
- yss
- cipher
- angular
- Visual Studio
- PCX
- 전자서명
- rxswift
- executable jar
- remote debug
- MEAN stack
- ucrtbase.dll
- App Transport Security
- build set
- JavaScript
- HTTPS
- 비대칭키
- TLS1.2
- 대칭키
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |