2009/06/15 18:32 CodeIN/MS
크리에이티브 커먼즈 라이선스
Creative Commons License

역시 CodeProject다.

예전에 참 많이 방문해서 고수들을 괴롭혔는데 ㅎㅎ

또 괴롭혀야겠다.

 

 

Screen Capture (Simple Win32 Dialog based)

 

 

 

 

posted by 조금까칠한남자
2009/06/15 18:28 CodeIN/MS
크리에이티브 커먼즈 라이선스
Creative Commons License

이해하기 쉽고 좋은 소스를 찾았습니다.

 

지금은 따로 정리할 시간이 없어서 링크만 ^0^

 

Windows handles from a mouseclick

 

 

 

posted by 조금까칠한남자
2009/06/15 18:04 CodeIN/MS
크리에이티브 커먼즈 라이선스
Creative Commons License

워.. 다시 MFC를 하려니 기억이 새록 새록 안나는군요.

예전부터 MFC를 싫어해서 JAVA공부를 했고, 주 업무도 JAVA인데...

역시 윈도운 애플리케이션은 Win32 API 만한게...

그래도 저는 대학 다닐 때 Win32 API를 공부를 안 했기 때문에... 완전 초보입니다.

그래서 또 이래저래 공부를 해야하는군요 ㅠㅜ

 

예전부터도 그랬지만... 지금도...

Win32 API와 MFC의 뚜렷한 차이점을 이해를 못하고 있습니다.

그냥 Win32 API를 사용하기 쉽게 만든게 MFC인거?? 하하^-^

Visual C++ 수업 성적도 아주 어렵게 A를 받았던 기억이... 친구 도움이 컸죠...

전 어셈블리어 숙제 하느라 시간이 절대적으로 부족한 상태였거든요...

 

역시 기초가 안되어 있어서 그런지.. 암튼... 새로 공부해야하게 생겼습니다. ㅠㅜ

암튼 아래 쉽게 API와 MFC에 대해서 설명을 해두셨더라고요.

왠지 MFC를 다시 시작하기 전에 기본적인 것들은 정리를 해야 할 것 같아서 정리해봅니다.

http://kongmks.cafe24.com/tag/API/MFC

 

 

또 다른 내용입니다.

쉽게 이야기해서.. API란 Windows 에서 기본적으로 지원하는 내장 함수를 일컫습니다. 이건 C 기반으로 이루어져 있습니다. MFC는 Microsoft Foundation Class 의 약자로 C++ 기반의 class를 정의해 놓은 것입니다. 즉, API를 사용하여 C++ 로 Windows 기반 프로그램을 개발할 수 있도록 class들을 미리 정의하여 놓은 것입니다. 참고르 mfc 의 모든 라이브러리는 api로 구현되었습니다

 

 

또 다른 내용입니다.

API는 써보고 느끼셨듯이 윈도우 프로그래밍을 위한 함수 집합입니다.

정확한 명칭은 Windows API이고, 사실 API라는 것은 단순히 '응용 프로그래머를 위한 인터페이스'로

아주 광범위한 것입니다. Windows API를 그냥 API라고 하는 것은 사실 틀린 말이지만, 대부분 MS Window를 쓰는 환경에서 API는 그저 Window API이기 때문에 소위 '태클'이 걸리지 않는 것입니다.

MFC는 API가 너무 복잡하고(MFC가 만들어질 당시의 생각에서), API로 하려면 사소한 작업을 일일이, 그것도 엄청나게 많은 코드를 직접해야 한다는 점에서, 윈도우 개발을 쉽게 할 수 있도록 하기 위해(그리고 C++의 클래스/객체/OOP의 장점도 적극 수용하면서) 만들어진 것입니다.

따라서 MFC는 API의 Wapper 클래스 이면서, API 아래에 붙어있는 것입니다.

좀더 쉽게, MFC는 API로 만든 것이고, MFC의 존재가 가장 특징적으로 드러나는 것은 스튜디오에서 '위자드'입니다. 뻥을 섞어서 위자드를 만들려고 MFC는 시작되었다고도 할 수 있습니다.^^;;

요즘은 MFC가 버전업이 되면서, 기존의 MFC VS API전쟁(지식N에 올라오는 백만년전 답변들) 과 같은 것은 할 필요가 없고, 각각의 장/단점이 뚜렷해지면서 API와 MFC가 혼용되어 사용되고 있습니다.

MFC의 함수는 원칙적으로 API와 완전히 동일합니다. 다른 점은 단 하나, 대부분의 API에서 첫번째 인자로 오게되는 HINSTANCE 또는 HWND가 없다는 것 뿐입니다.

MFC가 어렵다면, 그것은 코드가 아닌 구조에 있을 겁니다.

 

 

 

 

 

