Win9x 에서 유니코드 사용가능하게 프로그래밍… DarkKaiser, 2008년 10월 12일2023년 9월 5일 요즘에는 윈도우9x을 기준으로 프로그래밍 하진 않을 것이다.다만 윈도우2000 이상을 기준으로 유니코드방식으로 작성한 프로그램을 윈도우9x에서의 호환성 차원에서 수정하는 정도일 것인데, 유니코드라는 녀석때문에 윈도우9x 계열과 부딪히게 된다. 윈도우 9x 계열에서 유니코드 방식으로 작성한 프로그램을 실행하면 프로그램이 실행되지 않는다. 이를 해결하는 방법은 아래와 같다. Compiling Your Application with the Microsoft Layer for Continue Reading
Vista에서 알려진 경로를 구하는 방법… DarkKaiser, 2008년 10월 11일2023년 9월 6일 기존 XP에서는 SHGetFolderPath 함수를 이용하면 가능했지만 Vista에서는 SHGetKnownFolderPath 함수를 사용해야 한다. 아직 Compatibility를 위해서 기존 함수도 지원한다고 하지만 Recommand가 아니니 바꿔야 잠재된 문제를 앱앨 수 있겠죠. if (_isVista) { WCHAR *pSavePath = NULL; HMODULE shell32module = GetModuleHandle("shell32.dll"); // Defined in the platform SDK for Vista const DWORD KF_FLAG_CREATE = 0x00008000; Continue Reading
컴파일 하는 시점에 실행파일 아이콘 변경하기 DarkKaiser, 2008년 9월 6일2023년 9월 6일 간혹 컴파일 하는 시점에 실행 파일의 아이콘을 다른 아이콘으로 변경하고자 하는 경우가 있다.저 같은 경우는 업체별로 실행파일의 아이콘을 달리하여야 할 경우인데.. 이 때 아래와 같이해 주면 된다. 우선 VC++ 프로젝트에서 .rc 파일의 ICON 섹션을 보면 아래와 같은 내용이 있다. Icon with lowest ID value placed first to ensure Continue Reading
툴팁 생성시 마우스가 오버되었을 때 항상 나오도록 하기 DarkKaiser, 2008년 9월 6일2023년 9월 6일 툴팁 컨트롤 생성시 다음의 속성을 주도록 한다. TTS_ALWAYSTIP툴팁 생성시 위의 속성을 주게되면 툴팁의 윈도우가 포커스를 안가지고 있더라도 항상 툴팁이 나온다.안주게 되면 포커스를 잃어버리면 툴팁이 나오다 안나오다 하는 현상이 발생한다. Continue Reading
msvcrt.dll, msvcr71.dll, msvcr80.dll 그리고 WinSxS DarkKaiser, 2008년 9월 6일2023년 9월 6일 출처 : http://somma.egloos.com/3020481 WinSxS 는 언제 생긴건지…GAC (Global Assembly Cache) 가 Native 에도 있었다니…지나치다 보기는 했는데 오늘에야 뭐 하는 넘인지 알았네요.(예전에 미친감자님 블로그에서 보긴 했지만 당장 필요하지 않으면 잘 안보게 되서..쿨럭..) 만일 전에 .NET 공부를 해두지 않았으면 manifest 니 GAC 니 하는 개념을 몰라서 한참 헤맬뻔 했군요. 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
safesafe.h DarkKaiser, 2008년 4월 8일2023년 9월 6일 C언어 표준에 포함된 문자열 함수들 중에 일부는 매우 위험하다. 대표적인 함수가 strcpy와 sprintf함수다. 이 두 함수의 경우 출력 값으로 문자열 포인터를 전송한다. 하지만 출력 문자열 포인터의 크기를 입력 받지 않기 때문에 버퍼 오버런의 위험을 가지고 있다. 버퍼 오버런의 경우 보안상 취약점이 될 수 있다. 따라서 견고한 프로그램을 작성하기 위해서는 되도록 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