본문 바로가기

VisualStudio.C++.C#   ( 298 )


Visual C++ 2022 . 클래스 위저드 오류 해결. E_FAIL has been returned from a call to a COM component 오류증상 Visual Studio 2022 의 C++ 클래스 위저드에서 MFC 클래스 생성하려고 하면 아래처럼 실패. 2025.10.30 최신 버전 17.14.19 으로 업데이트 이후 발생. 해결책 해결책1. VS 종료하고 내 프로젝트 루트에 숨긴 폴더 .VS 를 삭제하고 프로젝트 다시 오픈하면 정상화 된다. 해결책2. 상기 해결책 1로 오류 여전하면, Visual Studio Installer 실행하여 복구 처리한다. 복구후 PC 재부팅. ( 이번 오류 상황에서는 복구하고 해결됨 ) 해결책3. 복구해도 비정상이면 Visual Studio Installer 에서 "이전 버전으로 롤백" 한다. 첫 등록 : 2025.10.30최종 수정 : 단축 주소 : https://igotit... 2025. 10. 30.
Visual Studio 2022 . Unity 개발 환경 추가 설치 사전 준비 : Visual Studio 2022 설치된 상태. Visual Studio 에 유니티 개발 환경 설치 방법 Visual Studio 실행하여 메뉴 : Tools -> Get Tools and Featues... 클릭하여 뜬 아래 창에서 상단 탭 워크로드 에서 "Unity 를 사용한 개발 개발" 체크 선택하면 , 오른쪽에 세부 선택 상황을 보여준다. Unity Hub 는 이미 설치되어 있는 경우엔 선택 하지 않아도 된다. 연관 Visual Studio 2022 Community (무료) 설치Visual Studio 2022- Visual Studio 2019 다음 버전.- Visual Studio 의 첫 64비트 기반 IDE - 출시일자 : 2021. 11. 15 .. 2025. 7. 16.
VC++ 프로젝트 폴더 복사하여 작업 하는 경우 필수 삭제 해야할 것 문제상황 VC++ 프로젝트 폴더 예 MyProject_V1.0 에서 작업하였던것을 그대로 복사하여 폴더명을 MyProject_V2.0 으로 하여 프로젝트 파일 .sln 오픈하는 경우 Visual Studio 가 이전 폴더에서 작업하던 경로 정보가 남아있기때문에 소스 네비게이션이 엉뚱하게 작동한다.   해결책 프로젝트 폴더를 통째로 복사하고 나서 아래 폴더, 파일들 모두 삭제하고 나서 프로젝트 파일 오픈하면 이전 경로 참조하지 않고 새롭게 정상적인 경로로 처리된다.  *.sdf (구버전 Visual Studio)*.VC.db (신버전)*.opendb.vs/ 폴더 (숨김 폴더)ipch/ 폴더Debug/ 또는 Release/ 폴더 (빌드 중간파일)    첫 등록 : 2025.04.09최종 수정 : 단축 주소 .. 2025. 4. 9.
std::shared_mutex . 멀티 스레드 읽기 쓰기 락 std::shared_mutex . 읽기 쓰기 락 - C++ 17 부터 제공됨   #include class MyClass {private: std::shared_mutex rw_mutex; // 읽기-쓰기 락 객체 MyStruct data; // 보호할 구조체 변수public: void UpdateData(const MyStruct& newData) { std::unique_lock lock(rw_mutex); // 쓰기 잠금 data = newData; } MyStruct ReadData() { std::shared_lock lock(rw_mutex); // 읽기 잠금 return data; }}.. 2024. 9. 12.
ONNX . Visual C++ 에서 ONNX 개발 환경 구축 개요  C++ 에서 ONNX 사용 가능하게 해주는 라이브러리인 ONNX Runtime 다운로드 하고 VC++ 2022 에서 ONNX 활용 개발 환경 셋팅.  VC++ 에서 개발환경 셋팅이라 함은 프로젝트 설정 옵션에서 Include Directories , Library Directories, Linker Input 부분에 경로 추가 설정하는 게 전부이다.  NNX Runtime  은  dll 형식이므로  통상적인 dll 활용 위한 VC++ 에서 해줘야하는 설정 이며  간단하게 달성됨.   ONNX Runtime 파일 다운로드  다운로드 방법  ONNX Runtime GitHub 릴리스 페이지에서 C++용 ONNX Runtime 라이브러리를 다운로드( 윈도우의 경우, onnxruntime-win-x64-.. 2024. 8. 29.
PyTorch . Visual C++ 에서 LibTorch 개발 환경 설정 개요 PyTorch 의 기능들을  C++ 에서 사용 가능하게 해주는 라이브러리인 LibTorch 다운로드 하고 VC++ 2022 에서 LibTorch 개발 환경 셋팅.  VC++ 에서 개발환경 셋팅이라 함은 프로젝트 설정 옵션에서 Include Directories , Library Directories, Linker Input 부분에 경로 추가 설정하는 게 전부이다.  LibTorch 가 dll 형식이므로  통상적인 dll 활용 위한 VC++ 에서 해줘야하는 설정 이며  간단하게 달성됨.    LibTorch 라이브러리 다운로드 다운로드 방법  https://pytorch.org/  상기 페이지에서 보이는 INSTALL PYTORCH 에서 옵선 선택하여 보이는 Release 버전, Debug 버전 압축.. 2024. 8. 29.
유니티 에서 C++ 로 제작된 DLL 활용 방법 . native plug-ins 유니티 에서 제공하는 DLL 활용 방법 설명 페이지  - https://docs.unity3d.com/Manual/Plugins.html Unity - Manual: Plug-insAssembly Definition File Format Import and configure plug-ins Plug-ins In Unity, you normally use scriptsA piece of code that allows you to create your own Components, trigger game events, modify Component properties over time and respond to user input indocs.unity3d.com  C++ 로 제작된 DLL 류들은  "nati.. 2024. 7. 10.
Visual Studio 2022 / 2019 . 로그인 시도시 스크립트 오류 해결 오류 증상  Visual Studio 2022 에서 MS 계정으로 로그인 하려는데 아래처럼 스크립트 오류 발생하여 로그인 불가.  Visual Studio 2019 도 동일 오류 생김.   오류 원인  - 로그인 과정중 MS 사 자체 임베디드 브라우저 기반으로 작동해서 발생한 문제. 저 스크립트 오류 해결하겠다고 브라우저 설정 변경할 필요 없이 아래처럼 깔끔하게 해결 가능함.    해결책 - MS 사 자체  임베디드 브라우저 사용하지 않도록 설정한다.- Visual Studio 메뉴 -> Tools -> Options..  클릭하여 보이는 아래 화면에서 System web browser 선택한다.당연히 본인 PC 기본 브라우저는 크롬으로 해둬야 함.    이후 로그인 시도하면 크롬 실행되면서 크롬 브라우.. 2024. 5. 24.
MFC . CView . CDC TextOutW 문자열 출력. MFC . CView 문자열 출력 CDC* pDC = GetDC(); pDC->TextOutW(100,100,_T("Hello CView")); //인자 x,y. 좌표원점 : CView 의 좌상단 ReleaseDC(pDC); // 필수 해제 처리해야함. /// 혹은 CClientDC 이용해도 됨. CClientDC dc(this); dc.TextOutW(100, 100, _T("Hello CView")); 첫 등록 : 2023.12.03 최종 수정 : 단축 주소 : https://igotit.tistory.com/5040 2023. 12. 3.
C/C++ . 부호 있는 정수 singed int . 음수 표현 규격 . 2's complement signed int 최상위 바이트 메모리 표현 규격 int8_t , int32_t , int64_t 등에서 음수 양수를 메모리에 표현하는 규격 양수 : 최상위 바이트의 최상위 비트 = 0 음수 : 최상위 바이트의 최상위 비트 = 1 singned int 의 최상위 바이트 비트 7 비트 6 비트 5 비트 4 비트 3 비트 2 비트 1 비트 0 1 : 음수 0 : 양수 연관 각종 AD 변환 칩들의 변환 포맷이 2's complement 가 많다. AD 변환값을 signed int 형으로 받아서 활용하면 된다. ADS1285 . 32비트 ADC ADS1285 ADC는 저잡음 정밀 디지털화 및 확장된 배터리 실행 시간이 필요한 지진학 장비의 까다로운 요구 사항을 위해 설계되었습니다. 저잡음 PGA를 사용하면 외.. 2023. 8. 27.
C/C++ . volatile 변수 volatile 변수 선언 형식. volatile uint8_t ui8_v; // 변수 ui8_v 가 volatile 이 됨. uint8_t volatile ui8_v 로 해도 동일하나 일관되게 volatile 을 가장먼저 기록해 volatile uint8_t * pui8_v; // 포인터 변수 pui8_v 의 대상이 volatile 이 됨. uint8_t * volatile pui8_v; // 포인터 변수 pui8_v 자체가 volatile 이 됨. volatile uint8_t * volatile pui8_v; // 포인터 변수 pui8_v 자체와 pui8_v의 대상 모두 volatile 이 됨. volatile 변수 선언 의미 - volatile 로 선언된 변수들은 컴파일러가 최적화 하지 않는다. .. 2023. 3. 10.
Visual Studio 2022. Installer Projects 2022 설치. Microsoft Visual Studio Installer Projects 2022 - Visual Studio 2022. 에서 설치파일 ( setup.exe / .msi) 제작 가능한 확장 툴. 설치 방법. Visual Studio 2022 설치된 상태에서 실행하여 메뉴 중에 Extensions -> Manage Extensions 클릭하여 뜬 창(아래 그림 파란 박스) 에서 왼쪽 Online 선택하고, 검색어 install 로 보이는 것 중 Microsoft Visual Studio Installer Project.. 을 선택하고 .. 위 화면의 버튼 Download 클릭한 후 Visual Studio 종료 하면 자동으로 아래 화면 처럼 설치 진행된다. 설치 완료이후 , VS2022 에서 새프로젝트.. 2022. 4. 26.
CEvent . Lock() . SetEvent() . ResetEvent() CEvent 생성자 CEvent( BOOL bInitiallyOwn = FALSE, BOOL bManualReset = FALSE, LPCTSTR lpszName = NULL, LPSECURITY_ATTRIBUTES lpsaAttribute = NULL); 2번 인자 bManualReset - TRUE : ResetEvent() 호출해야 이벤트가 Reset 상태로 됨. - FALSE : SetEvent() 호출이후 ResetEvent() 호출하지 않아도 자동으로 Reset 상태로 됨. 헤더파일 : afxmt.h 코드예. #include // 무인자로 생성하는 경우, 2번인자 기본 FALSE 적용된다. // SetEvent() 호출하여 대기해제이후 ResetEvent()별도 // 호출하지 않아도 셀프 Re.. 2022. 4. 9.
MFC. CTreeCtrl. Tree Control . 트리 컨트롤 사용법. 개요. VC++ 에서 Tree Control사용법 정리. 기본 활용법. 1. 도구상자에서 Tree Control 을 대화상자에 배치하고 Tree Control 의 속성창에서 ID를 적절한것으로 설정. 2. 클래스 위저드 실행하여 멤버 변수추가. 예: m_TreeNXTask 3. Tree Control 속성의 Has Button과 Has Lines 속성을 모두 True 로 하기. 4. 트리에 아이템 추가하기 위한 트리컨트롤 멤버 함수 InsertItem (, , ,) 호출한다. 상세. - 기본 활용법. 앞의 순서대로 각 단계별 이미지와 함깨 설명한다. 1. 도구상자에서 Tree Control 을 대화상자에 배치하고 Tree Control 의 속성창에서 ID를 적절한것으로 설정. 2. 클래스 위저드 실행하여.. 2022. 4. 4.
MFC. menu, context menu MFC 컨텍스트 메뉴 만들기 1. 리소스에서 메뉴 추가. 예: IDR_MENU_3DCHART 2. 메뉴보이게 하기. - 아래 함수 호출되면 마우스커서가 메뉴의 좌 상단 꼭지점에 배치된 상태로 보인다. int CCyChartView::Show_Menu3dChart() { CMenu menu, *pSubMenu; if (!menu.LoadMenuW(IDR_MENU_3DCHART)) return 0; if (!(pSubMenu = menu.GetSubMenu(0))) return 0; CPoint pos; GetCursorPos(&pos); SetForegroundWindow(); // 메뉴출력 pSubMenu->TrackPopupMenu(TPM_LEFTALIGN | TPM_TOPALIGN, pos.x, po.. 2022. 4. 4.
win api. Cryptography API : Next Generation. 암호화. 복호화. Cryptography API: Next Generation (CNG) - 이전 windows api 중 Crypto API 로 불렸던 CryptEncrypt, CryptDecrypt ,, (헤더파일 : wincrypt.h ) 들은 폐기되고 Cryptography API 로 대치됨. 이번 버전의 것과 차별성을 강조하려고 Next Generation 이라고 부르고 간략하게 CNG 로 표기. - 헤더파일 : bcrypt.h - dll 파일명 : bcrypt.dll MS 제공 Cryptography API 설명. 암호화 API: 차세대 - Win32 apps CNG는 암호화 키 관리, 암호화 및 데이터 보안, 암호화 및 네트워크 보안에 대한 암호화 보안 소프트웨어를 만드는 데 사용할 수 있는 암호화 API입니.. 2022. 4. 4.
VC++ . _CRT_SECURE_NO_WARNINGS . #pragma warning(disable: 4996) 오류가 아닌데 VC++ 컴파일 오류 나는 상황 VC++ 에서 컴파일 결과 아래 에러 리스트에 이 함수는 안전하지 않다. 다른 함수 사용해라. 이 경고 안나오게 할려면 _CRT_SECURE_NO_WARNINGS 추가하라는 문구 보이는 경우 해결책 통상 scanf 등 과 같은 함수 사용하려 할 때 상기와 같은 오류 보여주며, 대안으로 다른 함수 사용하라고 제시해주는함수를 보면 구질구질 하기 짝이 없는 경우가 많다. 제시해준 함수를 사용해도 되고 아래처럼 코드에 기록해두면 C4996 은 오류로 처리하지 않고 정상적으로 컴파일 가능. #pragma warning(disable: 4996) 첫 등록 : 2022.03.07 최종 수정 : 단축 주소 : https://igotit.tistory.com/3532 2022. 3. 7.
MFC . 응답없음 해결책 . PeekMessage , DispatchMessage 응답없음 MFC 대화상자든 일반 응용프로그램이든 처리량이 많은 것을 루프문에서 실행시 해당 처리가 완료되기 전까지는 사용자 마우스 입력 키보드 입력등이 처리되지 못하고 먹통처럼 보이고 프로그램 타이틀에 응답없음 이라는 표시가 보인다. 해결방법. 처리 루프 안에 PeekMessage 로 메시지 여부 점검하여 처리할것 있다면 UI 관련 처리도 수행하도록 한다. void function_processing() { for(,,,){ Forced_MessageHandler(); // 이것 호출되면 마우스, 키보드 입력등의 처리 수행됨. //처리할것들.이것저것 } } void Forced_MessageHandler() { MSG msg; // GetMessage 는 메시지 수신될때까지 대기 하기 때문에 무한대기에 .. 2022. 3. 5.


비트코인




            암호화폐/외환/나스닥/골드          
       
현물 |선물 인버스 |선물 USDT , bybit MT5               프랍 트레이딩. MT4,MT5