C++에서 배열을 구하는 방법은 많습니다. 그중 포인터로 넘어온 배열의 개수를 구하는 방법을 알아보도록 하겠습니다. 1. 일반적으로 배열 구하는 방법 int a = inteof(Temp) / sizeof(Temp[0]); 그런데 이 방법은 정작 포인터로 넘어온 주소는 배열을 구하지 못합니다. 그래서 보통은 매개변수로 배열의 개수를 보내주는 방식을 많이 사용하죠. 어쩌면 당연한데.....'sizeof'는 변수의 크기를 리턴하므로 포인터를 넣으면 포인터의 대상이 아닌 포인터 자체의 크기를 리턴하기 때문입니다. (그래서 포인터를 위 코드로 구하면 '1'이 나옵니다.) 2. 포인터로 넘어온 배열 개수 구하는 방법 '_countof'를 이용하면 포인터로 넘어온 배열의 개수를 구할 수 있습니다. void Temp(..
*여기에 나와있는 예제는 코드로 제공되지 않습니다* 1. 캡슐화 되있지 않은 뷰의 문제안드로이드의 뷰는 비주얼프로그래밍에서 컨트롤에 해당 합니다. 그런데 아무래도 비주얼프로그래밍툳들은 컨트롤에 관한 기본적인 코드들은 자동으로 생성해주기 때문에 상대적으로 편하게 컨트롤을 생성해서 사용할 수 있습니다만 안드로이드프로그래밍을 할때 주로 쓰는 이클립스에서는 그런 기능까지는 지원해주지 않는다.(SDK선상에서 그런것 같습니다.) 덕분에 뷰와 리스너의 연결은 둘째 치고라도 해당 뷰를 사용하기 위해서는 소속그룹을 뒤저서 변수 선언해서 저장해 두어야 하저 이런 방식이 나쁘다는 것은 아니지만 코드상으로는 상당이 지저분해 질수 밖에 없는건 사실이저-_-;;;;; 불러도 대답없는 뷰(열심이 더블클릭중) 연결 자체는 별문제가 ..
참고 : 용식( http://devyongsik.tistory.com/173)님의 글을 참고하여 작성 하였습니다. 자바(java)나 안드로이드(android), 닷넷( C#.net, VB.net, WPF ) 등의 객체지향 언어를 사용하다보면 필이 만나게 되는 문제가 바로 클론입니다. 원례는 클론을 안쓰고 하는것이 좋으나 상황적으로 클론아니면 답이 없을때가 있저 ㅡ.-;;;; 1. 클론이 없다면? 객체지향에서 클론은 메우 중요합니다. 대부분 무심결에 오브젝트를 생성해서 사용하지만 이렇게 생성해서 사용하는 오브젝트를 메모리에 어떻게 넣는 문제는 중요합니다. 일반적으로 new를 통해 생성자를 호출해여 오브젝트를 생성하면 자동으로 새로운공간에 새로운객체가 생성됩니다. 하지만 단순이 대입연산자(=)를 이용하면 메..
가끔은 3차원공간을 논리적으로 표현할 일이 있는데 이럴때 점A와 점D의 최단거리가 필요한 경우가 많습니다. 3차원 공간에서의 대각선 길이 여기서 말하자고 하는것은 AD의 길입니다. 육면체의 대각선 길이를 구하는 공식은 √(a^2+b^2+c^2) 이저. 문제는 이너므 루트라는 녀석은 '제곱근'이란 녀석으로 √2 라고 하면 제곱해서 2가되는 숫자를 말하는 것입니다. 구하기 힘든값이라는거저-_-;;; 그래서 공학용계산기를 추천합니다. ㅡ.-;; 어찌됬건 AD의 길이를 구하려면 √(AB^2+BC^2+CD^2) 입니다 ㅡ,.ㅡ; 프로그래밍 할때는 변수를 쓸때 최대한 2차원배열이하로 사용하려고하지만 가끔 3차원으로 그것도 하나의 좌표와 다른좌표간의 거리를 재야 하는 경우가 있습니다. 말그대로 미치는거저-_-;;; ..
어쿠.... 제가 진행하는 프로잭트는 거의 Win32프로젝트 입니다. 닷넷환경에 익숙한 저한테는 너무 가혹한 ㅜㅡ 어찌됬건 MFC조차 사용하면 안되는 환경에서 코딩을 하다보니 MFC로 된 자료를 보면 혈압이 올라서 정리해 둡니다. .txt 파일을 읽고쓰는건 기초중에 기초라고 할수 있는데도 불구하고 MFC자료만-_-;;; 1. 기본 쓰기 읽기 #include "stdafx.h" #include #include #include void LoadFile() { //*.txt에 쓰기 FILE *fp; fp = fopen("test.txt","wt"); fwrite("sddfsfasd", sizeof(char[10]), 1, fp); fclose(fp); //*.txt를 읽기 FILE *fp; int i = 0;..
A4용지를 가위로 잘라 코끼리를 통과 시킬수 있다고 생각합니까? 당연이 가능하겠조? ㅎㅎㅎ 모든종이는 반으로 접기를 해서 30번만 접어도 이론상 지구를 벚어날수 있습니다 ㅡ.-;;; 종이를 하지만 30번접는건 불가능하니(언젠가 가능할지도 모르겠네요.) 따라해볼수 있는 코끼리 넣기를 해보겠습니다. *주의! 여기서 나온 계산을 틀렸을수도 있습니다. 꼭 덧글 남겨 주세요* 1. 준비 준비물 A4용지 - 1장 가위 .... 끝입니다. 이거면 충분하죠 ㅡ.-;; 2. 종이 자르기 일단 A4용지사이로 코끼리를 넣는게 주목적이기때문에 종이는 고리모양으로 잘라야 합니다.(쫙 폈을때 원이 되어야 한다는 소리죠.) 그러니 끊어지지 않게 만드는 것이 중요합니다. 모양은 요렇게 잘라야 합니다. a,b,c,d 의 각격이 좁을수..
Microsoft SQL Server Management Studio Express 2005용 2008용 비주얼스트디오 닷넷에는 쿼리분석이가 안들어있으므로 이녀석을 깔아야 됩니다.
안드로이드에서 로컬 DB로 SQLite를 사용할 수 있다고 합니다. 그래서 .NET에서 미리 사용해 봅시다. 1. SQLite .NET용 프로바인더(Provider) 설치 기 SQLite를 닷넷에서 사용하기 위한 프로바인더를 설치해야 합니다. 참고 : sourceforge - ADO.NET 2.0 Provider for SQLite Files (2023년 기준으로 누겟에서 받아서 사용해도 됩니다.) 프로바인더가 설지되었으면 아래와 같이 참조하여 사용하면 됩니다. System.Data.SQLite; using System.Data.SQLite; 2. 사용법 일반 ODBC와 동일 합니다 커낵션 만들어서 열고 커맨드 만들어서 사용하면 됩니다. (검색하면 많이 나오니 자세한 설명은 생략합니다. ^^;) 3. 속..
1. 오류 error C2146: 구문 오류 : ';'이(가) 'PVOID64' 식별자 앞에 없습니다. 에러... 무려 winnt.h에서 나는 에러입니다 ㅡ,.ㅡ; 머 어쩌라는 겨 ㅎㅎㅎㅎ 2. 해결 방법 typedef void* PVOID; typedef void* POINTER_64; typedef void POINTER_64 PVOID64; 요걸 typedef void* PVOID; typedef void* POINTER_64; typedef POINTER_64 PVOID64; 요렇게 바꾸면 됩니다. 은근히 코드 3줄 다 뭔가 다르니, 그냥 3줄 한 번에 복사해서 쓰시길 권장합니다. 마무리 되도록 이해하면서 쓰면 좋지만..... 이해 못할 때는 그냥 따라 하는 것도 방법입니다 ㅎㅎㅎ
1.문제 사이드바에 있는 '최근에 달린 댓글'에 보면 날짜와 아이디 때문에 글정렬이 이상하게 되는 것을 볼수 있습니다. 이상하게 되있다. 물론 글자수를 조정하면 어느정도 깔끔하게 나오긴 합니다만.... 무슨 덧글인지 감도 안잡힌다는게 문제저 ㅎㅎㅎㅎ 그래서 이것을 빼보도록 하겠습니다. 2.위치 HTML/CSS편집으로 가서 [ㅁ#_rctrp_rep_desc_##]. [\##_rctrp_rep_name_##] [ㅁ#_rctrp_rep_time_##] 요줄을 찾습니다. 요기서 [ㅁ#_rctrp_rep_name_##] [ㅁ#_rctrp_rep_time_##] 이 두 줄이 날짜와 아이디를 출력하는 줄입니다. 지워봅시다. 날짜와 아이디가 출력되지 않는군요 ^^ 3. 글자수 문제날짜와 아이디가 지워진것 까지는 좋은데..