"로딩" 움직이는 GIF 모음.


구글링하다가 우연히 발견한 Loading 이미지 모음입니다.

제작자가 무료로 오픈한다고 합니다.

많이 이용하세요.


아래 사이트로 가셔서 다운로드 하세요.

http://www.iconmonsters.com/icon-packs/internet-web/loading-animated-gif


혹시 사이트 다운시 혹은 글이 없어진 경우....

loading-animated-gif.rar






출처 : http://www.iconmonsters.com/icon-packs/internet-web/loading-animated-gif


프로그램 실행중에 화면보호기와 같이 모니터 꺼짐 현상 방지하기위해 사용할 함수의 함수 원형.

EXECUTION_STATE WINAPI SetThreadExecutionState(
  _In_  EXECUTION_STATE esFlags
);



	// 함수 포인터를 이용하기 위해 typedef로 타입 정의
	typedef UINT (CALLBACK* PFNDLL_STES)(UINT);

	// 프로그램 실행중에 화면보호기와 같이 모니터 꺼짐 현상 방지.
	PFNDLL_STES pfn;
	pfn = (PFNDLL_STES) GetProcAddress( GetModuleHandle(TEXT(_T("kernel32.dll"))), _T("SetThreadExecutionState"));
	if ( pfn )
	{
		pfn(ES_CONTINUOUS | ES_DISPLAY_REQUIRED);
	}


	// .....................................
	// .....................................
	// .....................................


	PFNDLL_STES pfn;
	pfn = (PFNDLL_STES) GetProcAddress( GetModuleHandle(TEXT(_T("kernel32.dll"))), _T("SetThreadExecutionState"));
	if ( pfn )
	{
		pfn(ES_CONTINUOUS);
	}







출처 : http://blog.naver.com/dulee71/40162300020 에서 퍼옴..

[원격 PC 준비 사항]

1. msvsmon.exe 설치 및 실행

-. 파일 위치 : C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\Remote Debugger\x86 or x64

-. 실행시 방화벽 해제 

  DCOM : TCP 135 

  IPSEC : UDP 4500, 500

-. 도구의 옵션에서 Windows 인증 선택

-. 도구의 권한에서 로컬 사용자를 디버그 허용 체크

 

2. 디버깅 프로그램을 실행파일과 디버깅 정보 파일(.pdb)을 같이 복사.

 

[로컬 PC 준비 사항]

1. 원격 계정과 같은 아이디와 패스워드로 로그인(.NET 환경 디버깅일 경우 필수)

2. VS 2010 방화벽 설정

-. 제어판 > Windows 방화벽 > Windows 방화벽에서 프로그램 허용

-. VS2010 허용 설정(홈/회사, 공용 네트워크 모두 체크)

3. VS2010 환경설정

-. 프로젝트 속성 > 디버그 탭 > 시작 외부 프로그램에 디버깅 대상 프로그램의 Full Path 입력.

(원격 PC의 "C:\Develop\Test\Test.exe" 라면 "C:\Develop\Test\Test.exe" 그대로 입력)

-. 원격 컴퓨터 사용 체크 및 컴퓨터 이름 입력.

(원격 컴퓨터 이름 찾기 ==> 원격에 실행된 msvsmon.exe의 도구 > 옵션 > 서버이름)

4. 디버그 시작(^^).

 

@ 2012.09.20 추가 ====================

-. 도메인 가입된 원격 컴퓨터도 디버깅 가능함.

-. 혹시 "워크스테이션과 주 도메인 사이의 트러스트 관계에 이상이 있습니다 " 라는 문구가 나타날 경우 도메인 해제 후 다시 도메인을 가입해 볼 것.

http://answers.microsoft.com/ko-kr/windows/forum/windows_7-security/%EC%9C%88%EB%8F%84%EC%9A%B0/121ca17f-7a01-41ff-ba74-381e9d74d5a4?msgId=fd4ec497-b364-405e-80e6-69daf13902da )

@ 2012.10.16 추가 ====================

-. 웬만하면 msvsmon.exe는 관리자 권한으로 실행하자.

( 권한 관련 문제로 삽질하는 경우가 있다. ㅠㅠ )

@ 2012.12.10 추가 ====================

-. 혹시 로컬에서는 잘 되는데 원격 디버깅시 "서비스 종점의 연결 실패. allowAccess 권한 설정" 같은 에러가 발생할 경우.

원격 컴퓨터의 로컬 보안정책 수정 필요.

