확장 DLL 암시적으로
페이지 정보
본문
MFC AppWizard (dll) 선택합니다. ok 누른다.
MFC Extension DLL (using shared MFC DLL) 확장DLL 선택합니다.(윈도우에서만 사용가능)
새로운 클래스를 만들어준다.
Class type 에서 Generic Class 선택하여준다.
클래스 정보를 적어주고 OK 눌러준다.
ClassView 에서 클래스를 만들어준다. 여기서 Test로 만들어준다.
Test 클래스에서 Plus() 멤버 함수를 만들어준다.
int Plus(int num);
int CTest::Plus(int num)
{
TRACE("TRACE 문자를 볼려면 VC++ 에서 View->Output 선택하고 아래에 Debug 에서 보시면됩니다.\n");
return num + num;
}
위에 문장을 아래와같이 만들어준다.
extern "C" __declspec(dllexport) int Plus(int num)
{
TRACE("TRACE 문자를 볼려면 VC++ 에서 View->Output 선택하고 아래에 Debug 에서 보시면됩니다.\n");
return num+num;
}
컴파일한다.
이제 dll 다 만들었으니 새로운 프로젝터를 연다
mfc 실행파일을 만들어준다. Test.exe 라는 프로젝트를 만들었다.
본인이 만든 ???.dll 와 ???.lib 파일을 복사해온다.
Project -> settings 선택한다.
Link 에서 Object/library modules: 에서 본인이 만든 .lib 파일명를 적어준다.
Test.h 에서 상부에 extern "C" __declspec(dllimport) int Plus(int numr); 와 같이 적어준다.
멤버변수를 만들어준다. int m_num;
컨트롤과 버튼을 만들어준다.
void CDTestDlg::OnButton1()
{
CClientDC dc(this);
CString str;
UpdateData(TRUE);
int num;
num = Plus(m_num);
str.Format("->%d",num);
dc.TextOut(10,10,str);
UpdateData(FALSE);
}
MFC Extension DLL (using shared MFC DLL) 확장DLL 선택합니다.(윈도우에서만 사용가능)
새로운 클래스를 만들어준다.
Class type 에서 Generic Class 선택하여준다.
클래스 정보를 적어주고 OK 눌러준다.
ClassView 에서 클래스를 만들어준다. 여기서 Test로 만들어준다.
Test 클래스에서 Plus() 멤버 함수를 만들어준다.
int Plus(int num);
int CTest::Plus(int num)
{
TRACE("TRACE 문자를 볼려면 VC++ 에서 View->Output 선택하고 아래에 Debug 에서 보시면됩니다.\n");
return num + num;
}
위에 문장을 아래와같이 만들어준다.
extern "C" __declspec(dllexport) int Plus(int num)
{
TRACE("TRACE 문자를 볼려면 VC++ 에서 View->Output 선택하고 아래에 Debug 에서 보시면됩니다.\n");
return num+num;
}
컴파일한다.
이제 dll 다 만들었으니 새로운 프로젝터를 연다
mfc 실행파일을 만들어준다. Test.exe 라는 프로젝트를 만들었다.
본인이 만든 ???.dll 와 ???.lib 파일을 복사해온다.
Project -> settings 선택한다.
Link 에서 Object/library modules: 에서 본인이 만든 .lib 파일명를 적어준다.
Test.h 에서 상부에 extern "C" __declspec(dllimport) int Plus(int numr); 와 같이 적어준다.
멤버변수를 만들어준다. int m_num;
컨트롤과 버튼을 만들어준다.
void CDTestDlg::OnButton1()
{
CClientDC dc(this);
CString str;
UpdateData(TRUE);
int num;
num = Plus(m_num);
str.Format("->%d",num);
dc.TextOut(10,10,str);
UpdateData(FALSE);
}
댓글목록
등록된 댓글이 없습니다.