JONSEOK

NSIS-언인스톨러용 callback functions

언인스톨러용 callback은 알아 보기 쉽도록 되어 있다. callback이므로  시작은 ‘.’으로 하지만, 언인스톨러에서 사용되는 callback이라서 앞에 ‘un’이 전부 붙어 있다. 그 뒤에 이름은 인스톨러용 callback과 같은 것들은 언인스톨러에서 같은 기능을 한다고 여기면 된다. 1. un.onGUIInit 2. un.onInit 3. un.onUninstFailed 4. un.onUninstSuccess 5. un.onGUIEnd 6. un.onRebootFailed 7. un.onUserAbort 인스톨러에서 각각의 callback을 설명했으니 여기서는 생락하겠다.

NSIS-언인스톨러용 callback functions 더 읽기"

NSIS-인스톨러용 Functions/Callback functions

function이라는 것은 비어 있거나 또는 그 이상의 명령문을 가진다는 점에서 Section과 비슷하다. 사용자가 만든 function은 인스톨러에 의해서 직접적으로 불리지 않으며, section에서 call 명령을 이용해서 부른다. callback function은 특정한 이벤트가 발생했을때 인스톨러에 의해서 불려진다. function은 다른 function이나 section의 바깥 부분에서 정의 되어야 한다. 1. Function Commands 1.1 Function  function function_name 새로운 function을 시작할때 사용하는 명령어이다. 만약 function의 이름이

NSIS-인스톨러용 Functions/Callback functions 더 읽기"

NSIS-배포 프로그램 만들기

※ 다운로드 (완전 무료) http://nsis.sourceforge.net/ 설치 후 아래 예제를 따라하면 쉽게 배포 프로그램을 만들 수 있다.   ※ 예제   1. 폴더 생성   1.1 배포 프로그램에 포함되는 파일이 있는 폴더를 만든다.        c:\NSIS Test\SourceFile     1.1.1 폴더를 생성하고 배포 파일을 만든다. 마우스 오른쪽 버튼으로 보이는 메뉴에서 “새로 만들기>텍스트 문서”로 일반 텍스트

NSIS-배포 프로그램 만들기 더 읽기"

NSIS-Script File Format

NSIS는 이미 알고 있듯이 스크립트로 만들어서 컴파일 하는 과정을 거치게 되어 있다. 아주 복잡한 인스톨 프로그램까지 만들 수 있지만, 천리길도 한 걸음부터라고 가장 기본부터 하나씩 정리해볼 생각이다. 누군가에게 도움이 되기를 바라는 마음도 있지만, 나 자신의 알고 있음을 한번 더 정리하는것도 크니 꾸준하게 정리해서 목표는 현재 곰플레이어 인스톨 하는 수준까지 만드는게 목표이다. NSIS를 다운 받자 http://nsis.sourceforge.net/Main_Page

NSIS-Script File Format 더 읽기"

NSIS 에서 MUI 를 이용하여 사용자 페이지 추가하기

NSIS 에서 MUI 를 이용하여 사용자 페이지 추가하기 헬마입니다. 이번에 코덱팩에 몇 가지 사용자페이지들을 추가하면서 혹시 모르시는 분이 계실까봐 간단하게나마 글을 하나 써봅니다. 물론, 저의 형편없는 글솜씨로 더욱 모르시는분이 늘어나실지도 모르겠지만 … ^^   NSIS 는 기본적으로 몇 가지 종류의 정해진 화면을 제공합니다. 이러한 화면들은 설치관리자에서 거의 필수불가결로 쓰일만큼 필수적인 화면들이지요.  하지만, 언제나 이런 화면들만

NSIS 에서 MUI 를 이용하여 사용자 페이지 추가하기 더 읽기"

윈도우 데이터 타입

Common Data Types The following data types are commonly used when transferring data across the wire. All multiple-byte numbers are transmitted in little-endian format (least significant byte first), unless otherwise indicated. typedef __int8; typedef __int16; typedef __int32; typedef __int64; typedef int BOOL, *PBOOL, *LPBOOL; typedef BYTE BOOLEAN, *PBOOLEAN; typedef WCHAR * BSTR; typedef unsigned char

윈도우 데이터 타입 더 읽기"

윈도우에서 유니코드 프로그래밍

아래의 글은 Jeffrey Richter 의 Programming Applications for MS Windows 4th edition중에 Part 1의 2장 Unicode 의 How to Write Unicode Source Code 부분을 번역해두었던 것을 올리는 것이다. (요즘 포스트가 뜸해서^^;;) 국내에 번역본이 출간된 걸로 알고 있지만 절판된 관계로 구해보지 못했고, 출판사도 망한 것으로 알고 있으며(다른 곳으로 흡수 합병 된 것인가?) 개인적인 용도로 번역해봤으므로 저작권에

윈도우에서 유니코드 프로그래밍 더 읽기"

헝가리안 표기법

