바코드를 찍어주는 프로그램을 만든 적이 있습니다. GDI+로 출력을 했었습니다. 문제의 발견 그런데 바코드 특성상 숫자들을 검은색과 하얀색으로 구분하여 수십 또는 수백의 라인을 그려주어야 하다 보니 화면이 매번 화면을 다시 그리면 깜박거림에 딜래이까지 생겼습니다. '이걸 메모리에 따로 저장했다가 뿌려줘야 되는 건가?' 하고 있던 중 더블 버퍼링이란걸 알게 되었습니다. 더블 버퍼링(DoubleBuffer)이란? GDI+로 그린 그림을 자동으로 메모리에 실어놓고 필요할 때 자동으로 뿌려주는 기능입니다. 물론 그림을 다시 그리면 알아서 업데이트까지 해주죠. 문제는 메모리 더 먹는 다는거 ㅎㅎㅎ 사용하기 윈폼이라면 'InitializeComponent();' 밑에 SetStyle(ControlStyles.Use..
VS2005의 버그인지는 몰라도 '소스 코드가 원래 버전과 다릅니다'라면서 중단점이 무시되는 경우가 있습니다. 원래 이 오류는 런을 하고 코드를 수정했을 경우 흔이 볼수 잇는 오류입니다만 2005에서는 버그인듯 합니다. '소스코드와 달라도 중단점적용'옵션을 통해 멈추게는 할수있으나 코드가 다르니 그닥 소용은-_-;;; 이런경우 해당 에러가나는 파일을 메모장등으로 열어서 유니코드로 저장하면 정상적으로 동작합니다. 당연한거겠지만 아스키코드쓰는데서 그 파일만 깨지는수도 있으니 조심!! p.s. 당연이 이 후버전에서는 일반적으로 컴파일안하고 런했을때 볼수 있습니다. 한마디로 잘 수정됬다는 소리 ㅎㅎㅎㅎ
* 지속적으로 추가하고 있습니다. * 다른 값이 필요하면 요청 주세요. 1. 확인 에디터를 눌러 'dotnetfiddle.net'사이트로 가서 직접 날짜를 수정하여 사용해 보실 수 있습니다. 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 31 32 33 34 35 //0. 기준 숫자 //결과 : 123.456 double doubleInput = 123.456; //1. 금액 표시를 붙여준다.(한국이면 \를 미국이면$를 붙여준다.) //결과 : $123.46 string.Format("{0:C}", doubleInput); //2. D뒤에 숫자만큼 0을 체워 자리를 맞춥니다...
실버라이트를 하니 좋은점중 하나는 C#코드를 바로 웹상에서 테스트해볼수 있는 형태로 제공이 가능 한점 같습니다. ㅎㅎ (물론 컴파일까지는 되지 않습니다만-_-;) 실버라이트 자체가 C#코드다 보니 별도의 작업없이 바로 보여줄수 있저. http://blog.danggun.net/360 이글을 보시면 아시겠지만 바로 코드를 동적으로 테스트 해볼수 있습니다. 나름 C#관련 글을 쓸때 유용할듯 하네요
* 지속적으로 추가하고 있습니다. * 다른 값이 필요하면 요청 주세요. 1. 확인 에디터를 눌러 'dotnetfiddle.net'사이트로 가서 직접 날짜를 수정하여 사용해 보실 수 있습니다. 2. 코드 아래는 코드 입니다. using System; public class Program { public static void Main() { Console.WriteLine("//0. 기준날짜"); DateTime dateToday = DateTime.Today; Console.WriteLine("//결과 : " + dateToday.ToString()); Console.WriteLine("DateTime dateToday = DateTime.Today;"); Console.WriteLine(" "); Con..
DataTable dtReturn = new DataTable(); DataTable dtTemp = new DataTable(); ..... 테이블에 데이터 추가하는 코드..중략 ..... dtReturn.Rows.Add(dtTemp.Rows[j]); 이렇게 하면 이 행은 이미 다른 테이블에 속해 있습니다. 라는 에러가 납니다. 이것은 테이블에 로우를 추가할때도 추가되는 로우는 각각의 객체가 아닌 주소만 복사된다는 소리인데요. 이걸 클론처럼 복사에서 들넣는 방법은 인포트입니다. dtReturn.ImportRow( dtTemp.Rows[j]); 이렇게하면 해결 완료
관련글 c++ DLL을 C#에서 사용해보자 ( 함수 마샬링 ) c++ DLL을 C#에서 사용해보자 ( 클래스 마샬링 ) *Window XP 32bit 기준입니다.* 머......피치못할 사정으로 c++로 작성된 dll을 써야 된다면.....명복을 크크크크크크크 하지만 어차피 c++ dll은 여러모로 쓸모가 많다 보니 재판매(?)를 어느 정도 고려 할 겸, 역어셈에도 닷넷보다는 안전해 보여서 dll은 c++로 만들어 쓸 때가 있습니다. 근데 이렇게 딴 언어에서 만든 dll을 쓰기 위해서 마샬링이 필요합니다. ㅡ,.ㅡ;;; 일종의 컨버전이라고 생각하면 됩니다. 쉽게 생각하라고 컨버전이라고 한 거지 전혀 다릅니다. 컨버전은 프로그램 자체를 다른 언어에 맞게 변경시키는 것을 의미하고. 마샬링은 다른 언어에서도 ..