본문 바로가기

분류 전체보기246

210602 window from 다루기 designer.cs 에서 만들어둔 기능 코드로 확인 가능 윈도우 폼에서 메서드 활용하기 이벤트 활용 cf) 이벤트를 여러가지 이름으로 부른다 이벤트 = 인터럽트= 메세지 이벤트를 선택해서 더블클릭하면 event handler 가 생성 된다. this.button1.Click += new System.EventHandler(this.button1_Click); private void button1_Click(object sender, EventArgs e)// fallback 함수 { textBox1.Text += "버튼 눌림"; label1.Text += "버튼 눌림"; } timer 기능 설정 간단한 시간 타이며 생성 private void timer1_Tick(objec.. 2021. 6. 2.
cl 빌드 과정에서 경유파일 생성 방법 .i 파일 생성 /P 파일명 .asm,.obj,.exe 생성 /FA 파일명 옵션들을 간단하게 설명하면 /FAs : asm 확장자로 된 어셈블리어 파일을 만들겠다. 리버싱 공부할 때 편할듯ㅎ, ml 명령어 치고 link 명령어 쳐서 exe 파일도 만들 수 있다. /link : 링크를 하겠다. /debug : 디버그 정보를 넣겠다. /opt:icf,ref : 이 옵션을 넣어줘야 프로그램을 올리디버거로 디스어셈블했을 때 편하게 볼 수 있다. 2021. 6. 2.
함수포인터 c 언어에서는 함수또한 주소를 가지고 있다. 때문에 함수 또한 주소와 type 만 알고 있다면 주소로 호출하고 사용이 가능해진다. #include int add(int a, int b) // int형 반환값, int형 매개변수 두 개 { return a + b; } int (*retunrAdd(int a ,int b ))(int ,int ) // 함수 포인터를 반환값으로 지정 { printf("retunrAdd 정상작동 : %d, %d \n",a,b); return add; // add 함수의 메모리 주소를 반환 } int GetAdd(int (*p)(int, int)) // 함수 포인터를 매개변수로 받음 { printf("GetAdd 정상작동 %d\n", p(1, 2)); return 0; } int .. 2021. 6. 2.
프로그램 빌드 과정 프로그램 빌드란? 프로그래머가 작성한 소스코드를 실행 파일을 만들기 까지의 과정이다. 프로그램 빌드 방식은 3가지 방식 이 존재 한다. 1. compile 방식 - 프로그래머가 작성한 모든 코드를 한꺼번에 빌드 한다. 2. interpreted 방식 - 소스코드를 한줄 씩 빌드 한다. 3. Hybrid 방식 - 위 두가지 방식을 적절히 함께 사용한다. 여기서는 가장 많이 쓰이고 대중적인 compile 방식을 집중적으로 다룬다. 컴파일 방식 빌딩은 위의 과정을 따른다. (위의 그림은 각 과정과 그에 따라 만들어지는 파일의 확장자를 보여준다.) 1. 전처리기 # include # 뒤에 있는 코드를 실행 하는 부분으로 전처리 후에 코드에는 전처리 구문에 포함된 코드가 추가된다. 대표적으로 #include 오 .. 2021. 6. 1.
20210601_2 JOIN 1. INNER JOIN use sqlDB; select * from userTbl where userID = 'JYP'; select * from buyTbl where userID = 'JYP'; select * from userTbl INNER JoiN buyTbl ON userTbl.userID = buyTbl.userID where buyTbl.userID = 'JYP'; self join 실습 --use sqlDB --create table smartTbl( --num int, --emp nchar(3), --manager int, -- 관리자의 사원번호 --department nchar(3) --); --INSERT INTO smartTbl VALUES(1,'나사장',NULL, NU.. 2021. 6. 1.
도스창에서 c언어 컴파일 & 빌드 cmd로 c언어 실행 할 수 있습니다. 그것을 위한 환경 성정 방법 https://zuyo.tistory.com/745 Visual Studio 환경변수 설정 환경변수 설정 컴파일 해보기 zuyo.tistory.com 4. 환경변수 설정 (시스템 - 고급 시스템 설정 - 환경 변수 - 시스템 변수) include, lib, LIBPATH, LOGONSERVER, Path 시스템 변수를 생성한다. 이미 존재하는 변수라면 내용 뒤에 ;를 붙이고 붙여넣는다. 그냥 path 다 넣으면 된다. (ㅇㅅㅇ) (간단 요약) 1. 비주얼 스튜디오 명령 프롬프트 실행 2. set 명령어로 path 파악 3. 환경변수 설정 include, lib, LIBPATH, LOGONSERVER, Path , 시스템 변수 만들어서 경.. 2021. 6. 1.
sizeof 와 포인터 & 배열의 data type sizeof 와 포인터 sizeof 는 배열의 크기를 return 한다. sizeof(point변수) - > 주소값의 크기 4byte #include int main() { char a[2][3][4]; char (*p)[3][4]; p = a; // 배열로 선언 하면 sizeof 로 크기를 알 수있다. printf("izeof(a) : %d\n", sizeof(a)); // char[2][3][4] = char (*)[3][4] printf("izeof(*a) : %d\n", sizeof(*a)); // char[3][4] = char (*)[4] printf("izeof(**a) : %d\n", sizeof(**a)); // char[4] = char (*) printf("izeof(***a) : %.. 2021. 6. 1.
20210601 실습용 테이블 생성 --USE tempdb --create table pivotTest( --nName Nchar(3), --season Nchar(2), --amount int, --); --insert into pivotTest values --('김범수','겨울',10), --('윤종신','겨울',15), --('김범수','가을',25), --('김범수','봄',3), --('김범수','봄',37), --('윤종신','겨울',40), --('김범수','여름',14), --('김범수','겨울',22), --('윤종신','겨울',64); --select * from pivotTest PIVOT - 표를 돌려서 보기 쉽게 하는 함수 PIVOT(집계함수(열) for 새로운 열로 변경할 열이름 in (열목록.. 2021. 6. 1.
void pointer , malloc void pointer : 어떠한 type 의 포인터인지 알려 주지 않는 포인터 -> 사용할때 항상 강제 캐스팅을 해줘야 한다. malloc : 메모리 데이터를 동적으로 할당 받는 함수 void * malloc(size_t size); #include int main() { int a = 10; char* str; void* p = &a; str = (char*)malloc(80); strcpy(str, "hello"); printf(str); } 2021. 6. 1.