삽질하다 결국 ㅈㅈ 쳤는데 알고보니 다 왔었다 참나 ㅋㅋㅋㅋ

솔루션 하나를 만들고, MFC용 프로젝트와 DLL을 만들 DLL프로젝트를 만든다.
그리고 MFC에 DLL과의 연결 속성들을 알아서 정해준다. (뭐 그런것들... Projects Dependencies...zz)
그런것들은 알아서 정해주고 이제 각 DLL을 구성하는 헤더들에 같은 선언들을 해준다.

//Component.h
#ifdef DLLCOMPONENT
#define CCOMPONENT __declspec(dllexport)
#else
#define CCOMPONENT __declspec(dllimport)
#endif

class CCOMPONENT CComponent{ ~~~~~~~};
 
//Component.cpp
#define CCOMPONENT //이건 해주는지 안해주는지 까먹었다. 알아서 하셈
#include <iostream> 
~~~~ 

이런식으로 선언을 모든 DLL구성 파일들에게 해줘야 한다. "똑같이"
즉, DLL로 만들 클래스들을 저런식으로 똑같이 선언해주면 된다는 거다.

젠장.....
난 클래스마다 다르게 했더만 아니라네? ㅠㅠ
클래스 이름이 달라서 다르게 구분지어 줬더만 똑같이하라니 이런 된장 ㅠㅠㅠㅠㅠ 

추가. 이거 삽질한다고 각종 리크에러들 다 나왔음 ㅠㅠ 
프로젝트 만들때 MFC_Test라는 이름으로 만들었다면 MFC_TestDlg.cpp파일에서 #include 부분 바로 다음에 이걸 추가하시고
#ifdef _DEBUG
#pragma comment(linker, "/entry:WinMainCRTStartup /subsystem:console")
#endif
다음에 본인이 필요한 부분에
printf("인덱스 값은 %d" , m_nIndex); 
를 추가해서 컴파일 하면 어플리케이션 창과 콘솔창이 동시에 뜨는것을 확인할수 있을것이고,
입력이나 수정, 삭제시마다 실시간으로 확인이 가능합니다.


ps. 음하하하하 한문장으로 다 썼다 ㅋㅋㅋ
먼저 VS2003으로 작성.
기본적인 MFC 어플리케이션 프로젝트로 생성 후 
Edit Control을 두개 넣고 이름 지정(IDC_EDIT1,2로 지정)해주고,
확인으로 지정해줄 버튼을 생성 후 두번 클릭하면 자동으로 OnBnClickedButton1()이 생성된다. (IDC_BUTTON1)


그리고 그것에서

GetDlgItemText(IDC_EDIT1, m_str1); 
GetDlgItemText(IDC_EDIT2, m_str2);  

MessageBox(""아이디는 : " + m_str1 + "\n" + "비밀번호는 : " + m_str2, "입력한 값", MB_OK);

으로 입력한 후 실행하면 됨.

ps. m_str1, m_str2는 CString으로 미리 선언해뒀음 

+ Recent posts