아래는 틈틈히 봐야할 자료입니다.

제가 영어는 완전 못하는데, 영어는 꼭 필요한 것이기 때문에, 항상 영어로 된 자료를 보려고 노력하고 있습니다. ^0^

뭐 수십번 읽어야 겨우 이해합니다. ㅎㅎ

Learn the MFC C++ Classes

 

 

아래는 재미있는 내용이 있어서 퍼왔습니다.

http://blog.naver.com/dontcryme?Redirect=Log&logNo=30027314839

 

 

Too many people come on to IRC and ask "What is better, MFC or API?" and too many people are willing to say "MFC sucks" or "API sucks" either because of traumatic events involving one or the other in early childhood, or because everyone else is saying it.


The standard arguments are:

- API is too hard
- MFC is too confusing
- API is too much code
- MFC is bloated(비대한)
- API doesn't have wizards
- MFC is badly designed
- API isn't Object Oriented
- MFC kicked my dog
- API stole my girlfriend

And so on...


 

My Answer
My opinion, although by no means the only one, is that you should use the right framework for the right job.


분홍색 글씨 완전 대박 재미있습니다. ㅎㅎㅎ

솔직히 재미는 없고... 마음이 짠~ 하네요...

내가 웃는게 웃는게 아니야~


 

 

posted by 조금까칠한남자
TAG API, MFC
2009/06/15 17:00 CodeIN/MS
크리에이티브 커먼즈 라이선스
Creative Commons License

드디어 저한테 필요한 자료를 찾았습니다.^^;;

휴... 간만에... 한 7년 만인가...

암튼... 새로 VS2008을 설치하고 간단히 테스트하려고 했는데...

전혀 기억이 안난다... ㅡ_-;;;

또 공부해야 할 것이 생겼습니다...

 

http://www.codeproject.com/KB/applications/windowspy.aspx

 

Introduction
I was interested to have a tool such as Spy++ in Microsoft Visual Studio, but I'd like that the tool can modify window controls. For instance, some times, we need to enable some inactive controls in a program during run-time. MS Spy++ does not have any facilities to do this, and so I made it by myself.

This program is useful to obtain a window handle, caption, class name, style, and size. Moreover, it facilitates changing caption name, style, and extended style of victim window control in run-time load.

The application is a Win32 project without using MFC. It hooks the target window by WindowFromPoint() user32 API. There is an algorithm to seek on child and parent window to capture child windows inside a program by using GetWindowRect() and GetWindow() in a tricky way. It applies GetWindowLong() to obtain window properties and SetWindowLong() to modify them.

 

 

간단한 소개인데요. 위 링크 찾아가시면 더 많은 정보가 있습니다.

 

 

posted by 조금까칠한남자
2009/06/15 10:28 CodeIN/MS
크리에이티브 커먼즈 라이선스
Creative Commons License

이제 슬슬 시간적 여유가 좀 생길 터이니...

팀 유틸을 만들 준비를 해야겠다.

후~

 

얼마전에 vs 2008을 설치하였는데...

기대된다^-^

vs2003을 사용해본 이후로 java 공부를 하는 바람에 안 써봤는데...

친구이야기로는 완전 좋다고 한다.

두근 두근.. 여자랑 데이트하러가는 느낌인데 ㅎㅎ

 

 

POINT  Point;
char ClassName[128];

GetCursorPos(&Point);

HWND hWnd = WindowFromPoint(Point);

GetClassName(hWnd, (char *)&ClassName, 128);

if (*ClassName)
OutputDebugString(ClassName);

posted by 조금까칠한남자
2009/06/03 17:47 CodeIN/MS
크리에이티브 커먼즈 라이선스
Creative Commons License
마우스 훅을 통한 화면 캡쳐 프로그램 제작하기

이번에 무엇인가를 준비하기 위해서 이것 저것 알아보는데 좋은 자료가 있어서 올려 놓았다.
흠 이렇게 올려도 되는지...




posted by 조금까칠한남자
2008/11/08 14:49 CodeIN/MS
크리에이티브 커먼즈 라이선스
Creative Commons License
버추얼 박스 게스트 확장 설치는 VMware의 VMware tools와 비슷한 역할을 한다.

게스트 확장의 이점은

마우스 포인터가 호스트 운영체제와 통합되어 사용하기가 좋음
현재 설치 후에 사용해봤는데
이전에는 가상 호스트에서 로컬로 마우스 포인터를 이동하려면 호스트 카(Host Key)를 눌렀어야 했는데 게스트 확장을 설치한 후에는 같은 로컬에서 사용하듯이 사용이 가능함.

완전 좋아~!!!!!