개요..   헝가리안 표기법은 “구시대의 유물이니 쓰지 말아야 한다”라는 주장과 “대규모 프로젝트, 코드파악이 잘된다.”등의 논란은 많지만 사용을 잘 하면 코드 분석(가독성) 및 작성에 매우 도움이 되는 코딩 방법론입니다.   헝가리안 표기법 정리..   Hungarian Notation Data Type Prefix Example Boolean b bContinue Int n nIndex Short n nIndex Character c cFirstInitial Float f Percent Double

헝가리안 표기법 더 읽기"

class로 작성된 DLL 사용방법

Class를 아무런 생각없이 DLL(dynamic link library )로 만들어버렸다.. -_-;; 다만들고 나서 사용할려고 보니 막막한것… T^T   이리저리 뒤지고 뒤지다 알아낸 방법이다.   대략 방법은 예를 들어 설명하면 사용할 클래스 이름을 CMy이라 하면   /////////////////////////////////////////////////////////////////////////////////////// – dll class header   class CMy{public: CMy();        // 생성자 ~CMy();        // 파괴자:연결 핸들을 해제한다.   //사용할

class로 작성된 DLL 사용방법 더 읽기"

PostQuitMessage() 사용시 주의사항

스레드 메시지 큐에 WM_QUIT 메시지를 붙이고 즉시 리턴한다. WM_QUIT 메시지를 큐에 붙임으로써 시스템에게 이 스레드가 종료될 것이라는 것을 미리 알려준다. 메시지 루프는 보통 WM_QUIT 메시지를 받으면 종료하도록 되어 있으므로 이 함수를 호출하면 메시지 루프가 종료된다. 특히 이 함수를 호출하는 스레드가 주 스레드일 경우는 주 스레드의 메시지 루프가 종료됨으로써 프로세스가 종료된다.   단, 이 함수는 메시지를

PostQuitMessage() 사용시 주의사항 더 읽기"

윈도우즈 MFC 클래스 접근 4가지 방법

예전에 4대 Class 접근방법이라는 자료중 다음 클래스간의 포인터 얻는 방법.그림으로 설명된것이 있는데 찾을수가 없다 ㅠ_ㅠ CTestApp, CMainFrame, CTestDoc, CTestView ◎ CTestApp에서CMainFrame* pFrame = (CMainFrame*)AfxGetMainWnd();CTestDoc* pDoc = (CTestDoc*)((CMainFrame*)AfxGetMainWnd())->GetActiveDocument();CTestView* pView = (CTestView*)((CMainFrame*)AfxGetMainWnd())->GetActiveView(); ◎ CMainFrame에서CTestApp* pApp = (CTestApp*)AfxGetApp();CTestDoc* pDoc = (CTestDoc*)GetActiveDocument();CTestView* pView = (CTestView*)GetActiveView(); ◎ CTestDoc에서CTestApp* pApp = (CTestApp*)AfxGetApp();CMainFrame* pFrame = (CMainFrame*)AfxGetMainWnd();CTestView* pView = (CTestView*)((CMainFrame*)AfxGetMainWnd())->GetActiveView(); ◎ CTestView에서CTestApp* pApp = (CTestApp*)AfxGetApp();CMainFrame* pFrame = (CMainFrame*)AfxGetMainWnd();             

윈도우즈 MFC 클래스 접근 4가지 방법 더 읽기"

윈도우 explorer의 contextmenu에 사용자 메뉴항목을 추가하는 방법

윈도우 explorer의 contextmenu에 사용자 메뉴항목을 추가하는 방법. 1. ATL COM AppWizard를 이용 프로젝트를 생성한다. 2. New ATL Object로 Simple Object를 추가한다. 3. 추가한 Simple Object의 헤더 파일을 보면 아래와 비슷한 항목들이 있는데 적당히 추가한다.   #include “IContextMenuImpl.h”  //추가선언 class ATL_NO_VTABLE 클래스 이름:  ……  public IShellExtInit, public IContextMenuImpl,  …… //IContextMenuSTDMETHOD(GetCommandString)(UINT, UINT, UINT*, LPTSTR, UINT);STDMETHOD(InvokeCommand)(LPCMINVOKECOMMANDINFO);STDMETHOD(QueryContextMenu)(HMENU, UINT, UINT, UINT,

윈도우 explorer의 contextmenu에 사용자 메뉴항목을 추가하는 방법 더 읽기"

링크파일(*.lnk)의 대상 추출하기

링크파일(*.lnk)의 대상 추출하기   링크파일에서 대상 파일의 Full Path를 찾는 방법이다….       HRESULT hres;     IShellLink* psl;     char szGotPath[MAX_PATH];     char szDescription[MAX_PATH];     WIN32_FIND_DATA wfd;      // Get a pointer to the IShellLink interface.     hres = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER,            

링크파일(*.lnk)의 대상 추출하기 더 읽기"

동적 아이콘 할당

