본문 바로가기

개발, IT186

비스타의 세션 0 고립화와 응용 프로그램 호환성 비스타의 세션 0 고립화와 응용 프로그램 호환성 최근 한 고객이 자기들이 만든 윈도우 서비스를 비스타에 적용하는데 문제를 겪었다. 서비스는 시작과 함께 시스템 트레이에 아이콘을 보여주고, 이 아이콘은 사용자와 상호작용하는 데 사용된다. 서비스가 윈도우즈 XP, 윈도우즈 2003에서는 잘 동작했지만, 비스타에서는 잘 동작하지 않았다. 아래 포스팅이 비스타에서 변화된 점, 왜 바뀌어야 했는지, 이 변화가 응용 프로그램에 어떤 영향을 미칠지를 설명한다. 마지막 섹션에서는 개발자들이 서비스를 사용자와 대화할 수 있도록 만들고 싶을 때, 응용 프로그램을 비스타에서 호환되게 하기 위해 어떻게 해야 하는지를 설명하겠다. Backgrounder 윈도우즈 XP, 윈도우즈 서버 2003과 그 이전 버전의 윈도우즈 운영체제.. 2008. 6. 25.
XML 웹서비스의 개념 정보 처리 분야의 새로운 패러다임(XML 웹서비스) 등장 o 모든 통신 수단이 인터넷으로 전환되면서 네트워킹이 강조되고 통합적이고 동적인 서비스가 요구된다. 이러한 변화된 컴퓨팅 환경에 통합된 XML 웹서비스를 제공하는 것이 인터넷시대의 새로운 패러다임으로 등장 o XML 웹서비스는 기존 통합기술들이 폐쇄적 네트워크를 이용하고, 독립적인 H/W 및 S/W 아키텍쳐의 단점을 극복하기 위해 개별적인 애플리케이션을 저비용·고효율로 통합하는 대안으로 등장 o 새로운 패러다임의 등장으로 시스템 분석과 설계, 객체지향적인 기술을 습득하고 XML 웹서비스를 설계, 구축 가능한 인력과 POST PC의 플랫폼에 맞는 정보를 제공할 인력이 부족 (1) XML Webservice 개념 o XML 웹서비스란 "인터넷을 이용한.. 2008. 6. 20.
DLL 종류 및 링크방법 DLL 종류 1. 정규 DLL 정규 DLL 이란 Win32 프로그래밍 환경으로 설정된다는 것입니다. 즉 함수를 호출 할 때 클래스 형태의 함수를 호출하는 것이 아니고 C 함수 형태로 호출할 수 있는 것입니다. 정규 DLL은 MFC를 사용하지 않는 다른 프로그램과도 원활하게 연결될 수 있는 DLL 이라고 보면 됩니다. Win32 SDK의 DLL 구조를 그대로 사용하기 때문입니다. 그러나 내부적으로는 클래스를 사용할 수 있습니다. 정규 DLL은 MFC 라이브러리를 사용할 경우, 공유하거나 자체적으로 가지고 있거나 둘중 하나를 선택할 수 있습니다. - Regular DLL with MFC statically linked MFC 라이브러리를 LIB 형태로 링크하여 DLL을 만드는 것 - Regular DLL u.. 2008. 6. 20.
DLL용 함수 선언 __declspec(속성) 선언 이 키워드는 Microsoft의 Visual C++에서 함수나 변수의 선언에 별도의 정보를 제공하기 위해 사용하는 것이다. 다음과 같은 속성이 사용될 수 있다. thread: Thread Local Storage 데이터를 말하며, 이 지정자가 붙은 함수는 해당 스레드에서만 사용할 수 있다. naked: 함수에서 접두어 접미어를 생성하지 않는다. dllimport: DLL에 있는 데이터, 오브젝트, 함수를 임포트 한다. dllexport: DLL에 있는 데이터, 오브젝트, 함수를 익스포트 한다. 함수를 선언할 때 dllexport로 선언하면, DEF 파일의 Exports란에 이 함수를 명시하지 않아도 되며, __export 키워드를 대신한다. extern "C" C++로 작.. 2008. 6. 19.
Detected Memory leaks(메모리릭 찾기) 코드를 작성하다보면 new연산자를 이용해서 메모리를 동적으로 할당하여 사용하는 경우가 매우 흔하다. 이후 해제를 해주면 아무 문제가 없지만.. 이때 해제를 해주지 않았을 경우 디버거는 Output Window로 Memory leaks 라는 메시지를 출력한다. 즉, Memory leak란 메모리를 할당하여 사용하고 해제를 해주지 않았을때 발생하는 것인데.. 아주 작은 프로그램이나 유닛테스트용 프로그램 이라면 크게 상관이 없지만, 대부분의 프로그램에서는 이것은 언제 터질지 모르는 폭탄과도 같은 것이다. 생각해봐라... 제품을 팔았는데, 어느날 갑자기 사용자가 연락이 와서.. "이거 자꾸 프로그램이 죽어버리는데요?" 라고 했을때... 백날 컴파일만 해도 에러 하나 뜨지 않는다. 지금 이 글을 쓰고 있는 주인장.. 2008. 6. 18.
메모리 릭 찾기 CRT( C Runtime library )를 사용합시다. 아래의 코드를 사용하면 메모리 릭( 메모리 누수, Memory Leak )에 효과적으로 대처할 수 있다. 주의할 점은 사용법을 명확히 숙지하고서 사용할 것. Introduce. int WINAPI wWinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow ) { // Enable run-time memory check for debug builds. #if defined(DEBUG) | defined(_DEBUG) _CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF ); #endif 다이렉트 X.. 2008. 6. 18.
ASSERT_VALID, AssertValid, Dump ASSERT_VALID, AssertValid, Dump에 대해서 알아보자. 별로 쓸 일이 있을까 싶지만, 원도우 프로그램을 하면서 무심코 가장 많이 접하는 함수 중에 하나였을 것이다.(이 함수를 처음 본다는 사람은 그냥 무심결에 넘어가서 그렇지, 그렇지 않다면 좀 문제가 있을 것 같다.) 예를 들어 원도우 프로그램을 하나 자동으로 생성하면, 일반적으로 CXXXApp, CXXXView, CXXXDoc, CMainFrame 등의 class가 자동으로 만들어진다. 이때 CXXXApp를 제외한 아무 class나(여기서는 CXXXView)를 열어보면 CXXXView.h에는 #ifdef _DEBUG virtual void AssertValid() const; virtual void Dump(CDumpContext.. 2008. 6. 18.
Web.Config 설정 섹션 이 섹션은 섹션의 하위 섹션이 아니라 같은 레벨에 존재하는 섹션으로 개발자가 Web.config 파일 안에 직접 필요한 특성과 값을 추가할 수 있도록 제공되는 섹션입니다. 이 섹션의 사용 형식은 다음과 같습니다. 보시는 바와 같이 섹션은 , , 등 세 개의 하위 섹션을 제공합니다. 하위 섹션 이 섹션은 개발자가 필요한 특성 및 값을 추가하는 섹션으로 다음과 같은 특성을 갖습니다. 특성 설명 key 추가할 특성 키 입니다 value 해당 키에 매핑될 값입니다. 하위 섹션 이 섹션은 섹션에 의해 추가된 키 값을 제거하기 위한 섹션으로 다음과 같은 특성을 갖습니다. 특성 설명 key 제거할 키 이름입니다. 보통 섹션의 가장 좋은 활용 예로는 데이터베이스 연결을 위한 연결 문자열을 저장하여 필요한 때에 코.. 2008. 6. 13.
DDL 지원 가능 사운드카드 DDL 이란? Dolby Digital Live 약자로 PC자체의 소리를 Digital 로 Encoding 하여 내보내는 실시간 압축 기술을 말한다.기존에 내장사카에 달렸던 Realteck 칩셋이 이걸 지원해서 5.1채널로 게임을 했었는데 보드를 바꾸고 나니 그 기능이 지원안되 한참 삽질을 한끝에 요즘 나오는 보드에는 DDL 기능이 있는 칩셋이 없다는 걸 알아냈다.결국 사운드 카드를 새로 사야한다는건데 여러 사운드 카드가 물망에 올랐지만 다 가격대가 너무 비싸 ㅠ.ㅠHDA Digital X-Mystique 7.1 HT Omega Striker 7.1 HT Omega Claro 2008. 6. 13.