메신저의 자리비움 기능을 구현하려면 보통 후킹을 이용한다. 하지만 윈도우2000 이상부터는 윈도우에서 이 기능을 API를 통해서 제공해준다. API 이름은 GetLastInputInfo()..
문제는 윈도우2000 이상에서만 사용할 수 있으므로, 동적으로 함수 포인터를 얻어와서 사용할 것. 함수 포인터를 얻기 실패하였을 때(윈9x 계열일 때)는 기존의 후킹 방법으로 하면 되겠다.
메신저의 자리비움 기능을 구현하려면 보통 후킹을 이용한다. 하지만 윈도우2000 이상부터는 윈도우에서 이 기능을 API를 통해서 제공해준다. API 이름은 GetLastInputInfo()..
문제는 윈도우2000 이상에서만 사용할 수 있으므로, 동적으로 함수 포인터를 얻어와서 사용할 것. 함수 포인터를 얻기 실패하였을 때(윈9x 계열일 때)는 기존의 후킹 방법으로 하면 되겠다.
출처 : http://aego.pe.kr/AutomateCodeSigning.html#toc1
비스타 운영체제가 실행 가능한 파일 포맷(PE:.exe, .dll, .ocx)들의 코드사이닝을 강제(사용자입장에서 웬지 꺼림칙하게 느끼게)하기 시작하면서 어쩔 수 없이 기존의 배포했던 프로그램의 실행파일을 코드사이닝 처리해야 하게 되었다. 한 두개의 파일 코드사이닝이야 .bat 파일을 만들어서 하거나 아니면 직접 커맨드라인에서 signcode.exe 위저드를 통해서 처리해버려도 되지만 수백개에 달하는 파일을 처리해야 되는 경우라면
출처 : http://codecrue.egloos.com/782885
VisualStudio 2005 에서 컴파일하던중 아래와 같은 에러를 만나서 해결방법을 모색하던중 원인을 알아내어 올립니다.
LINK : ../../Bin/Debug/xxx_d.dll을(를) 찾을 수 없거나 마지막 증분 링크에 의해 빌드되지 않았습니다.
전체 링크를 수행하고 있습니다.
매니페스트를 포함하고 있습니다…
컴파일환경 설정에서 ‘증분 링크 사용’ 에 관한 옵션 설정이 있습니다. 증분링크? 증분링크가 뭘까?
일반적으로 사용되지
참고 : http://support.microsoft.com/default.aspx?sd=msdn&scid=kb;en-us;176792
// URL을 추출합니다. ASSERT(m_spSHWinds != NULL); long nCount = m_spSHWinds-GetCount(); IDispatchPtr spDisp; for (long i = 0; i < nCount; i++) { _variant_t va(i, VT_I4); spDisp = m_spSHWinds-Item(va); SHDocVw::IWebBrowser2Ptr spBrowser(spDisp); if (spBrowser != NULL) m_ctrlUrlList.AddString(spBrowser-GetLocationURL()); }
요즘에는 윈도우9x을 기준으로 프로그래밍 하진 않을 것이다.
다만 윈도우2000 이상을 기준으로 유니코드방식으로 작성한 프로그램을 윈도우9x에서의 호환성 차원에서 수정하는 정도일 것인데, 유니코드라는 녀석때문에 윈도우9x 계열과 부딪히게 된다.
윈도우 9x 계열에서 유니코드 방식으로 작성한 프로그램을 실행하면 프로그램이 실행되지 않는다. 이를 해결하는 방법은 아래와 같다.
Compiling Your Application with the Microsoft Layer for
기존 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;