(로컬 보안 정책 > 로컬 정책 > 보안 옵션 > 사용자 계정 컨트롤 : 관리 승은 모드에서 모든 관리자 실행

==> "사용 안함 "으로 설정 후 원격 컴퓨터 재부팅) 

 

출처 : http://blog.naver.com/dulee71/40162300020 에서 퍼옴..

아직 테스트는 안해 봤음..


자바스크립트를 포함하여 C, C++, Java, Cobol, Fortran등등의 프로그래밍 언어의 소스코드를 자동으로 정리해 주는 프로그램이 있어 소개합니다.

이름은 바로 UniversalIndentGUI 입니다.

사용하기 쉽게 GUI로 되어있으며 사용 방법도 무지 직관적입니다.

그냥 코드 Load하고 Live Indent Preview를 수행하기만 하면 됩니다.

다음 이미지를 참고하세요.





아래 링크 클릭해서 다운 받으세요.

정리만 전문으로 하는 콘솔 프로그램 : http://sourceforge.net/projects/uncrustify/support?source=navbar

제가 소개한 GUI까지 같이 있는 UniversalIndentGUI : http://universalindent.sourceforge.net/




uses Windows, SysUtils, Forms, Variants, ComObj, OleServer;

...

...

...


function GetExcelText(fName: String): String;

var

  Excel: OleVariant;

  i, j: Integer;

  tmpString: String;


begin

  Result:='';


  // 엑셀 어플리케이션 생성

  try

    Excel:=CreateOleObject('Excel.application');

  except

    MessageBox(0,'Excel이 설치되어 있지 않습니다.','',MB_OK);

    Exit;

  end;


  // 파일이 있는지 확인

  if not FileExists(fName) then begin

    MessageBox(0,'파일이 없습니다','',MB_OK);

    Exit;

  end;


  // WorkBooks Open

  Excel.Workbooks.Open(fName);


  // Cell 의 내용을 받아옴

  for i:=1 to Excel.ActiveSheet.UsedRange.Rows.Count do begin

    for j:=1 to Excel.ActiveSheet.UsedRange.Columns.Count do begin

      tmpString:=Excel.Cells[i, j];

      if Length(Trim(tmpString))>0 then Result:=Result+#13#10+tmpString;


      Application.ProcessMessages;

    end;

  end;


  // 해제과정

  Excel.Workbooks.Close;

  Excel.Quit;

  Excel:=Unassigned;

end;

Delphi XE 버전을 자주 사용하는데 편리한 Auto Complete 기능이 떄론 불편할 때도 있다.

Auto Complete 중에서도 불편한 Auto Complete 기능을 사용 않도록 설정한다.




나는 위와 같이 for 하나만 썼는데 알아서 Low 와 High까지 기록해 주는 친절은 그리 반갑지 않다.

그래서 아래와 같이 Auto Complete를 사용 안함을 뜻하는 Uncheck를 실시한다.



그리고 소스 편집기에서 for 문을 입력해 본다.



내가 원하는 대로 나머지 군더더기들은 없어졌다.




ATL 관련 헤더를 사용할 때 GUID_NULL 에러가 발생한다.


이때는 atl*.h 들 앞에 cguid.h 를 선언해 주면 된다.



#include <CGuid.h>
#include <atl____.h>






http://mycplusplusexperience.blogspot.com/2009/10/error-c2065-guidnull-undeclared.html





X86용 VS2010설정 파일

Exported-2013-03-22.vssettings









Win7 X64에서 사용하는 VS2010설정 파일

Exported-2013-12-26.vssettings










Win7 X86 32비트에서 사용하는 VC6 설정 레지스트리 파일

win7x86_vc6_setting_registry.reg






Win7 X64 64비트에서 사용하는 VC6 설정 레지스트리 파일

vc6_x64_setting_registry.reg










.h 파일과 .cpp 파일을 상호 왔다 갔다 할 수 있는 매크로와 문자열에 _T()를 자동으로 추가해 주는 매크로

VS2010 매크로 파일(h,cpp 이동 _T자동삽입).7z



VC6용 .h/.cpp 왔다 갔다 매크로 + 주석 처리 매크로

mymacro3.dsm



프로그래밍하기 좋은 Consolas 폰트

consolas_font_setup.exe


프로그래밍용 폰트는 거의 영문 폰트만 바뀌고 한글은 시스템의 기본 폰트로 지정된다. 하지만 영문 폰트에 대한 한글폰트 링크를 레지스트리에 추가하는 것으로 바꿀 수 있다. 레지스트리 편집기를 연 후 아래의 레지스트리 키를 찾는다.

  • [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink]
    

