From 2c84f1cd70aa79290edcc25fa07cb03961eca74a Mon Sep 17 00:00:00 2001 From: ian Date: Fri, 28 Feb 2025 12:03:08 +0900 Subject: [PATCH] add files --- TestLibDlg/TestLibDlg.sln | 28 + TestLibDlg/TestLibDlg/DlgProxy.cpp | 87 +++ TestLibDlg/TestLibDlg/DlgProxy.h | 43 ++ TestLibDlg/TestLibDlg/TestLibDlg.aps | Bin 0 -> 109684 bytes TestLibDlg/TestLibDlg/TestLibDlg.cpp | 153 ++++++ TestLibDlg/TestLibDlg/TestLibDlg.h | 33 ++ TestLibDlg/TestLibDlg/TestLibDlg.idl | 29 + TestLibDlg/TestLibDlg/TestLibDlg.rc | Bin 0 -> 11546 bytes TestLibDlg/TestLibDlg/TestLibDlg.reg | 17 + TestLibDlg/TestLibDlg/TestLibDlg.vcxproj | 240 ++++++++ .../TestLibDlg/TestLibDlg.vcxproj.filters | 75 +++ TestLibDlg/TestLibDlg/TestLibDlg.vcxproj.user | 6 + TestLibDlg/TestLibDlg/TestLibDlgDlg.cpp | 519 ++++++++++++++++++ TestLibDlg/TestLibDlg/TestLibDlgDlg.h | 64 +++ TestLibDlg/TestLibDlg/TestLibDlg_h.h | 226 ++++++++ TestLibDlg/TestLibDlg/TestLibDlg_i.c | 84 +++ TestLibDlg/TestLibDlg/framework.h | 60 ++ TestLibDlg/TestLibDlg/pch.cpp | 5 + TestLibDlg/TestLibDlg/pch.h | 13 + TestLibDlg/TestLibDlg/res/TestLibDlg.ico | Bin 0 -> 67777 bytes TestLibDlg/TestLibDlg/res/TestLibDlg.rc2 | Bin 0 -> 728 bytes TestLibDlg/TestLibDlg/resource.h | 23 + TestLibDlg/TestLibDlg/targetver.h | 8 + 23 files changed, 1713 insertions(+) create mode 100644 TestLibDlg/TestLibDlg.sln create mode 100644 TestLibDlg/TestLibDlg/DlgProxy.cpp create mode 100644 TestLibDlg/TestLibDlg/DlgProxy.h create mode 100644 TestLibDlg/TestLibDlg/TestLibDlg.aps create mode 100644 TestLibDlg/TestLibDlg/TestLibDlg.cpp create mode 100644 TestLibDlg/TestLibDlg/TestLibDlg.h create mode 100644 TestLibDlg/TestLibDlg/TestLibDlg.idl create mode 100644 TestLibDlg/TestLibDlg/TestLibDlg.rc create mode 100644 TestLibDlg/TestLibDlg/TestLibDlg.reg create mode 100644 TestLibDlg/TestLibDlg/TestLibDlg.vcxproj create mode 100644 TestLibDlg/TestLibDlg/TestLibDlg.vcxproj.filters create mode 100644 TestLibDlg/TestLibDlg/TestLibDlg.vcxproj.user create mode 100644 TestLibDlg/TestLibDlg/TestLibDlgDlg.cpp create mode 100644 TestLibDlg/TestLibDlg/TestLibDlgDlg.h create mode 100644 TestLibDlg/TestLibDlg/TestLibDlg_h.h create mode 100644 TestLibDlg/TestLibDlg/TestLibDlg_i.c create mode 100644 TestLibDlg/TestLibDlg/framework.h create mode 100644 TestLibDlg/TestLibDlg/pch.cpp create mode 100644 TestLibDlg/TestLibDlg/pch.h create mode 100644 TestLibDlg/TestLibDlg/res/TestLibDlg.ico create mode 100644 TestLibDlg/TestLibDlg/res/TestLibDlg.rc2 create mode 100644 TestLibDlg/TestLibDlg/resource.h create mode 100644 TestLibDlg/TestLibDlg/targetver.h diff --git a/TestLibDlg/TestLibDlg.sln b/TestLibDlg/TestLibDlg.sln new file mode 100644 index 0000000..a95fff3 --- /dev/null +++ b/TestLibDlg/TestLibDlg.sln @@ -0,0 +1,28 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.12.35707.178 d17.12 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestLibDlg", "TestLibDlg\TestLibDlg.vcxproj", "{FC9D3553-56B2-4453-AB34-94CF67213CE2}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {FC9D3553-56B2-4453-AB34-94CF67213CE2}.Debug|x64.ActiveCfg = Debug|x64 + {FC9D3553-56B2-4453-AB34-94CF67213CE2}.Debug|x64.Build.0 = Debug|x64 + {FC9D3553-56B2-4453-AB34-94CF67213CE2}.Debug|x86.ActiveCfg = Debug|Win32 + {FC9D3553-56B2-4453-AB34-94CF67213CE2}.Debug|x86.Build.0 = Debug|Win32 + {FC9D3553-56B2-4453-AB34-94CF67213CE2}.Release|x64.ActiveCfg = Release|x64 + {FC9D3553-56B2-4453-AB34-94CF67213CE2}.Release|x64.Build.0 = Release|x64 + {FC9D3553-56B2-4453-AB34-94CF67213CE2}.Release|x86.ActiveCfg = Release|Win32 + {FC9D3553-56B2-4453-AB34-94CF67213CE2}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/TestLibDlg/TestLibDlg/DlgProxy.cpp b/TestLibDlg/TestLibDlg/DlgProxy.cpp new file mode 100644 index 0000000..43e8f42 --- /dev/null +++ b/TestLibDlg/TestLibDlg/DlgProxy.cpp @@ -0,0 +1,87 @@ + +// DlgProxy.cpp: 구현 파일 +// + +#include "pch.h" +#include "framework.h" +#include "TestLibDlg.h" +#include "DlgProxy.h" +#include "TestLibDlgDlg.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#endif + + +// CTestLibDlgDlgAutoProxy + +IMPLEMENT_DYNCREATE(CTestLibDlgDlgAutoProxy, CCmdTarget) + +CTestLibDlgDlgAutoProxy::CTestLibDlgDlgAutoProxy() +{ + EnableAutomation(); + + // 자동화 개체가 활성화되어 있는 동안 계속 애플리케이션을 실행하기 위해 + // 생성자에서 AfxOleLockApp를 호출합니다. + AfxOleLockApp(); + + // 애플리케이션의 주 창 포인터를 통해 대화 상자에 대한 + // 액세스를 가져옵니다. 프록시의 내부 포인터를 설정하여 + // 대화 상자를 가리키고 대화 상자의 후방 포인터를 이 프록시로 + // 설정합니다. + ASSERT_VALID(AfxGetApp()->m_pMainWnd); + if (AfxGetApp()->m_pMainWnd) + { + ASSERT_KINDOF(CTestLibDlgDlg, AfxGetApp()->m_pMainWnd); + if (AfxGetApp()->m_pMainWnd->IsKindOf(RUNTIME_CLASS(CTestLibDlgDlg))) + { + m_pDialog = reinterpret_cast(AfxGetApp()->m_pMainWnd); + m_pDialog->m_pAutoProxy = this; + } + } +} + +CTestLibDlgDlgAutoProxy::~CTestLibDlgDlgAutoProxy() +{ + // 모든 개체가 OLE 자동화로 만들어졌을 때 애플리케이션을 종료하기 위해 + // 소멸자가 AfxOleUnlockApp를 호출합니다. + // 이러한 호출로 주 대화 상자가 삭제될 수 있습니다. + if (m_pDialog != nullptr) + m_pDialog->m_pAutoProxy = nullptr; + AfxOleUnlockApp(); +} + +void CTestLibDlgDlgAutoProxy::OnFinalRelease() +{ + // 자동화 개체에 대한 마지막 참조가 해제되면 + // OnFinalRelease가 호출됩니다. 기본 클래스에서 자동으로 개체를 삭제합니다. + // 기본 클래스를 호출하기 전에 개체에 필요한 추가 정리 작업을 + // 추가하세요. + + CCmdTarget::OnFinalRelease(); +} + +BEGIN_MESSAGE_MAP(CTestLibDlgDlgAutoProxy, CCmdTarget) +END_MESSAGE_MAP() + +BEGIN_DISPATCH_MAP(CTestLibDlgDlgAutoProxy, CCmdTarget) +END_DISPATCH_MAP() + +// 참고: IID_ITestLibDlg에 대한 지원을 추가하여 +// VBA에서 형식 안전 바인딩을 지원합니다. +// 이 IID는 .IDL 파일에 있는 dispinterface의 GUID와 일치해야 합니다. + +// {3d30aa0d-19ce-4ca6-92b1-70a7403d578c} +static const IID IID_ITestLibDlg = +{0x3d30aa0d,0x19ce,0x4ca6,{0x92,0xb1,0x70,0xa7,0x40,0x3d,0x57,0x8c}}; + +BEGIN_INTERFACE_MAP(CTestLibDlgDlgAutoProxy, CCmdTarget) + INTERFACE_PART(CTestLibDlgDlgAutoProxy, IID_ITestLibDlg, Dispatch) +END_INTERFACE_MAP() + +// IMPLEMENT_OLECREATE2 매크로가 이 프로젝트의 pch.h에 정의됩니다. +// {faa0893c-64ec-4ba5-b1f0-18ed8cb7f106} +IMPLEMENT_OLECREATE2(CTestLibDlgDlgAutoProxy, "TestLibDlg.Application", 0xfaa0893c,0x64ec,0x4ba5,0xb1,0xf0,0x18,0xed,0x8c,0xb7,0xf1,0x06) + + +// CTestLibDlgDlgAutoProxy 메시지 처리기 diff --git a/TestLibDlg/TestLibDlg/DlgProxy.h b/TestLibDlg/TestLibDlg/DlgProxy.h new file mode 100644 index 0000000..f6d30bd --- /dev/null +++ b/TestLibDlg/TestLibDlg/DlgProxy.h @@ -0,0 +1,43 @@ + +// DlgProxy.h: 헤더 파일 +// + +#pragma once + +class CTestLibDlgDlg; + + +// CTestLibDlgDlgAutoProxy 명령 대상 + +class CTestLibDlgDlgAutoProxy : public CCmdTarget +{ + DECLARE_DYNCREATE(CTestLibDlgDlgAutoProxy) + + CTestLibDlgDlgAutoProxy(); // 동적 만들기에 사용되는 protected 생성자입니다. + +// 특성입니다. +public: + CTestLibDlgDlg* m_pDialog; + +// 작업입니다. +public: + +// 재정의입니다. + public: + virtual void OnFinalRelease(); + +// 구현입니다. +protected: + virtual ~CTestLibDlgDlgAutoProxy(); + + // 생성된 메시지 맵 함수 + + DECLARE_MESSAGE_MAP() + DECLARE_OLECREATE(CTestLibDlgDlgAutoProxy) + + // 생성된 OLE 디스패치 맵 함수 + + DECLARE_DISPATCH_MAP() + DECLARE_INTERFACE_MAP() +}; + diff --git a/TestLibDlg/TestLibDlg/TestLibDlg.aps b/TestLibDlg/TestLibDlg/TestLibDlg.aps new file mode 100644 index 0000000000000000000000000000000000000000..c57b48e0e5e20aa847e58b65ba17e05b0ae2e13f GIT binary patch literal 109684 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 literal 0 HcmV?d00001 diff --git a/TestLibDlg/TestLibDlg/TestLibDlg.cpp b/TestLibDlg/TestLibDlg/TestLibDlg.cpp new file mode 100644 index 0000000..293eb9f --- /dev/null +++ b/TestLibDlg/TestLibDlg/TestLibDlg.cpp @@ -0,0 +1,153 @@ + +// TestLibDlg.cpp: 애플리케이션에 대한 클래스 동작을 정의합니다. +// + +#include "pch.h" +#include "framework.h" +#include "TestLibDlg.h" +#include "TestLibDlgDlg.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#endif + + +// CTestLibDlgApp + +BEGIN_MESSAGE_MAP(CTestLibDlgApp, CWinApp) + ON_COMMAND(ID_HELP, &CWinApp::OnHelp) +END_MESSAGE_MAP() + + +// CTestLibDlgApp 생성 + +CTestLibDlgApp::CTestLibDlgApp() +{ + // 다시 시작 관리자 지원 + m_dwRestartManagerSupportFlags = AFX_RESTART_MANAGER_SUPPORT_RESTART; + + // TODO: 여기에 생성 코드를 추가합니다. + // InitInstance에 모든 중요한 초기화 작업을 배치합니다. +} + + +// 유일한 CTestLibDlgApp 개체입니다. + +CTestLibDlgApp theApp; + +const GUID CDECL BASED_CODE _tlid = + {0xe6371bfe,0x4bde,0x4d88,{0xb4,0x04,0x1d,0x2f,0x22,0x2f,0x1d,0xdf}}; +const WORD _wVerMajor = 1; +const WORD _wVerMinor = 0; + + +// CTestLibDlgApp 초기화 + +BOOL CTestLibDlgApp::InitInstance() +{ + // Windows XP에서는 InitCommonControlsEx()를 필요로 합니다. + // 사용하도록 지정하는 경우, Windows XP 상에서 반드시 InitCommonControlsEx()가 필요합니다. + // InitCommonControlsEx()를 사용하지 않으면 창을 만들 수 없습니다. + INITCOMMONCONTROLSEX InitCtrls; + InitCtrls.dwSize = sizeof(InitCtrls); + // 응용 프로그램에서 사용할 모든 공용 컨트롤 클래스를 포함하도록 + // 이 항목을 설정하십시오. + InitCtrls.dwICC = ICC_WIN95_CLASSES; + InitCommonControlsEx(&InitCtrls); + + CWinApp::InitInstance(); + + + // OLE 라이브러리를 초기화합니다. + if (!AfxOleInit()) + { + AfxMessageBox(IDP_OLE_INIT_FAILED); + return FALSE; + } + + AfxEnableControlContainer(); + + // 대화 상자에 셸 트리 뷰 또는 + // 셸 목록 뷰 컨트롤이 포함되어 있는 경우 셸 관리자를 만듭니다. + CShellManager *pShellManager = new CShellManager; + + // MFC 컨트롤의 테마를 사용하기 위해 "Windows 원형" 비주얼 관리자 활성화 + CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerWindows)); + + // 표준 초기화 + // 이들 기능을 사용하지 않고 최종 실행 파일의 크기를 줄이려면 + // 아래에서 필요 없는 특정 초기화 + // 루틴을 제거해야 합니다. + // 해당 설정이 저장된 레지스트리 키를 변경하십시오. + // TODO: 이 문자열을 회사 또는 조직의 이름과 같은 + // 적절한 내용으로 수정해야 합니다. + SetRegistryKey(_T("로컬 애플리케이션 마법사에서 생성된 애플리케이션")); + // 자동화 또는 reg/unreg 스위치에 대한 명령줄을 구문 분석합니다. + CCommandLineInfo cmdInfo; + ParseCommandLine(cmdInfo); + + // 응용 프로그램이 /Embedding 또는 /Automation 스위치로 시작되었습니다. + // 응용 프로그램을 자동화 서버로 실행합니다. + if (cmdInfo.m_bRunEmbedded || cmdInfo.m_bRunAutomated) + { + // CoRegisterClassObject()를 통해 클래스 팩터리를 등록합니다. + COleTemplateServer::RegisterAll(); + } + // 응용 프로그램이 /Unregserver 또는 /Unregister 스위치로 시작되었습니다. 레지스트리에서 항목을 + // 제거합니다. + else if (cmdInfo.m_nShellCommand == CCommandLineInfo::AppUnregister) + { + COleObjectFactory::UpdateRegistryAll(FALSE); + AfxOleUnregisterTypeLib(_tlid, _wVerMajor, _wVerMinor); + return FALSE; + } + // 응용 프로그램이 독립 실행형으로 시작되었거나 다른 스위치로 시작되었습니다(예: /Register + // 또는 /Regserver). typelibrary를 포함하여 레지스트리 항목을 업데이트합니다. + else + { + COleObjectFactory::UpdateRegistryAll(); + AfxOleRegisterTypeLib(AfxGetInstanceHandle(), _tlid); + if (cmdInfo.m_nShellCommand == CCommandLineInfo::AppRegister) + return FALSE; + } + + CTestLibDlgDlg dlg; + m_pMainWnd = &dlg; + INT_PTR nResponse = dlg.DoModal(); + if (nResponse == IDOK) + { + // TODO: 여기에 [확인]을 클릭하여 대화 상자가 없어질 때 처리할 + // 코드를 배치합니다. + } + else if (nResponse == IDCANCEL) + { + // TODO: 여기에 [취소]를 클릭하여 대화 상자가 없어질 때 처리할 + // 코드를 배치합니다. + } + else if (nResponse == -1) + { + TRACE(traceAppMsg, 0, "경고: 대화 상자를 만들지 못했으므로 애플리케이션이 예기치 않게 종료됩니다.\n"); + TRACE(traceAppMsg, 0, "경고: 대화 상자에서 MFC 컨트롤을 사용하는 경우 #define _AFX_NO_MFC_CONTROLS_IN_DIALOGS를 수행할 수 없습니다.\n"); + } + + // 위에서 만든 셸 관리자를 삭제합니다. + if (pShellManager != nullptr) + { + delete pShellManager; + } + +#if !defined(_AFXDLL) && !defined(_AFX_NO_MFC_CONTROLS_IN_DIALOGS) + ControlBarCleanUp(); +#endif + + // 대화 상자가 닫혔으므로 응용 프로그램의 메시지 펌프를 시작하지 않고 응용 프로그램을 끝낼 수 있도록 FALSE를 + // 반환합니다. + return FALSE; +} + +int CTestLibDlgApp::ExitInstance() +{ + AfxOleTerm(FALSE); + + return CWinApp::ExitInstance(); +} diff --git a/TestLibDlg/TestLibDlg/TestLibDlg.h b/TestLibDlg/TestLibDlg/TestLibDlg.h new file mode 100644 index 0000000..e0e5304 --- /dev/null +++ b/TestLibDlg/TestLibDlg/TestLibDlg.h @@ -0,0 +1,33 @@ + +// TestLibDlg.h: PROJECT_NAME 애플리케이션에 대한 주 헤더 파일입니다. +// + +#pragma once + +#ifndef __AFXWIN_H__ + #error "PCH에 대해 이 파일을 포함하기 전에 'pch.h'를 포함합니다." +#endif + +#include "resource.h" // 주 기호입니다. + + +// CTestLibDlgApp: +// 이 클래스의 구현에 대해서는 TestLibDlg.cpp을(를) 참조하세요. +// + +class CTestLibDlgApp : public CWinApp +{ +public: + CTestLibDlgApp(); + +// 재정의입니다. +public: + virtual BOOL InitInstance(); + virtual int ExitInstance(); + +// 구현입니다. + + DECLARE_MESSAGE_MAP() +}; + +extern CTestLibDlgApp theApp; diff --git a/TestLibDlg/TestLibDlg/TestLibDlg.idl b/TestLibDlg/TestLibDlg/TestLibDlg.idl new file mode 100644 index 0000000..8a4712f --- /dev/null +++ b/TestLibDlg/TestLibDlg/TestLibDlg.idl @@ -0,0 +1,29 @@ +// TestLibDlg.idl: TestLibDlg.exe의 형식 라이브러리 소스 + +// 이 파일은 MIDL 컴파일러에 의해 처리되어 +// 형식 라이브러리(TestLibDlg.tlb)입니다. + +[ uuid(e6371bfe-4bde-4d88-b404-1d2f222f1ddf), version(1.0) ] +library TestLibDlg +{ + importlib("stdole32.tlb"); + importlib("stdole2.tlb"); + + // CTestLibDlgDoc의 기본 디스패치 인터페이스 + + [ uuid(3d30aa0d-19ce-4ca6-92b1-70a7403d578c) ] + dispinterface ITestLibDlg + { + properties: + + methods: + }; + + // CTestLibDlgDoc에 대한 클래스 정보 + + [ uuid(faa0893c-64ec-4ba5-b1f0-18ed8cb7f106) ] + coclass TestLibDlg + { + [default] dispinterface ITestLibDlg; + }; +}; diff --git a/TestLibDlg/TestLibDlg/TestLibDlg.rc b/TestLibDlg/TestLibDlg/TestLibDlg.rc new file mode 100644 index 0000000000000000000000000000000000000000..c147727bf1969e2142dee9cb70bae55479b63b03 GIT binary patch literal 11546 zcmd^Fy>A>v6n_N;LLeHDC@7W-LXNN;pY0@o5R&b)9Shrc%AJiPSvs6JHj(@h*%xA@ zlps;0qd9Y*8#nLf5q7_n zq%0Mgl!A;(QL1uOhR|EU^Ms7aG4z!2J1zt08N;)!PaN9sGVH94WCVOk^LQRyT9GBt zUjui@hYF~k#_uSo9t54_#}N8^aHl2GD1&*dK>p8TbR$Oza|+yh8xRYba;rfHR-H!F z3Ux)t4R ze=13BBr|uGE`ENaL*(+zoj<->y0|}}iEEB4${FfLBrhfGdrmr_kHgSxwd*ppa1s_i z2u-X)7sqfB?m1jh=FAFU9EBZKp}|Ew?RTq=p?3nklW0ertyqtZqaT@&PCzbW)Bx7f z8C-b?SoNcK3^qsnV;Xj2NA0PprmcRPicz6&ifYlG5#Q6AdaV-H}5xgMWipynM$GVwD{d=A^3k&n5vG>i(YtGl^n@BdK z$(r5FU{(dXv<5pIgPk9TzgR>z(&ci59@ucs`5KK)t!KEk?e(qc?MUujTHlD|o6CzA zzq|3`^+>M#`2DS!JCR)2IDh@q&5yQkUb=UwYnPZW0y~XJ#6D@$%xny2^E`_C%ujMF zlEsU8VDZV;`RiF6R&N)IsAg>zKbt{FXXiO^HH0-eejGXJa-HKb?#A(9SP1#``_)LE z#eM(VD?iL#iR9LXTsA&tW73MJ++o;WVCR z0adF?R(#C(S&P;%GeZ9|-dSaG^eo161}j(AqNf}-k$b0B8eUorEny6O$r@%V-fMU# zbVB7CoI|LKxLCn{Q2)AwR_iBXOm9C9-_HtZ7;pV}W7QS9Mxp<#NkiX4eU=ktdp6R# z0{t{z8;y^P&J@6Na(D%P+Hf~o$lU_C+wbc3NmwZB_i1pCb$&m5e9>j??CExKLx1yf zxc+_!c_N{4ci@&%BG~@5XSbG|?IrFzCZrgS&)fm+h6|37B=PL$l}cg*0fjWqW_RLrCe4r0|R(DTMrk`6rPH zt$|O37P$ySy3*sjz45kpl$=onmI}KMIP&VN&xxTjBjT`tNbfJeQS(*XI85!$6-7g{~+yk8hCw9Z%qSNaI zr`zO%NtIkl>deF8M+xh#0LwF=vligGubD62{P?H6Xl8Pay=zV!qfC<;dy*DC1+J|= z;Nf08L{dvDfJPf$gJj}e0M#4%YxN(@MAeTZtB)Al_=%d!`*Di4%mf)nN1!i$w6xev zdXn*~m0c;GlraxuUPq{0gPDJLt*{rinj&4*QzCvv;roj)B-1dBkrfx0dB#V~2<>n^ zj@meFkK(&#ecZM2$LC$1>aS}vHRDT<55s5vs#V!|14ajtUHkBpI%caGhjy;I{(GMF z!istmG#M2Si)VRMCCL?HuEkIPzui_lE%R-r3cKt_UdMV~&!l~OZ(Xk#H}x#8IrOky zsz;4wLyhPCIQdUMd*w;qB}Yehu@6GAN<4u@gwnX)_cr@#K?%L^FI z-LM)?tva`!ySlz{4d+GN8=AiJ>*mj!FK?wY9^%CcEbWyIk8~T}h0}e>4tWJ|_9Ls} zrI}Sy8?vpn^?!`Cw>Fu6u+=!*>_0!$g5R(#mN+;V7*C{{K?(iM?TzJ}tJh`SAHF&$xLqPyeFY^r+6| zv+(oJvP0+ZzUNa6)2HtSIsA``^hvvoPV*^*N8^dQVq=_Y{ coN#y(m-f8Ul$s=!d&{V)c|Oxh-9t!!1FlH^EdT%j literal 0 HcmV?d00001 diff --git a/TestLibDlg/TestLibDlg/TestLibDlg.reg b/TestLibDlg/TestLibDlg/TestLibDlg.reg new file mode 100644 index 0000000..9a7b5f4 --- /dev/null +++ b/TestLibDlg/TestLibDlg/TestLibDlg.reg @@ -0,0 +1,17 @@ +REGEDIT +; .REG 파일은 SETUP 프로그램에 사용될 수 있습니다. +; SETUP 프로그램을 사용할 수 없는 경우 아래 항목이 +; CWinApp::RegisterShellFileTypes 및 COleObjectFactory::UpdateRegistryAll을 +; 호출하여 InitInstance에 자동으로 등록됩니다. + + +HKEY_CLASSES_ROOT\TestLibDlg.Application = TestLibDlg Application + + +HKEY_CLASSES_ROOT\TestLibDlg.Application\CLSID = {faa0893c-64ec-4ba5-b1f0-18ed8cb7f106} + +HKEY_CLASSES_ROOT\CLSID\{faa0893c-64ec-4ba5-b1f0-18ed8cb7f106} = TestLibDlg Application +HKEY_CLASSES_ROOT\CLSID\{faa0893c-64ec-4ba5-b1f0-18ed8cb7f106}\ProgId = TestLibDlg.Application + + +HKEY_CLASSES_ROOT\CLSID\{faa0893c-64ec-4ba5-b1f0-18ed8cb7f106}\LocalServer32 = TestLibDlg.EXE diff --git a/TestLibDlg/TestLibDlg/TestLibDlg.vcxproj b/TestLibDlg/TestLibDlg/TestLibDlg.vcxproj new file mode 100644 index 0000000..a60be9b --- /dev/null +++ b/TestLibDlg/TestLibDlg/TestLibDlg.vcxproj @@ -0,0 +1,240 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 17.0 + {FC9D3553-56B2-4453-AB34-94CF67213CE2} + MFCProj + TestLibDlg + 10.0 + + + + Application + true + v143 + Unicode + Dynamic + + + Application + false + v143 + true + Unicode + Dynamic + + + Application + true + v143 + Unicode + Dynamic + + + Application + false + v143 + true + Unicode + Dynamic + + + + + + + + + + + + + + + + + + + + + true + + + true + + + false + + + false + + + + Use + Level3 + true + _WINDOWS;_DEBUG;%(PreprocessorDefinitions) + pch.h + stdcpp20 + C:\git_work\test_lib\a2lLib\a2lLib\include;%(AdditionalIncludeDirectories) + + + Windows + true + C:\git_work\test_lib\a2lLib\Debug\a2lLib.lib;%(AdditionalDependencies) + + + false + true + _DEBUG;%(PreprocessorDefinitions) + $(IntDir)TestLibDlg.tlb + TestLibDlg_h.h + + + 0x0412 + _DEBUG;%(PreprocessorDefinitions) + $(IntDir);%(AdditionalIncludeDirectories) + + + + + Use + Level3 + true + WIN32;_WINDOWS;_DEBUG;%(PreprocessorDefinitions) + pch.h + C:\git_work\test_lib\a2lLib\a2lLib\include;C:\boost\include\boost-1_87 + stdcpp20 + + + Windows + true + C:\git_work\test_lib\a2lLib\Debug\a2lLib.lib + C:\boost\x86_lib;%(AdditionalLibraryDirectories) + + + false + true + _DEBUG;%(PreprocessorDefinitions) + $(IntDir)TestLibDlg.tlb + TestLibDlg_h.h + + + 0x0412 + _DEBUG;%(PreprocessorDefinitions) + $(IntDir);%(AdditionalIncludeDirectories) + + + + + Use + Level3 + true + true + true + WIN32;_WINDOWS;NDEBUG;%(PreprocessorDefinitions) + pch.h + + + Windows + true + true + true + + + false + true + NDEBUG;%(PreprocessorDefinitions) + $(IntDir)TestLibDlg.tlb + TestLibDlg_h.h + + + 0x0412 + NDEBUG;%(PreprocessorDefinitions) + $(IntDir);%(AdditionalIncludeDirectories) + + + + + Use + Level3 + true + true + true + _WINDOWS;NDEBUG;%(PreprocessorDefinitions) + pch.h + + + Windows + true + true + true + + + false + true + NDEBUG;%(PreprocessorDefinitions) + $(IntDir)TestLibDlg.tlb + TestLibDlg_h.h + + + 0x0412 + NDEBUG;%(PreprocessorDefinitions) + $(IntDir);%(AdditionalIncludeDirectories) + + + + + + + + + + + + + + + Create + Create + Create + Create + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/TestLibDlg/TestLibDlg/TestLibDlg.vcxproj.filters b/TestLibDlg/TestLibDlg/TestLibDlg.vcxproj.filters new file mode 100644 index 0000000..58d9b90 --- /dev/null +++ b/TestLibDlg/TestLibDlg/TestLibDlg.vcxproj.filters @@ -0,0 +1,75 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + 헤더 파일 + + + 헤더 파일 + + + 헤더 파일 + + + 헤더 파일 + + + 헤더 파일 + + + 헤더 파일 + + + 헤더 파일 + + + + + 소스 파일 + + + 소스 파일 + + + 소스 파일 + + + 소스 파일 + + + + + 소스 파일 + + + + + + 리소스 파일 + + + + + 리소스 파일 + + + + + 리소스 파일 + + + \ No newline at end of file diff --git a/TestLibDlg/TestLibDlg/TestLibDlg.vcxproj.user b/TestLibDlg/TestLibDlg/TestLibDlg.vcxproj.user new file mode 100644 index 0000000..bb0cac4 --- /dev/null +++ b/TestLibDlg/TestLibDlg/TestLibDlg.vcxproj.user @@ -0,0 +1,6 @@ + + + + TestLibDlg.rc + + \ No newline at end of file diff --git a/TestLibDlg/TestLibDlg/TestLibDlgDlg.cpp b/TestLibDlg/TestLibDlg/TestLibDlgDlg.cpp new file mode 100644 index 0000000..407c8fb --- /dev/null +++ b/TestLibDlg/TestLibDlg/TestLibDlgDlg.cpp @@ -0,0 +1,519 @@ + +// TestLibDlgDlg.cpp: 구현 파일 +// + +#include "pch.h" +#include "framework.h" +#include "TestLibDlg.h" +#include "TestLibDlgDlg.h" +#include "DlgProxy.h" +#include "afxdialogex.h" + + +#include + +#ifdef _DEBUG +#define new DEBUG_NEW +#endif + +//template +//std::wstring wstring_format(const std::wstring& format, Args ... args); +template +std::string string_format(const std::string& format, Args ... args) +{ + size_t size = snprintf(nullptr, 0, format.c_str(), args ...) + 1; // Extra space for '\0' + if (size <= 0) { + throw std::runtime_error("Error during formatting."); + } + std::unique_ptr buf(new char[size]); + snprintf(buf.get(), size, format.c_str(), args ...); + return std::string(buf.get(), buf.get() + size - 1); // We don't want the '\0' inside } +} + +// 응용 프로그램 정보에 사용되는 CAboutDlg 대화 상자입니다. + +class CAboutDlg : public CDialogEx +{ +public: + CAboutDlg(); + +// 대화 상자 데이터입니다. +#ifdef AFX_DESIGN_TIME + enum { IDD = IDD_ABOUTBOX }; +#endif + + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 지원입니다. + +// 구현입니다. +protected: + DECLARE_MESSAGE_MAP() +}; + +CAboutDlg::CAboutDlg() : CDialogEx(IDD_ABOUTBOX) +{ +} + +void CAboutDlg::DoDataExchange(CDataExchange* pDX) +{ + CDialogEx::DoDataExchange(pDX); +} + +BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx) +END_MESSAGE_MAP() + + +// CTestLibDlgDlg 대화 상자 + + +IMPLEMENT_DYNAMIC(CTestLibDlgDlg, CDialogEx); + +CTestLibDlgDlg::CTestLibDlgDlg(CWnd* pParent /*=nullptr*/) + : CDialogEx(IDD_TESTLIBDLG_DIALOG, pParent) +{ + m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); + m_pAutoProxy = nullptr; +} + +CTestLibDlgDlg::~CTestLibDlgDlg() +{ + // 이 대화 상자에 대한 자동화 프록시가 있을 경우 이 대화 상자에 대한 + // 후방 포인터를 null로 설정하여 + // 대화 상자가 삭제되었음을 알 수 있게 합니다. + if (m_pAutoProxy != nullptr) + m_pAutoProxy->m_pDialog = nullptr; +} + +void CTestLibDlgDlg::DoDataExchange(CDataExchange* pDX) +{ + CDialogEx::DoDataExchange(pDX); +} + +BEGIN_MESSAGE_MAP(CTestLibDlgDlg, CDialogEx) + ON_WM_SYSCOMMAND() + ON_WM_CLOSE() + ON_WM_PAINT() + ON_WM_QUERYDRAGICON() + ON_BN_CLICKED(IDC_BUTTON1, &CTestLibDlgDlg::OnBnClickedButton1) +END_MESSAGE_MAP() + + +// CTestLibDlgDlg 메시지 처리기 + +BOOL CTestLibDlgDlg::OnInitDialog() +{ + CDialogEx::OnInitDialog(); + + // 시스템 메뉴에 "정보..." 메뉴 항목을 추가합니다. + + // IDM_ABOUTBOX는 시스템 명령 범위에 있어야 합니다. + ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); + ASSERT(IDM_ABOUTBOX < 0xF000); + + CMenu* pSysMenu = GetSystemMenu(FALSE); + if (pSysMenu != nullptr) + { + BOOL bNameValid; + CString strAboutMenu; + bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX); + ASSERT(bNameValid); + if (!strAboutMenu.IsEmpty()) + { + pSysMenu->AppendMenu(MF_SEPARATOR); + pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); + } + } + + // 이 대화 상자의 아이콘을 설정합니다. 응용 프로그램의 주 창이 대화 상자가 아닐 경우에는 + // 프레임워크가 이 작업을 자동으로 수행합니다. + SetIcon(m_hIcon, TRUE); // 큰 아이콘을 설정합니다. + SetIcon(m_hIcon, FALSE); // 작은 아이콘을 설정합니다. + + // TODO: 여기에 추가 초기화 작업을 추가합니다. + + return TRUE; // 포커스를 컨트롤에 설정하지 않으면 TRUE를 반환합니다. +} + +void CTestLibDlgDlg::OnSysCommand(UINT nID, LPARAM lParam) +{ + if ((nID & 0xFFF0) == IDM_ABOUTBOX) + { + CAboutDlg dlgAbout; + dlgAbout.DoModal(); + } + else + { + CDialogEx::OnSysCommand(nID, lParam); + } +} + +// 대화 상자에 최소화 단추를 추가할 경우 아이콘을 그리려면 +// 아래 코드가 필요합니다. 문서/뷰 모델을 사용하는 MFC 애플리케이션의 경우에는 +// 프레임워크에서 이 작업을 자동으로 수행합니다. + +void CTestLibDlgDlg::OnPaint() +{ + if (IsIconic()) + { + CPaintDC dc(this); // 그리기를 위한 디바이스 컨텍스트입니다. + + SendMessage(WM_ICONERASEBKGND, reinterpret_cast(dc.GetSafeHdc()), 0); + + // 클라이언트 사각형에서 아이콘을 가운데에 맞춥니다. + int cxIcon = GetSystemMetrics(SM_CXICON); + int cyIcon = GetSystemMetrics(SM_CYICON); + CRect rect; + GetClientRect(&rect); + int x = (rect.Width() - cxIcon + 1) / 2; + int y = (rect.Height() - cyIcon + 1) / 2; + + // 아이콘을 그립니다. + dc.DrawIcon(x, y, m_hIcon); + } + else + { + CDialogEx::OnPaint(); + } +} + +// 사용자가 최소화된 창을 끄는 동안에 커서가 표시되도록 시스템에서 +// 이 함수를 호출합니다. +HCURSOR CTestLibDlgDlg::OnQueryDragIcon() +{ + return static_cast(m_hIcon); +} + +// 컨트롤러에서 해당 개체 중 하나를 계속 사용하고 있을 경우 +// 사용자가 UI를 닫을 때 자동화 서버를 종료하면 안 됩니다. 이들 +// 메시지 처리기는 프록시가 아직 사용 중인 경우 UI는 숨기지만, +// UI가 표시되지 않아도 대화 상자는 +// 남겨 둡니다. + +void CTestLibDlgDlg::OnClose() +{ + if (CanExit()) + CDialogEx::OnClose(); +} + +void CTestLibDlgDlg::OnOK() +{ + if (CanExit()) + CDialogEx::OnOK(); +} + +void CTestLibDlgDlg::OnCancel() +{ + if (CanExit()) + CDialogEx::OnCancel(); +} + +BOOL CTestLibDlgDlg::CanExit() +{ + // 프록시 개체가 계속 남아 있으면 자동화 컨트롤러에서는 + // 이 애플리케이션을 계속 사용합니다. 대화 상자는 남겨 두지만 + // 해당 UI는 숨깁니다. + if (m_pAutoProxy != nullptr) + { + ShowWindow(SW_HIDE); + return FALSE; + } + + return TRUE; +} + + + +void CTestLibDlgDlg::OnBnClickedButton1() +{ + // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. + loadA2lFile("C:\\Users\\oilvirus\\Downloads\\example-a2l-file.a2l"); +} + +void CTestLibDlgDlg::loadA2lFile(std::string strFilePath) +{ + std::string strLogData; + + bool bIsFileExist = false; + try { + bIsFileExist = std::filesystem::exists(strFilePath); + } + catch (const std::exception& error) { + std::cout << "Failed to fetch the A2l test files. Error: " + << error.what(); + } + + a2l::A2lFile file; + file.Filename(strFilePath.data()); + const auto parse = file.ParseFile(); + if (parse ) + std::cout << file.LastError() << " : " << strFilePath.data(); + std::cout << file.Name() << (parse ? " : OK" : " : FAIL") << std::endl; + + AddLogString(strFilePath.data()); + + + //if (file.A2lVersion().VersionNo == 1) + // ; + std::cout << file.A2lVersion().VersionNo << " : " << file.A2lVersion().VersionNo; + AddLogString(string_format("file.A2lVersion().VersionNo : %d", file.A2lVersion().VersionNo)); + + //if (file.A2lVersion().UpgradeNo == 71) + // ; + std::cout << file.A2lVersion().UpgradeNo << " : " << file.A2lVersion().UpgradeNo; + AddLogString(string_format("file.A2lVersion().UpgradeNo : %d", file.A2lVersion().UpgradeNo)); + + const auto& project = file.Project(); + + const auto& header = project.Header(); + //EXPECT_FALSE(header.Comment.empty()); + //EXPECT_FALSE(header.ProjectNo.empty()); + //EXPECT_FALSE(header.VersionNo.empty()); + std::cout << header.Comment << " : " << header.Comment; + AddLogString(string_format("header.Comment : %s", header.Comment.c_str())); + std::cout << header.ProjectNo << " : " << header.ProjectNo; + AddLogString(string_format("header.ProjectNo : %s", header.ProjectNo.c_str())); + std::cout << header.VersionNo << " : " << header.VersionNo; + AddLogString(string_format("header.VersionNo : %s", header.VersionNo.c_str())); + + const auto& module_list = project.Modules(); + //ASSERT_EQ(module_list.size(), 1); + std::cout << module_list.size() << " : " << module_list.size(); + AddLogString(string_format("module_list.size() : %d", module_list.size())); + + + const auto& module = module_list.cbegin()->second; + //ASSERT_TRUE(module); + + //EXPECT_STREQ(module->Name().c_str(), "Example"); + //EXPECT_FALSE(module->A2ml().empty()); + AddLogString(string_format("module->Name() : %s", module->Name().c_str())); + AddLogString(string_format("module->A2ml() : %s", module->A2ml().c_str())); + + AddLogString(""); + + for (const auto& [protocol, if_data] : module->IfDatas()) { + a2l::IfDataBlock block(if_data); + //EXPECT_TRUE(block.IsOk()) << block.LastError(); + std::cout << block.AsString() << std::endl; + + AddLogString(string_format("IF_DATA : %s", block.Protocol().c_str())); + AddLogString(string_format("block.ItemList().size() : %d", block.ItemList().size())); + + for (int i = 0; i < block.ItemList().size(); i++) { + AddLogString(string_format("%d block.ItemList() : %s", i, block.ItemList()[i].BlockName.c_str())); + AddLogString(string_format("block.ItemList()[i].ItemList.size() : %d", block.ItemList()[i].ItemList.size())); + + for (int j = 0; j < block.ItemList()[i].ItemList.size(); j++) { + // check digit + bool bIsDigit = true; + if (j > 0) + TRACE("asdf"); + for (int cnt = 0; cnt < block.ItemList()[i].ItemList[j].Value.size(); cnt++) { + //int value = std::isdigit(block.ItemList()[i].ItemList[j].Value.at(cnt)); + //int alpha = std::isalpha(block.ItemList()[i].ItemList[j].Value.at(cnt)); + //TRACE("[%c][%d][%d]\n", block.ItemList()[i].ItemList[j].Value.at(cnt), value, alpha); + if (std::isdigit(block.ItemList()[i].ItemList[j].Value.at(cnt)) == 0) + bIsDigit = false; + } + + if (bIsDigit) + AddLogString(string_format("%d : Address 0x%X (%d) : ", j, atoi(block.ItemList()[i].ItemList[j].Value.c_str()), atoi(block.ItemList()[i].ItemList[j].Value.c_str()))); + else + AddLogString(string_format("%d : %s", j, block.ItemList()[i].ItemList[j].Value.c_str())); + + + for (int k = 0; k < (block.ItemList()[i].ItemList[j].ItemList.size()); k++) { + + } + } + + AddLogString(""); + } + //AddLogString(string_format("block.AsString() : %s", block.AsString().c_str())); + + AddLogString(""); + } + + AddLogString(""); + const auto& axis_list = module->AxisPtss(); + //EXPECT_GT(axis_list.size(), 1); + std::cout << "\t\tAXIS PTS" << std::endl; + for (const auto& [pts_name, pts] : axis_list) { + std::cout << pts_name << std::endl; + } + std::cout << std::endl; + + const auto& blob_list = module->Blobs(); + //EXPECT_GT(blob_list.size(), 0); + std::cout << "\t\tBLOB" << std::endl; + for (const auto& [blob_name, blob] : blob_list) { + std::cout << blob_name << " " << blob->Address() << std::endl; + } + std::cout << std::endl; + + const auto& characteristic_list = module->Characteristics(); + //EXPECT_GT(characteristic_list.size(), 0); + std::cout << "\t\tCHARACTERISTIC" << std::endl; + for (const auto& [char_name, characteristic] : characteristic_list) { + std::cout << char_name << " " << characteristic->Description() << std::endl; + } + std::cout << std::endl; + + const auto& compu_method_list = module->CompuMethods(); + //EXPECT_GT(compu_method_list.size(), 0); + std::cout << "\t\tCOMPU METHOD" << std::endl; + for (const auto& [method_name, method] : compu_method_list) { + std::cout << method_name << " " << method->Description() << std::endl; + } + std::cout << std::endl; + + const auto& compu_tab_list = module->CompuTabs(); + //EXPECT_GT(compu_tab_list.size(), 0); + std::cout << "\t\tCOMPU TAB" << std::endl; + for (const auto& [tab_name, tab] : compu_tab_list) { + std::cout << tab_name << " " << tab->Description() << std::endl; + } + std::cout << std::endl; + + const auto& compu_vtab_list = module->CompuVtabs(); + //EXPECT_GT(compu_vtab_list.size(), 0); + std::cout << "\t\tCOMPU VTAB" << std::endl; + for (const auto& [vtab_name, vtab] : compu_vtab_list) { + std::cout << vtab_name << " " << vtab->Description() << std::endl; + } + std::cout << std::endl; + + const auto& compu_vtab_range_list = module->CompuVtabRanges(); + //EXPECT_GT(compu_vtab_range_list.size(), 0); + std::cout << "\t\tCOMPU VTAB RANGE" << std::endl; + for (const auto& [range_name, range] : compu_vtab_range_list) { + std::cout << range_name << " " << range->Description() << std::endl; + } + std::cout << std::endl; + + const auto& frame_list = module->Frames(); + // EXPECT_GT(frame_list.size(), 0); No frames in file + std::cout << "\t\tFRAME" << std::endl; + for (const auto& [frame_name, frame] : frame_list) { + std::cout << frame_name << " " << frame->Description() << std::endl; + } + std::cout << std::endl; + + const auto& func_list = module->Functions(); + //EXPECT_GT(func_list.size(), 0); + std::cout << "\t\tFUNCTION" << std::endl; + for (const auto& [func_name, func] : func_list) { + std::cout << func_name << " " << func->Description() << std::endl; + } + std::cout << std::endl; + + const auto& group_list = module->Groups(); + //EXPECT_GT(group_list.size(), 0); + std::cout << "\t\tGROUP" << std::endl; + for (const auto& [group_name, group] : group_list) { + std::cout << group_name << " " << group->Description() << std::endl; + } + std::cout << std::endl; + + const auto& instance_list = module->Instances(); + //EXPECT_GT(instance_list.size(), 0); + std::cout << "\t\tINSTANCE" << std::endl; + for (const auto& [instance_name, instance] : instance_list) { + std::cout << instance_name << " " << instance->Description() << std::endl; + } + std::cout << std::endl; + + const auto& meas_list = module->Measurements(); + //EXPECT_GT(meas_list.size(), 0); + std::cout << "\t\tMEASUREMENT" << std::endl; + for (const auto& [meas_name, meas] : meas_list) { + std::cout << meas_name << " " << meas->Description() << std::endl; + } + std::cout << std::endl; + + const auto& rec_list = module->RecordLayouts(); + //EXPECT_GT(rec_list.size(), 0); + std::cout << "\t\tRECORD LAYOUT" << std::endl; + for (const auto& [rec_name, rec] : rec_list) { + std::cout << rec_name << std::endl; + } + std::cout << std::endl; + + const auto& trans_list = module->Transformers(); + //EXPECT_GT(trans_list.size(), 0); + std::cout << "\t\tTRANSFORMER" << std::endl; + for (const auto& [trans_name, trans] : trans_list) { + std::cout << trans_name << std::endl; + } + std::cout << std::endl; + + const auto& taxis_list = module->TypedefAxiss(); + //EXPECT_GT(taxis_list.size(), 0); + std::cout << "\t\tTYPEDEF AXIS" << std::endl; + for (const auto& [taxis_name, taxis] : taxis_list) { + std::cout << taxis_name << std::endl; + } + std::cout << std::endl; + + const auto& tblob_list = module->TypedefBlobs(); + //EXPECT_GT(tblob_list.size(), 0); + std::cout << "\t\tTYPEDEF BLOB" << std::endl; + for (const auto& [tblob_name, tblob] : tblob_list) { + std::cout << tblob_name << std::endl; + } + std::cout << std::endl; + + const auto& tchar_list = module->TypedefCharacteristics(); + //EXPECT_GT(tchar_list.size(), 0); + std::cout << "\t\tTYPEDEF CHARACTERISTIC" << std::endl; + for (const auto& [tchar_name, tchar] : tchar_list) { + std::cout << tchar_name << std::endl; + } + std::cout << std::endl; + + const auto& tmeas_list = module->TypedefMeasurements(); + //EXPECT_GT(tmeas_list.size(), 0); + std::cout << "\t\tTYPEDEF MEASUREMENT" << std::endl; + for (const auto& [tmeas_name, tmeas] : tmeas_list) { + std::cout << tmeas_name << std::endl; + } + + std::cout << std::endl; + const auto& tstruct_list = module->TypedefStructures(); + //EXPECT_GT(tstruct_list.size(), 0); + std::cout << "\t\tTYPEDEF STRUCTURE" << std::endl; + for (const auto& [tstruct_name, tstruct] : tstruct_list) { + std::cout << tstruct_name << std::endl; + } + std::cout << std::endl; + + std::cout << std::endl; + const auto& unit_list = module->Units(); + //EXPECT_GT(unit_list.size(), 0); + std::cout << "\t\tUNIT" << std::endl; + for (const auto& [unit_name, unit] : unit_list) { + std::cout << unit_name << std::endl; + } + std::cout << std::endl; + + a2l::A2mlBlock a2ml_block(module->A2ml()); + const auto& a2ml = module->A2ml(); + const auto a2ml_parse = a2ml_block.IsOk(); + + //EXPECT_TRUE(a2ml_parse) << a2ml_block.LastError(); + /* + const auto& block_list = a2ml_scanner.BlockList(); + for (const auto& block : block_list) { + std::cout << block.AsString() << std::endl; + } + */ +} + +void CTestLibDlgDlg::AddLogString(std::string strMessage) +{ + CListBox* pListBox = (CListBox*)GetDlgItem(IDC_LIST_DATA); + std::wstring message_w; + message_w.assign(strMessage.begin(), strMessage.end()); + + pListBox->AddString(message_w.c_str()); +} \ No newline at end of file diff --git a/TestLibDlg/TestLibDlg/TestLibDlgDlg.h b/TestLibDlg/TestLibDlg/TestLibDlgDlg.h new file mode 100644 index 0000000..6997723 --- /dev/null +++ b/TestLibDlg/TestLibDlg/TestLibDlgDlg.h @@ -0,0 +1,64 @@ + +// TestLibDlgDlg.h: 헤더 파일 +// + +#pragma once + +#include +#include +#include +#include + +#include "a2l/a2lfile.h" +#include "a2l/a2mlblock.h" +#include "a2l/ifdatablock.h" + +using namespace std::filesystem; +using namespace std::chrono_literals; + +class CTestLibDlgDlgAutoProxy; + + +// CTestLibDlgDlg 대화 상자 +class CTestLibDlgDlg : public CDialogEx +{ + DECLARE_DYNAMIC(CTestLibDlgDlg); + friend class CTestLibDlgDlgAutoProxy; + +// 생성입니다. +public: + CTestLibDlgDlg(CWnd* pParent = nullptr); // 표준 생성자입니다. + virtual ~CTestLibDlgDlg(); + +// 대화 상자 데이터입니다. +#ifdef AFX_DESIGN_TIME + enum { IDD = IDD_TESTLIBDLG_DIALOG }; +#endif + + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 지원입니다. + + +// 구현입니다. +protected: + CTestLibDlgDlgAutoProxy* m_pAutoProxy; + HICON m_hIcon; + + BOOL CanExit(); + + // 생성된 메시지 맵 함수 + virtual BOOL OnInitDialog(); + afx_msg void OnSysCommand(UINT nID, LPARAM lParam); + afx_msg void OnPaint(); + afx_msg HCURSOR OnQueryDragIcon(); + afx_msg void OnClose(); + virtual void OnOK(); + virtual void OnCancel(); + DECLARE_MESSAGE_MAP() +public: + afx_msg void OnBnClickedButton1(); + +private: + void loadA2lFile(std::string strFilePath); + void AddLogString(std::string strMessage); +}; diff --git a/TestLibDlg/TestLibDlg/TestLibDlg_h.h b/TestLibDlg/TestLibDlg/TestLibDlg_h.h new file mode 100644 index 0000000..3b4019d --- /dev/null +++ b/TestLibDlg/TestLibDlg/TestLibDlg_h.h @@ -0,0 +1,226 @@ + + +/* this ALWAYS GENERATED file contains the definitions for the interfaces */ + + + /* File created by MIDL compiler version 8.01.0628 */ +/* at Tue Jan 19 12:14:07 2038 + */ +/* Compiler settings for TestLibDlg.idl: + Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.01.0628 + 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( ) */ + + + +/* verify that the version is high enough to compile this file*/ +#ifndef __REQUIRED_RPCNDR_H_VERSION__ +#define __REQUIRED_RPCNDR_H_VERSION__ 500 +#endif + +#include "rpc.h" +#include "rpcndr.h" + +#ifndef __RPCNDR_H_VERSION__ +#error this stub requires an updated version of +#endif /* __RPCNDR_H_VERSION__ */ + + +#ifndef __TestLibDlg_h_h__ +#define __TestLibDlg_h_h__ + +#if defined(_MSC_VER) && (_MSC_VER >= 1020) +#pragma once +#endif + +#ifndef DECLSPEC_XFGVIRT +#if defined(_CONTROL_FLOW_GUARD_XFG) +#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) +#else +#define DECLSPEC_XFGVIRT(base, func) +#endif +#endif + +/* Forward Declarations */ + +#ifndef __ITestLibDlg_FWD_DEFINED__ +#define __ITestLibDlg_FWD_DEFINED__ +typedef interface ITestLibDlg ITestLibDlg; + +#endif /* __ITestLibDlg_FWD_DEFINED__ */ + + +#ifndef __TestLibDlg_FWD_DEFINED__ +#define __TestLibDlg_FWD_DEFINED__ + +#ifdef __cplusplus +typedef class TestLibDlg TestLibDlg; +#else +typedef struct TestLibDlg TestLibDlg; +#endif /* __cplusplus */ + +#endif /* __TestLibDlg_FWD_DEFINED__ */ + + +#ifdef __cplusplus +extern "C"{ +#endif + + + +#ifndef __TestLibDlg_LIBRARY_DEFINED__ +#define __TestLibDlg_LIBRARY_DEFINED__ + +/* library TestLibDlg */ +/* [version][uuid] */ + + +EXTERN_C const IID LIBID_TestLibDlg; + +#ifndef __ITestLibDlg_DISPINTERFACE_DEFINED__ +#define __ITestLibDlg_DISPINTERFACE_DEFINED__ + +/* dispinterface ITestLibDlg */ +/* [uuid] */ + + +EXTERN_C const IID DIID_ITestLibDlg; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("3d30aa0d-19ce-4ca6-92b1-70a7403d578c") + ITestLibDlg : public IDispatch + { + }; + +#else /* C style interface */ + + typedef struct ITestLibDlgVtbl + { + BEGIN_INTERFACE + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + ITestLibDlg * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( + ITestLibDlg * This); + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( + ITestLibDlg * This); + + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + ITestLibDlg * This, + /* [out] */ UINT *pctinfo); + + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + ITestLibDlg * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + ITestLibDlg * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + DECLSPEC_XFGVIRT(IDispatch, Invoke) + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + ITestLibDlg * This, + /* [annotation][in] */ + _In_ DISPID dispIdMember, + /* [annotation][in] */ + _In_ REFIID riid, + /* [annotation][in] */ + _In_ LCID lcid, + /* [annotation][in] */ + _In_ WORD wFlags, + /* [annotation][out][in] */ + _In_ DISPPARAMS *pDispParams, + /* [annotation][out] */ + _Out_opt_ VARIANT *pVarResult, + /* [annotation][out] */ + _Out_opt_ EXCEPINFO *pExcepInfo, + /* [annotation][out] */ + _Out_opt_ UINT *puArgErr); + + END_INTERFACE + } ITestLibDlgVtbl; + + interface ITestLibDlg + { + CONST_VTBL struct ITestLibDlgVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define ITestLibDlg_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define ITestLibDlg_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define ITestLibDlg_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define ITestLibDlg_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define ITestLibDlg_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define ITestLibDlg_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define ITestLibDlg_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + +#endif /* __ITestLibDlg_DISPINTERFACE_DEFINED__ */ + + +EXTERN_C const CLSID CLSID_TestLibDlg; + +#ifdef __cplusplus + +class DECLSPEC_UUID("faa0893c-64ec-4ba5-b1f0-18ed8cb7f106") +TestLibDlg; +#endif +#endif /* __TestLibDlg_LIBRARY_DEFINED__ */ + +/* Additional Prototypes for ALL interfaces */ + +/* end of Additional Prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif + + diff --git a/TestLibDlg/TestLibDlg/TestLibDlg_i.c b/TestLibDlg/TestLibDlg/TestLibDlg_i.c new file mode 100644 index 0000000..4766411 --- /dev/null +++ b/TestLibDlg/TestLibDlg/TestLibDlg_i.c @@ -0,0 +1,84 @@ + + +/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */ + +/* link this file in with the server and any clients */ + + + /* File created by MIDL compiler version 8.01.0628 */ +/* at Tue Jan 19 12:14:07 2038 + */ +/* Compiler settings for TestLibDlg.idl: + Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.01.0628 + 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( ) */ + + + +#ifdef __cplusplus +extern "C"{ +#endif + + +#include +#include + +#ifdef _MIDL_USE_GUIDDEF_ + +#ifndef INITGUID +#define INITGUID +#include +#undef INITGUID +#else +#include +#endif + +#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ + DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) + +#else // !_MIDL_USE_GUIDDEF_ + +#ifndef __IID_DEFINED__ +#define __IID_DEFINED__ + +typedef struct _IID +{ + unsigned long x; + unsigned short s1; + unsigned short s2; + unsigned char c[8]; +} IID; + +#endif // __IID_DEFINED__ + +#ifndef CLSID_DEFINED +#define CLSID_DEFINED +typedef IID CLSID; +#endif // CLSID_DEFINED + +#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ + EXTERN_C __declspec(selectany) const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}} + +#endif // !_MIDL_USE_GUIDDEF_ + +MIDL_DEFINE_GUID(IID, LIBID_TestLibDlg,0xe6371bfe,0x4bde,0x4d88,0xb4,0x04,0x1d,0x2f,0x22,0x2f,0x1d,0xdf); + + +MIDL_DEFINE_GUID(IID, DIID_ITestLibDlg,0x3d30aa0d,0x19ce,0x4ca6,0x92,0xb1,0x70,0xa7,0x40,0x3d,0x57,0x8c); + + +MIDL_DEFINE_GUID(CLSID, CLSID_TestLibDlg,0xfaa0893c,0x64ec,0x4ba5,0xb1,0xf0,0x18,0xed,0x8c,0xb7,0xf1,0x06); + +#undef MIDL_DEFINE_GUID + +#ifdef __cplusplus +} +#endif + + + diff --git a/TestLibDlg/TestLibDlg/framework.h b/TestLibDlg/TestLibDlg/framework.h new file mode 100644 index 0000000..8b77497 --- /dev/null +++ b/TestLibDlg/TestLibDlg/framework.h @@ -0,0 +1,60 @@ +#pragma once + +#ifndef VC_EXTRALEAN +#define VC_EXTRALEAN // 거의 사용되지 않는 내용은 Windows 헤더에서 제외합니다. +#endif + +#include "targetver.h" + +#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // 일부 CString 생성자는 명시적으로 선언됩니다. + +// MFC의 공통 부분과 무시 가능한 경고 메시지에 대한 숨기기를 해제합니다. +#define _AFX_ALL_WARNINGS + +#include // MFC 핵심 및 표준 구성 요소입니다. +#include // MFC 확장입니다. + + +#include // MFC 자동화 클래스입니다. + + + +#ifndef _AFX_NO_OLE_SUPPORT +#include // Internet Explorer 4 공용 컨트롤에 대한 MFC 지원입니다. +#endif +#ifndef _AFX_NO_AFXCMN_SUPPORT +#include // Windows 공용 컨트롤에 대한 MFC 지원입니다. +#endif // _AFX_NO_AFXCMN_SUPPORT + +#include // MFC의 리본 및 컨트롤 막대 지원 + + + + + + + + +// 이 매크로는 TRUE를 전달한다는 점을 제외하면 IMPLEMENT_OLECREATE와 동일합니다 +// 전달하는 점만 제외하면 IMPLEMENT_OLECREATE와 같습니다. +// 자동화 컨트롤러에서 요청한 각 자동화 프록시 개체에 대해 +// 이 응용 프로그램에 대한 별도의 인스턴스가 시작되도록 합니다. +#ifndef IMPLEMENT_OLECREATE2 +#define IMPLEMENT_OLECREATE2(class_name, external_name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \ + AFX_DATADEF COleObjectFactory class_name::factory(class_name::guid, \ + RUNTIME_CLASS(class_name), TRUE, _T(external_name)); \ + const AFX_DATADEF GUID class_name::guid = \ + { l, w1, w2, { b1, b2, b3, b4, b5, b6, b7, b8 } }; +#endif // IMPLEMENT_OLECREATE2 + +#ifdef _UNICODE +#if defined _M_IX86 +#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"") +#elif defined _M_X64 +#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"") +#else +#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"") +#endif +#endif + + diff --git a/TestLibDlg/TestLibDlg/pch.cpp b/TestLibDlg/TestLibDlg/pch.cpp new file mode 100644 index 0000000..bd23a58 --- /dev/null +++ b/TestLibDlg/TestLibDlg/pch.cpp @@ -0,0 +1,5 @@ +// pch.cpp: 미리 컴파일된 헤더에 해당하는 소스 파일 + +#include "pch.h" + +// 미리 컴파일된 헤더를 사용하는 경우 컴파일이 성공하려면 이 소스 파일이 필요합니다. diff --git a/TestLibDlg/TestLibDlg/pch.h b/TestLibDlg/TestLibDlg/pch.h new file mode 100644 index 0000000..d99e280 --- /dev/null +++ b/TestLibDlg/TestLibDlg/pch.h @@ -0,0 +1,13 @@ +// pch.h: 미리 컴파일된 헤더 파일입니다. +// 아래 나열된 파일은 한 번만 컴파일되었으며, 향후 빌드에 대한 빌드 성능을 향상합니다. +// 코드 컴파일 및 여러 코드 검색 기능을 포함하여 IntelliSense 성능에도 영향을 미칩니다. +// 그러나 여기에 나열된 파일은 빌드 간 업데이트되는 경우 모두 다시 컴파일됩니다. +// 여기에 자주 업데이트할 파일을 추가하지 마세요. 그러면 성능이 저하됩니다. + +#ifndef PCH_H +#define PCH_H + +// 여기에 미리 컴파일하려는 헤더 추가 +#include "framework.h" + +#endif //PCH_H diff --git a/TestLibDlg/TestLibDlg/res/TestLibDlg.ico b/TestLibDlg/TestLibDlg/res/TestLibDlg.ico new file mode 100644 index 0000000000000000000000000000000000000000..d56fbcdfdf6eac0f4727c34770c26689271d96af GIT binary patch literal 67777 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
5m3 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 NK9A-8OQnhX{{?OVn?wKr literal 0 HcmV?d00001 diff --git a/TestLibDlg/TestLibDlg/res/TestLibDlg.rc2 b/TestLibDlg/TestLibDlg/res/TestLibDlg.rc2 new file mode 100644 index 0000000000000000000000000000000000000000..dc519bf65310acdfae1e2dde35ba16eac86957a6 GIT binary patch literal 728 zcmd6kyGjF55Qe{6w6L?V7_bzxVr`+Qh1UpPun2gGSqX@NBzAcO%RGW*uvih2&RtkH zDTGK!VQ=X(sQ+