또 검색한 자료에 의하면 비디오 지원이 강화된다고 한다.
고해상도와 비표준 해상도를 지원하고 가상 머신의 창 크기를 자유로이 조절할 수 있으며, 창의 크기에 따라 게스트 운영체제의 해상도가 자동으로 변경된다고 한다.

실제로 창의 크기를 마우스로 조정해봤는데 창의 크기와 같이 화면이 유지된다.

오~ 완전 좋아!!


또 호스트 운영체제와 폴더 공유(Shared folders), 클립보드 공유(Shared clipboard), 시간 동기화가 가능하다고 함.

실은 이것 때문에 검색을 했는데 이런 정보를 찾은것이다.

ㅎㅎ





posted by 조금까칠한남자
2008/01/13 00:21 CodeIN/MS
크리에이티브 커먼즈 라이선스
Creative Commons License
http://www.xevious7.com/113

'CodeIN > MS' 카테고리의 다른 글

[링크]마우스 훅을 통한 화면 캡쳐 프로그램 제작하기  (0) 2009/06/03
VirtualBox Guest Additions 설치  (2) 2008/11/08
[ds] ds  (0) 2008/01/13
.net framework 설치 유무 체크  (0) 2008/01/09
asp.net에서 파일 다운시키는 소스  (0) 2008/01/09
ASP.NET 파일 다운로드  (0) 2008/01/08
posted by 조금까칠한남자
TAG Queue, Stack
2008/01/09 22:00 CodeIN/MS
크리에이티브 커먼즈 라이선스
Creative Commons License
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Threading;
public partial class Check_Net : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        btnDown.Visible = false;
        btnGo.Visible = false;
        Version clrVersion = Request.Browser.ClrVersion;
        Version requiredVersion = new Version(1, 1, 4322, 0);
       
        if (clrVersion.Major == 0)
        {
            // 클라이언트 PC에 닷넷 프레임워크가 검출되지 않음.
            Label1.Text = "You haven't installed .NET framework 2.0 yet!!";
            // 닷넷 프레임워크 설치 패키지를 다운로드 하는 페이지로 Transfer 혹은 Redirect 한다.
            btnDown.Visible = true;
        }

        else
        {
           
            // 클라이언트 PC에서 닷넷 프레임워크가 검출됨.
            // clrVersion 변수가 버전을 나타내고 있음.
            // 필요하다면 요구되는 버전 이상이 설치되었는가 검사할 수도 있다.
            if (clrVersion <= requiredVersion)
            {
                // 1.1 버전보다 낮은 버전이 설치되어 있다. 알맞는 처리를 수행하면 된다.
                Label1.Text = "You have installed .Net framework 1.1. You need to upgrade";
                btnDown.Visible = true;
            }
            else
            {
                Label1.Text = "You already have installed .Net framework 2.0.";
                btnGo.Visible = true;              
            }
        }
    }

    protected void Button2_Click(object sender, EventArgs e)
    {
        Response.AddHeader("Content-Disposition", "attachment;filename=dotnetfx32.exe");
        Response.ContentType = "multipart/form-data";

        //파일 다운로드 시키기
        Response.WriteFile("~/dotnetfx32.exe");
        Response.Flush();
    }
    protected void btnGo_Click(object sender, EventArgs e)
    {
        Response.Redirect("main_page.aspx");
    }
}

'CodeIN > MS' 카테고리의 다른 글

VirtualBox Guest Additions 설치  (2) 2008/11/08
[ds] ds  (0) 2008/01/13
.net framework 설치 유무 체크  (0) 2008/01/09
asp.net에서 파일 다운시키는 소스  (0) 2008/01/09
ASP.NET 파일 다운로드  (0) 2008/01/08
.net framework 설치 유무 판단하는 소스  (0) 2008/01/08
posted by 조금까칠한남자
2008/01/09 21:58 CodeIN/MS
크리에이티브 커먼즈 라이선스
Creative Commons License

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;


public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    public void A()
    {

        //Response.Redirect("~/SmartClient.exe");  
        Response.AddHeader("Content-Disposition", "attachment;filename=SmartClient.exe");
        Response.ContentType = "multipart/form-data";

        //파일 다운로드 시키기
        Response.WriteFile("~/SmartClient.exe");
        Response.Flush();
    }
    protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
    {
        A();
    }
}

'CodeIN > MS' 카테고리의 다른 글

[ds] ds  (0) 2008/01/13
.net framework 설치 유무 체크  (0) 2008/01/09
asp.net에서 파일 다운시키는 소스  (0) 2008/01/09
ASP.NET 파일 다운로드  (0) 2008/01/08
.net framework 설치 유무 판단하는 소스  (0) 2008/01/08
Installing Visual Studio .NET 2008 RTM  (0) 2008/01/08
posted by 조금까칠한남자
prev 1 2 3 4 5 next