동적 아이콘 할당….   아이콘 핸들러를 이용한 동적 아이콘 할당에 대하여 알아보자. 본 내용은 정보문화사의 PROFESSIONAL Visual C++ Windows Programming 의 내용을 발췌   작성할 프로그램은 Bitmap의 색 깊이(저장시 단색, 256색, 16색, 24비트로 나눠서 저장이 가능하다)에 따라 아이콘을 다르게 표시 하도록 하는 것 이다 ATL COM AppWizard를 이용해 프로젝트를 생성한다. Server Type – Dynamic Link

동적 아이콘 할당 더 읽기"

현재 프로세서의 상위 프로세서 알아내는 로직

현재 프로세서의 상위 프로세서 알아내는 로직…   PROCESSENTRY32를 이용하여 프로세서의 상위 프로세서의 정보를 알아낸후 다시한번 로직을 거쳐 프로세서의 이름을 알아내는 로직이다.   업무 중 현재 기동되는 Application의 부모 Process가 무엇인지 조사하여 처리할 내용이 있어 조사한 내용을 토대로 회사업무에 맞게 자체 수정한 내용임…     // 상위 프로세서의 PID를 알아내는 함수 BOOL GetParentProcessId(PROCESSENTRY32* pe32){#ifdef SCMS_DEBUG_WEBDAV LogOut(“scmsds02 GetParentProcessId

현재 프로세서의 상위 프로세서 알아내는 로직 더 읽기"

Directory Depth 구하는 함수 (VC)

DWORD QueryMaximumDepthofSomePath(LPCTSTR lpszPath){ WIN32_FIND_DATA wfs; HANDLE hFile = NULL;  TCHAR FullDirPath[MAX_PATH]; TCHAR NewDirPath[MAX_PATH]; ZeroMemory(FullDirPath, sizeof(FullDirPath)); ZeroMemory(NewDirPath, sizeof(NewDirPath));  int nCount = 1;      //디렉토리 깊이 (입력받은 lpszPath 부터 카운트 한다.) int nTotCount = 0;     //최하위 디렉토리 깊이  // 폴더가 존재 하는지, 드라이브인지 체크 if ( PathIsRoot(lpszPath) || _access(lpszPath, 0) == -1 ) {  return 0; }  wsprintf(FullDirPath,    “%s\\*.*”,lpszPath);  // Start scaning

Directory Depth 구하는 함수 (VC) 더 읽기"

SHGetSpecialFolderPath()

SHGetSpecialFolderPath()   Minimum DLL Version shell32.dll version 4.71 or later Custom Implementation No Header shlobj.h Import library shell32.lib Minimum operating systems Windows 2000, Windows NT 4.0 with Internet Explorer 4.0, Windows 98, Windows 95 with Internet Explorer 4.0 Unicode Implemented as ANSI and Unicode versions.    BOOL SHGetSpecialFolderPath(          HWND hwndOwner,  

SHGetSpecialFolderPath() 더 읽기"

ShellAPI 함수 ExtractIconEX()

ShellAPI 함수 ExtractIconEX() ShellAPI 함수인 ExtracIconEx() 는 실행 파일, 동적 링크 라이브러리(DLL) 또는 아이콘 파일에 사용할 수 있다.  다음은 함수에 대한 정의이다. Function ExtractIconEx(lpszFile : PAnsiChar;                        nIconIndex : Integer;                        phiconLarge : PhIconArray;    

ShellAPI 함수 ExtractIconEX() 더 읽기"

13가지 주의 사항: Visual C++ .NET 프로그램을 Visual Studio 2005로 이식하기 전에 알아야 할 13가지 내용

13가지 주의 사항: Visual C++ .NET 프로그램을 Visual Studio 2005로 이식하기 전에 알아야 할 13가지 내용 Stanley B. Lippman Microsoft Corporation 적용 대상:    Microsoft Visual C++ .NET    Microsoft Visual C++ 2005    Microsoft Visual Studio 2005    Microsoft Visual Studio .NET 요약 : 개발자가 응용 프로그램을 Microsoft Visual Studio 2005로 이식할 때 주의해야

13가지 주의 사항: Visual C++ .NET 프로그램을 Visual Studio 2005로 이식하기 전에 알아야 할 13가지 내용 더 읽기"

Common Lisp Guide

사실 리습을 처음 공부하려면 막막하다. 어떤 책으로 시작해야 할지, 수 많은 구현 중에 어떤 구현을 사용해야 할지, 쓸만한 라이브러리나 웹 프레임워크는 어떤 게 있는지.. 알기가 어렵다. 국내에 도움을 얻을 만한 책도, 활발한 커뮤니티도 없다. 그래서 내 경험을 바탕으로, 매우 주관적인 가이드를 써 보고자 한다. 1. 구현(Implementation)리습은 구현이 여러 개다. 언어 자체를 규정하는 Common Lisp ANSI

Common Lisp Guide 더 읽기"

위로 스크롤