Programming (102) 썸네일형 리스트형 [BCGControlBar(MFC)] Visual Studio 2019 BCG 설치 및 개발환경 구축 목적 1) BCGControlBar의 설치 과정 2) Visual Studio 2019에서 사용가능하도록 컴파일 수행 과정 BCG를 구매 후 설치 파일 및 라이센스가 있는 상태에서 설치과정을 포스팅합니다. - 해당 포스팅에서 사용되는 버전은 BCGControlBar Pro for MFC version 3.4 입니다. BCG URL : https://bcgsoft.com/index.htm 1) BCGControlBar의 설치 과정 1. BCGControlBar 설치파일 실행 및 라이센스 입력 후 Next 버튼 선택 2. 추가로 Next 버튼 선택 3. 승인 라디오 버튼 선택 후 Next 버튼 선택 4. Complete 선택 후 Next 버튼 선택 5. Install 버튼 선택 6. 설치가 수행 완료되고 F.. [StarUml]C# Reverse Code Extention 및 Offline 적용 목적 1) C++, C# 소스를 UML로 변경하는 확장파일을 적용한다. 2) 해당 확장파일을 이용해 오프라인 환경에서 적용한다. (온라인 환경에서 설치 후 설치된 파일을 오프라인 환경으로 파일을 옮겨 주어야한다.) StarUML은 2021.08.06기준 최신 버전인 StarUML 4.0.1버전을 다운받아 사용하였다. 1) StarUML C++, C# 확장파일 설치!! 1.1. [Tool]->[Extension Manager..]을 선택한다. 1.2. C#과 C++의 확장파일을 설치하고 프로그램을 재실행 한다.(자동으로 재실행 메세지 박스가 표시된다.) 1.3. [Tool]메뉴를 가보면 C++, C#이 추가된 것을 확인할 수있다. 2) StarUML C++, C# 확장파일 오프라인 설치!! 위 1)번 을 .. [StarUml]UML C# Reverse Code 목적 C# 소스를 StarUML 프로그램으로 UML로 변경한다. StarUML은 2021.08.06기준 최신 버전인 StarUML 4.0.1버전을 다운받아 사용하였다. 1. [Tool]->[C#]->[Reverse Code..]을 선택한다. ※해당 항목이 없는경우는 다음 글을 참조하자 -> [바로가기] 2. 폴더를 선택한다. (하위 폴더의 cs파일까지 모두 코드가 생성된다. 3. 우측 목록을 보면 디렉토리의 파일이 모두 된것을 볼수 있다. c++ <-> c# Marshalling 사용법 목적 C#에서 C++로 구현된 DLL을 이용한다.(개인적인 메모이니 참고하실 분들 참고하세요) 선행사항으로는 C++ DLL이 동일 경로에 있어야함. 포스트의 DLL명은 KJK92.DLL로 정의 1. Default Marshalling (기본) 1.1. bool, short, int, float, double 형식은 각자 C++, C#의 변수를 맞춰 주면 됩니다. C++ DLL Source extern "C" __declspec(dllexport) double DLL_Sum(double a, double b) { return a + b; } C# Source [DllImport("KJK92.DLL", CallingConvention = CallingConvention.Cdecl)] extern public.. GetPrivateProfileString, GetPrivateProfileInt 오류 목적 ini파일을 얻어오는 getprivateprofilestring 사용하면서 발생한 오류 해결 포스팅 개발을 하면서 C++언어와 C#언어를 이용해 개발을 하며 ini를 통해 설정 정보를 수정할 수 있도록 개발을 하는 도중 이유를 알수 없게 ini파일을 읽어오지 못하는 경우가 발생하였다. 위 그림은 ini파일의 저장 인코딩 때문에 발생한 문제점임을 알 수 있었고 간단히 정리하자면 다음과 같다. 1. 함수 사용 시 문자 집합에 따라 차이가 있다. 문자 집합에 따라 GetPrivateProfileㅁㅁㅁA, GetPrivateProfileㅁㅁㅁW로 사용된다. Winbase.h를 보면 아래 코드블럭과 같이 정의가 되어있다. #ifdef UNICODE #define GetPrivateProfileString G.. GetPrivateProfileString, GetPrivateProfileInt 주의사항 목적 ini파일을 사용하면서 발생한 주의사항 포스팅 프로그램을 개발하다보면 ini파일을 사용하는 경우가 있었습니다. 간략하게 설명하면 ini는 [파일경로], [Section], [Key]로 구분지어 텍스트에 입력한 값을 사용하는 역할을 합니다. 해당 정보를 얻어오기 위해 GetPrivateProfileString, GetPrivateProfileInt, GetPrivateProfileSection 등과 같은 함수를 사용하여 간단하게 INI 정보를 가져올 수 있습니다. Info.txt [NETWORK] IP=127.0.0.1 PORT=50003 파일경로 : Info.txt Section : NETWORK KEY : IP Output -> 127.0.0.1 저는 윈도우 환경의 실행경로에 있는 INI파일을 사.. 닷넷 3.5 오프라인 설치 방법 안녕하세요. 이번 포스팅은 닷네 3.5 오프라인 설치 방법에 대해 포스팅 하려고합니다. 이 주제의 포스팅은 정리 잘하신 분들이 많기 때문에 간략하게 설명 하고 제가 겪은 예상치 못한 문제에 대해 포스팅하겠습니다. 사실 인터넷이 된다면 걱정할 문제는 아닙니다. 1. Window 10 iso 파일을 드라이브에 탑재 시킵니다.(꼭 탑재 시키진 않고 경로를 설정 해도 되지만 탑재가 편합니다.) 2. 명령프롬프트(Power Shell)을 관리자 권한으로 실행합니다. 3. 아래 명령어를 통해 닷넷 3.5를 설치합니다. E:\sources\sxs (해당 경로에 들어가보면 "microsoft-windows-netfx3-ondemand-packge....cab" 파일이 존재합니다.)DISM /Online /Enable-.. MFC - typeid를 이용한 문자열 형변환 소스코드 안녕하세요. 아주 간단한 형변화 함수를 작성해 두려고 합니다. 간단하게 template와 typeid를 통해 사용하시면됩니다. #include "iostream" template CString GetValueToString(T& tVal) { CString str = L""; if(typeid(tVal).name() == typeid(int).name()) { str.Format(L"%d", tVal); } else if(typeid(tVal).name() == typeid(float).name() || typeid(tVal).name() == typeid(double).name()) { str.Format(L"%f", tVal); } else if(typeid(tVal).name() == typeid(.. 이전 1 2 3 4 5 6 7 8 ··· 13 다음