본문 바로가기

전체 글54

main 외부기호(참조 위치:_tmainCRTStartup함수)에서 확인하지 못했습니다. 프로그램 시작점을 찾지 못해 발생하는 에러. 코드내에 main 메서드가 없을 경 발생한다. main 메서드가 존재하는데도 발생할 경우 프로젝트 속성 - 구성속성 - 링커 - 시스템 - 하위 시스템에 가보면 콘솔과 창 등 여러가지 모드를 선택할 수 있다. 프로젝트 생성시 설정에 따라 정해져있는데, 콘솔의 경우 main 메서드가 있어야 하고, 창의 경우 WinMain 메서드가 있어야한다. WinMain 메서드를 구현한 경우 창으로 바꿔주면 해결 된다. 2011. 11. 3.
STL이란? (1) STL : Standard Template Library의 약자. 일반적으로 많이 사용될 수 있는 자료구조와 알고리즘 모음 라이브러리. 템플릿으로 만들어져 있으며, 이해하기 위해서는 C++의 템플릿을 이해해야할 필요가 있다. STL은 Generic Programming으로 만들어진 대표적인 예이다. Generic이란 총칭한다는 뜻으로 C++에서는 변수의 타입을 총칭한다. - 템플릿을 이용하면 총칭화된 타입을 사용하는 클래스와 함수를 만들 수 있다. - 템플릿을 사용하면 타입에 제약을 받지 않는 로직을 기술 할 수 있다. - Generic Programming을 하기 위해서는 템플릿이 꼭 필요하다. * 참조 : 한빛 네트워크 최흥배님 글 2011. 11. 3.
DataGrid에서 Row Data 모두 가져오기 실버라이트 DataGrid에 WCF로부터 요청한 데이터를 받아 바인딩하는 코드를 작성했다. WCF에서는 DataBase에서 쿼리해서 List 형태로 돌려준다. userGrid.ItemSource = e.Result; 이후, DataGrid에서 Row의 값을 변경하고, 이 정보를 다시 WCF에 전달해서 DataBase를 업데이트해 주려고 한다. 하지만 실버라이트 DataGrid에서는 Row에 접근하는 메서드나 속성이 없다. 구글링을 찾아본 결과 DataGrid에 들어있는 이벤트 중에서 SelectionChanged? 뭐 이런 이벤트에서 전달받는 인자인 sender를 캐스팅해서 사용하면 현재 변경한 Row에 대해 작업을 해줄수 있다고 나와있다. 그러나 내가 원하는건 현재 변경한 Row에 대한 작업이 아닌 전.. 2011. 5. 3.
TextBox에 숫자만 입력받기 우선 TextBox에 KeyDown 이벤트를 추가한다. 그리고나면 private void TextBox1_KeyDown(object sender, KeyEventArgs e) { if (checkNumber(e.Key)) { e.Handled = false; } else e.Handled = true; } 위와 같은 코드를 생성하면 되는데, e.Key를 통해 눌린 키를 확인할 수 있다. 눌린 키가 숫자이면 checkNumber 메서드는 true를 반환하므로 결국 e.Handled가 false면 입력이된다. 즉, e.Key를 통해 눌린 키를 확인하고, e.Handled에 false를 반환하면 입력이 되고, true를 반환하면 입력이 되지 않는다. 숫자를 확인하는 checkNumber 메서드는 아래와 같이 .. 2011. 4. 29.
XML 파싱 하기 우선 XML 파일이 필요하다. ServerIP 000.000.000.000 DatabaseIP 000.000.000.000 MyIP 000.000.000.000 IP 관리를 위한 XML 파일을 만들었다. ServerIP와 DatabaseIP, MyIP를 만들고 값을 000.000.000.000으로 적어놓았다. using System.Xml; private IP getIP() { IP ip = new IP(); XmlDocument xmlDocument = new XmlDocument(); xmlDocument.Load(Server.MapPath("IpConfiguration.xml")); XmlElement elementlist = xmlDocument.DocumentElement; foreach (Xm.. 2011. 4. 29.
실버라이트에서 Client IP 얻어서 사용하기 실버라이트에서는 기본적으로 Request를 사용할 수 없다. WebPage를 상속하지 않기 때문인데 이와 같은 경우 실버라이트를 호출하는 aspx 페이지에서 param을 이용해서 사용할 수가 있다. 우선 실버라이트를 호출하는 aspx 페이지에 가보면 위와 같은 코드가 있다. 위에서 빨간색 글 부분이 추가한 부분이다. initParams라는 파라미터로 Request를 사용해서 얻은 Client IP를 넘겨준다. 이 후 실버라이트 프로젝트로 가서 App.xaml.cs로 가면 private void Application_Startup(object sender, StartupEventArgs e) { string ip = ""; if (e.InitParams.ContainsKey("ClientIP")) ip =.. 2011. 4. 28.
코드로 배포/설치프로그램 생성 후 명령프롬프트 명령 내리기 특정 프로그램 실행시 레지스트리 등록이나 별도의 프로그램 실행이 필요한 경우가 있다. 이때, 배포/설치 프로그램으로 배포/설치를 하는 경우 경로가 변경되는데, 이를 감안하여 코딩을 해보았다. 내용은 윈도우의 regsvr32를 이용해 ocx를 레지스트리에 등록하는 작업이다. string text = "@echo off" + Environment.NewLine + "regsvr32 " + "\"" + Application.StartupPath + @"\Test.ocx" + "\"" + Environment.NewLine + "exit" + Environment.NewLine; 우선 Application.StartupPath를 이용해 프로그램이 실행된 위치를 알아오고, 그 위치에 있는 Test.ocx 파일을 .. 2011. 2. 16.
효율적으로 MSDN을 보는 방법 (펌) 윈도우 개발자를 위한 가장 기초적인, 동시에 가장 방대한 레퍼런스가 있다면 바로 MSDN일 것이다. 상당수의 고급 개발자들은 MSDN만 주어진다면 거의 모든 정보를 다 얻을 수 있다고 말하기도 한다. 하지만 아직도 초보 개발자들은 MSDN은 설치해두었지만 그 속에서 정보를 얻고 있지는 못하다. 게시판에 올린 질문에 냉소적으로 올라오는 MSDN을 참고하라는 말에 상처를 받기도 한다. 왜냐하면 정작 본인은 MSDN을 보았으나 정보를 얻지 못했기 때문이다. 이 글에서는 이러한 MSDN을 효율적으로 보는 방법에 대해서 다룰 것이다. 각 함수에 대한 정보를 보고 이해하는 방법에서부터 방대한 MSDN에서 자신이 원하는 정보를 찾기 위한 방법까지 언급할 것이다. 물론 이 과정에서 기본적인 영어 독해 실력은 필수사항이.. 2011. 2. 14.
Query 정리 컬럼 타입 변경 : ALTER Table [테이블명] ALTER Column [컬럼명] 타입; 예) ALTER Table [dbo].[User Info] ALTER Column [Name] nvarchar(MAX); 2011. 2. 9.