/******************************************************************/

/* MFC Extension DLL(using shard MFC DLL)

/******************************************************************/

1. 새로운 프로젝트를 생성한다.

[MFC AppWizard(dll)] -> [MFC Extension DLL(using shard MFC DLL)] -> [Finish]

 

2. 새로운 클래스를 추가한다.

Class Type : Generic Class

Class Name : CTest

 

3. CTest클래스의 해더에서

// Test.h: interface for the CTest class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_TEST_H__84322227_2364_48FD_B142_DE36100C3F0C__INCLUDED_)
#define AFX_TEST_H__84322227_2364_48FD_B142_DE36100C3F0C__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

 

class AFX_EXT_CLASS CTest   //AFX_EXT_CLASS 추가
{
    int num;

 

public:
    CTest();
    virtual ~CTest();

 

    void SetNum( int num );
    int GetNum() const;
    int Square( int num ); 
};

 

#endif // !defined(AFX_TEST_H__84322227_2364_48FD_B142_DE36100C3F0C__INCLUDED_)

 

4. CTest클래스의 소스에서

// Test.cpp: implementation of the CTest class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "Test.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

 

CTest::CTest()
{
    num = 0;
}

 

CTest::~CTest()
{

}

 

void CTest::SetNum( int num )
{
    this->num = num;
}

 

int CTest::GetNum() const
{
    return num;
}

 

int CTest::Square( int num )
{
    return this->num * num;
}

 

5. 컴파일 하면 dll파일과 lib파일이 생성된다.

 

6. 콘솔 모드로 프로젝트를 새로 생성한다.

 

7. dll.파일과 lib파일 Test.h파일을 새로 만든 콘솔 프로젝트에 복사해서 붙여넣는다.

lib파일 링크 추가

 

8. 콘솔 모드 프로젝트에 Test.h파일 include

AFX_EXT_CLASS // <--이부분 삭제

 

9. 콘솔 모드 프로젝트에 cpp파일 추가

#include <iostream>
#include "Test.h"

 

using namespace std;

 

void main()
{
    CTest test;

    test.SetNum( 10 );

 

    cout << test.GetNum() << endl;

    cout << test.Square( 100 ) << endl;
}

+ Recent posts