그리고 해당 영문 폰트 이름으로 다중 문자열 값 을 추가한 후, 다음과 같이 추가하거나 다른 폰트들의 값을 복사한다.

  • gulim.ttc,gulim
    MSGOTHIC.TTC,MS UI Gothic
    SimSun.TTC,SimSun
    mingliu.ttc,PMingLiU
    

예를 들어, Consolas 폰트의 한글 폰트를 굴림체로 설정할 경우 다음과 같다.



참고사항이 한가지 있다면, MS Visual Studio 2005 에서는 한글 폰트가 고정되어 있기 때문에 바뀌지 않는다. 하지만 볼만하다. 그리고 레지스트리를 수정한다고 바로 바뀌는 것이 아니므로 재부팅이 필요하다.






MS에서 더이상 SDK에 공개하지 않는 IHTMLElementRender 인터페이스 입니다.

웹 페이지로 프로그램 하다보면 한 번씩 필요할 때가 있습니다.

참고하세요~~




/* this ALWAYS GENERATED file contains the definitions for the interfaces */


 /* File created by MIDL compiler version 7.00.0499 */
/* Compiler settings for mshtml.idl:
    Oicf, W1, Zp8, env=Win32 (32b run)
    protocol : dce , ms_ext, c_ext, robust
    error checks: allocation ref bounds_check enum stub_data 
    VC __declspec() decoration level: 
         __declspec(uuid()), __declspec(selectany), __declspec(novtable)
         DECLSPEC_UUID(), MIDL_INTERFACE()
*/
//@@MIDL_FILE_HEADING(  )

#pragma warning( disable: 4049 )  /* more than 64k source lines */


/* verify that the  version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif

/* verify that the  version is high enough to compile this file*/
#ifndef __REQUIRED_RPCSAL_H_VERSION__
#define __REQUIRED_RPCSAL_H_VERSION__ 100
#endif

#include "rpc.h"
#include "rpcndr.h"

#ifndef __RPCNDR_H_VERSION__
#error this stub requires an updated version of 
#endif // __RPCNDR_H_VERSION__

#ifndef COM_NO_WINDOWS_H
#include "windows.h"
#include "ole2.h"
#endif /*COM_NO_WINDOWS_H*/



#ifndef __ihtmlelementrender_h__
#define __ihtmlelementrender_h__




#ifndef __IHTMLElementRender_INTERFACE_DEFINED__
#define __IHTMLElementRender_INTERFACE_DEFINED__

/* interface IHTMLElementRender */
/* [uuid][unique][object] */ 


EXTERN_C const IID IID_IHTMLElementRender;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("3050f669-98b5-11cf-bb82-00aa00bdce0b")
    IHTMLElementRender : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE DrawToDC( 
            /* [in] */ __RPC__in HDC hDC) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetDocumentPrinter( 
            /* [in] */ __RPC__in BSTR bstrPrinterName,
            /* [in] */ __RPC__in HDC hDC) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IHTMLElementRenderVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IHTMLElementRender * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IHTMLElementRender * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IHTMLElementRender * This);
        
        HRESULT ( STDMETHODCALLTYPE *DrawToDC )( 
            IHTMLElementRender * This,
            /* [in] */ __RPC__in HDC hDC);
        
        HRESULT ( STDMETHODCALLTYPE *SetDocumentPrinter )( 
            IHTMLElementRender * This,
            /* [in] */ __RPC__in BSTR bstrPrinterName,
            /* [in] */ __RPC__in HDC hDC);
        
        END_INTERFACE
    } IHTMLElementRenderVtbl;

    interface IHTMLElementRender
    {
        CONST_VTBL struct IHTMLElementRenderVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IHTMLElementRender_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IHTMLElementRender_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IHTMLElementRender_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IHTMLElementRender_DrawToDC(This,hDC)	\
    ( (This)->lpVtbl -> DrawToDC(This,hDC) ) 

#define IHTMLElementRender_SetDocumentPrinter(This,bstrPrinterName,hDC)	\
    ( (This)->lpVtbl -> SetDocumentPrinter(This,bstrPrinterName,hDC) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IHTMLElementRender_INTERFACE_DEFINED__ */




#endif /*   __ihtmlelementrender_h__     */



IHTMLElementRender.h


+ Recent posts