네트워크 패킷 캡쳐 프로그램 DarkKaiser, 2008년 7월 22일2023년 8월 30일 Microsoft Network Monitor 3.1http://www.microsoft.com/DOWNLOADS/details.aspx?FamilyID=18b1d59d-f4d8-4213-8d17-2f6dde7d7aac&displaylang=en Continue Reading
System.Configuration.Install 네임스페이스의 Installer 를 이용한 설치 프로젝트 작성 DarkKaiser, 2008년 4월 14일2023년 9월 6일 using System; using System.Collections.Generic; using System.Text; using System.Windows.Forms; using System.Configuration.Install; namespace WindowsApplication { [System.ComponentModel.RunInstaller(true)] public class SetupInstaller : System.Configuration.Install.Installer { public SetupInstaller() { this.AfterInstall += new InstallEventHandler(SetupInstaller_AfterInstall); this.BeforeInstall += new InstallEventHandler(SetupInstaller_BeforeInstall); this.Committed += new InstallEventHandler(SetupInstaller_Committed); } // 셋업 설치가 완료되었을 때 호출 void SetupInstaller_Committed(object sender, InstallEventArgs e) { // 아래 Continue Reading
DirectX 구조 DarkKaiser, 2008년 4월 13일2023년 9월 3일 DirectX의 구조는 위와 같다. 하드웨어를 직접 접근하는 HAL(Hardware Abstraction Layer)과 소프트웨어적으로 구현한 HEL(Hardware Emulation Layer) 두 개로 나누어집니다. 이 두 가지의 라이브러리를 DirectX라는 인터페이스를 통하여 하드웨어에 맞는 최적의 환경으로 만들어 프로그램을 실행하게 하는 것입니다. HAL은 하드웨어 업체에서 제작하여 배포하게 됩니다. 사용자는 프로그램에서 자동으로 하드웨어를 탐지하여 해당하는 하드웨어가 있다면 해당하는 라이브러리를 Continue Reading
VC에서 원격 데이터 객체 호출하는 방법 DarkKaiser, 2008년 4월 11일2023년 9월 5일 IDispatch* CreateConnection(LPCTSTR strAddr) { #ifdef UNICODE LPTSTR strAddress = strAddr; #else size_t sl = strlen(strAddr); LPWSTR strAddress = new WCHAR[sl+1]; strAddress[sl] = 0; mbstowcs(strAddress, strAddr, sl); #endif IDispatch* pDispatch = NULL; bool ok = false; RDS::IDataspacePtr pDS; if (SUCCEEDED(pDS.CreateInstance(OLESTR("RDS.DataSpace")))) { _variant_t Result; try { Result = pDS-CreateObject(_bstr_t("Component.bizCOM"), _bstr_t(strAddress)); HRESULT Continue Reading
VB의 자동화 사용 DarkKaiser, 2008년 4월 9일2023년 9월 2일 후기바인딩 사용 Dim obj as Object Set obj = CreateObject("AddBack.AddBack.1") obj.Prop = propVaue obj.Method 초기바인딩 사용 Dim obj As AddBack Set obj = New AddBack obj.someMethod 첫번째 문장이 실행되어 Visual Basic 함수인 CreateObject가 호출될 때 Visual Basic은 COM 라이브러리의 CLSIDFromProgID 함수를 호출하여 CreateObject 함수의 매개변수에 지정된 ProgID를 대응되는 CLSID로 변환한 Continue Reading
safesafe.h DarkKaiser, 2008년 4월 8일2023년 9월 6일 C언어 표준에 포함된 문자열 함수들 중에 일부는 매우 위험하다. 대표적인 함수가 strcpy와 sprintf함수다. 이 두 함수의 경우 출력 값으로 문자열 포인터를 전송한다. 하지만 출력 문자열 포인터의 크기를 입력 받지 않기 때문에 버퍼 오버런의 위험을 가지고 있다. 버퍼 오버런의 경우 보안상 취약점이 될 수 있다. 따라서 견고한 프로그램을 작성하기 위해서는 되도록 Continue Reading
실버라이트 2 베타1 개발환경 설치하기 DarkKaiser, 2008년 4월 7일2023년 9월 3일 실버라이트 2 베타 1 설치하기 – Silverlight 2 Beta 1 Runtime 설치 – Microsoft Silverlight Tools Beta 1 for Visual Studio 2008 설치 (VS 2008 이 설치되어 있어야 겠죠) – Expression Blend 2.5 Preview 설치 – VS 2008을 사용하시면 꼭 필요하지는 않지만 필요하시다면 Silverlight 2 Beta Continue Reading
내컴퓨터, 제어판, 내 내트워크 환경, 휴지통 실행하기… DarkKaiser, 2008년 4월 7일2023년 9월 4일 #using <System.dllusing namespace System; using namespace System::Diagnostics; using namespace System::ComponentModel; /// <summary/// Opens the Internet Explorer application. /// </summaryvoid OpenApplication( String^ myFavoritesPath ) { // Start Internet Explorer. Defaults to the home page. Process::Start( "IExplore.exe" ); // Display the contents of the favorites folder in the browser. Continue Reading
유니코드로 개발하기(MFC 프로젝트) DarkKaiser, 2008년 4월 7일2023년 9월 6일 출처 : http://eslife.tistory.com/entry/유니코드로-개발하기 MFC 로 거의 10년이 넘게 유지 보수해 오던 회사 프로젝트를 드디어(이제야?) 유니코드로 이전한다고 합니다. 막상 유니코드로 이전하려고 하니, 그 동안 익숙하게 사용해 오던 함수들, 특히 strcpy, memcpy 와 같은 표준 C 라이브러리가 애물단지가 되고 말았습니다. 진작에 갔어야 하는데, 차일피일 미루다 보니 한번에 수정하기엔 너무 부담스러울 정도로 Continue Reading
사운드파일(WAV,OGG등)의 플레이 시간 구하는 방법 DarkKaiser, 2008년 4월 6일2023년 9월 4일 출처 : http://a.tk.co.kr/373 WAVEFORMATEX m_wfx; ///< 웨이브포멧 int m_nDataSize; ///< 데이타크기 inline int CPSoundFile::GetPlayTime() const { return m_nDataSize / ( m_wfx.nSamplesPerSec / 8 * m_wfx.wBitsPerSample * m_wfx.nChannels ); } Continue Reading