VisualStudio.C++.C# ( 309 ) winapi . 100나노초 UTC 시각 . GetSystemTimePreciseAsFileTime . GetSystemTimePreciseAsFileTime 로컬 시간 독립성: 로컬 시간대나 일광 절약 시간제(DST)의 영향을 받지 않는 절대적인 UTC 시간 반환. 고정밀: 일반적인 GetSystemTime이 10~15ms 단위로 업데이트되는 것과 달리, 이 함수는 하드웨어 카운터(QPC)와 연동되어 0.1μs(=100나노초) 의 정밀도. 단위: 1601년 1월 1일 UTC 0시부터의 경과 시간을 100나노초 단위로 반환. 마이크로초 단위로 받으려면 나누기 10.지원운영체제 : windows 8 이후 Windows Server 2012 이후 C++ 코드예 #include #include long long GetUtcNowMicroseconds() { FILETIME ft; // 1. 고정밀.. 2026. 1. 22. C# . VC++ DLL 활용 . DllImport C# 에서 DLL 활용 DLL 에서 정의된 무인자 함수extern "C" __declspec(dllexport) void __stdcall OnActivated_CyNinjaX();extern "C" __declspec(dllexport) void __stdcall OnTerminated_CyNinjaX(); extern "C" → C++ name mangling을 막아서 C-style 이름으로 export__stdcall → 호출 규약 (C#에서는 CallingConvention.StdCall)반환형 void → C#에서는 void로 매핑 가능C# . DLL 임포팅 코드 예 - DLL 활용하는 기능을 C# 클래스로 캡슐화 - 본 DLL 은 여러 인스턴스 생성하면 안되는 것이어서 static 클래.. 2026. 1. 19. C++ . 네임스페이스 네임스페이스 . Namespace- 코드의 이름 충돌 방지 및 논리적인 그룹화 위해 활용. 이름 충돌 방지 (가장 큰 목적)서로 다른 라이브러리에서 같은 이름의 함수(init(), log())를 정의해도 네임스페이스가 다르면 공존 가능. 네임스페이스 기본문법 namespace 이름{....} // ; 없음. 예. #include namespace MyApp { int version = 10; void print() { std::cout 네임스페이스 중첩 및 별칭// C++17 이후 중첩은 간결하게 가능. namespace Company::Project::Module { void task() {}}// 별칭(Alias) - 긴 경로를 짧게 줄임namespace .. 2026. 1. 18. MFC . 대화상자 클래스 템플릿 . 클래스위저드 없이 직접 만들기 MFC . 대화상자 클래스 템플릿 활용시 아래 코드의 클래스 이름 CFixStatusDlg 만 임의 변경해서 활용. 주로 클래스 위저드 오류 발생시 직접 만들어서 활용한다. 상위정리 Visual Studio , Visual C++ 활용 정리.Visual Studio C++ 활용 Visual Studio Visual C++ / C# 1.설치, 설정 주제 비고. Visual Studio 2010 설치. Visual Studio 2013 (Community)무료 설치. Visaul Studio 2015 (Community)무료 설치. - Visual Studio 2015 버전은 이전 버전대비igotit.tistory.com 연관 Visual C++ 2022 . 클래스 위저드 오류 해결. .. 2026. 1. 11. MFC . Tab Control (탭 컨트롤) 사용방법 MFC . Tab Control . CTabCtrl - 대화상자에서 추가로 여러 가지 컨트롤 배치하고 활용 해야하는데 1개의 대화상자로는 비좁은 경우 유용. - CTabCtrl 자체는 화면 전환 기능없고 선택된 탭인덱스만 관리하는 것. - 탭클릭시 실제 화면 전환은 각 탭에 대응하는 Child Dialog 를 Show/Hide 해서 구현된다. [Main Dialog] ├─ TabCtrl ├─ Child Dialog #0 (Tab 0용) ├─ Child Dialog #1 (Tab 1용) ├─ Child Dialog #2 (Tab 2용) 구조 개요부모: 메인 대화상자 (CMainDlg)자식: 탭별 전용 대화상자 (CTabPage_xxx)Tab 변경 이벤트에서 자식 다이얼로그 전환 CTab.. 2026. 1. 11. VC++ . 정적 라이브러리 .Static Library Static 라이브러리Static 라이브러리는 .h, .cpp로 구현된 클래스 소스를 단일 위치에서 일관되게 관리하기 위한 매우 현실적인 수단이다.특정 기능이나 도메인 로직을 하나의 static 라이브러리 프로젝트로 구성해두면,여러 응용 프로그램에서 동일한 클래스 구현을 그대로 공유하면서 사용할 수 있다. 이 방식의 핵심은 클래스 소스의 관리 경로 단일화에 있다. Static 라이브러리를 사용하면 클래스의 구현은 오직 한 곳에만 존재하고, 모든 응용 프로젝트는 그 결과물을 링크하여 사용한다.따라서:클래스는 지속적으로 개선될 수 있고변경 사항은 즉시 모든 응용 프로그램에 반영되며복사·붙여넣기에서 발생하는 구조적 문제를 근본적으로 제거할 수 있다 Static 라이브러리는 “배포를 위한 형식”이라기 보다는 내.. 2026. 1. 7. C++ Embedded Python (임베디드 파이썬) . Python C API . pybind11 C++ Embedded PythonC++ Embedded Python 이란, C++ 애플리케이션 내부에 CPython 인터프리터를 내장하고 Python C API 또는 pybind11을 통해 Python 코드를 실행하는 구조를 의미한다. Python C API vs. pybind11 비교 - pybind11 은 Python C API 호출을 C++ 스타일로 래핑하여 제작된 헤더온리 C++ 러이브러리. - pybind11 에서 11 의 의미는 C++11 표준을 적극적으로 사용했다는 의미. - C++ 프로그램에서 Pyhton 실행만 필요하고 간단하게 활용하는 경우에는 Python C API 만으로 충분. - C++ 프로그램에서 파이썬 측 함수호출 , 구조체 반환 등 많은 인터페이스가 요구되는 경우에는 .. 2026. 1. 4. Qt . QCustomPlot 개요 . 활용 기본 . QCustomPlot Qt 기반 챠트 라이브러리 - 2D 챠트 고속 구현시 유용. 무료. - 현재 (2025.12.30 ) 3D 챠팅 기능은 없음. 챠트 표현 예. QCustomPlot 다운받기 다운로드 주소 : https://www.qcustomplot.com/index.php/download 다운로드 사이트 방문해보면 아래처럼 다운로드 파일 3종이 있는데 소스, 문서, 예제 모두 있는 첫번째 파일 다운 받으면 된다. 압축파일 차단해제 ( 차단해제 방법보기 ) 후 압축푼다. 소스 파일 2개 : qcustomplot.cpp , qcustomplot.h 가 핵심. documentation 폴더에는 도움말 파일 qcustomplot.qch 이 있는데 이는 Qt Creator 에서 볼 수 있.. 2025. 12. 29. Qt . 개요 . 포터블 개발환경 구축 . Qt 개요 Qt는 C++ 기반의 크로스플랫폼 애플리케이션 개발 프레임워크GUI 뿐만 아니라, 네트워킹, 스레딩, 데이터베이스, XML/JSON 처리, OpenGL, 3D, 멀티미디어 등 애플리케이션 개발에 필요한 거의 모든 기능 제공운영체제 독립적 → Windows, macOS, Linux, Android, iOS 등에서 동일 코드로 실행 가능 Qt 구성 요소Qt Core기본 데이터 타입(QVector, QString 등)이벤트 루프(QEvent, QObject, signal/slot)스레딩, 파일/디렉토리, 시간, JSON/XML 처리Qt GUI / WidgetsQWidget 기반 GUI 컨트롤 제공버튼, 테이블, 리스트, 그림판, OpenGL Widget 등QCustomPlot도 QWidget 기.. 2025. 12. 29. C . 실수 일정단위 분할하여 구간 인덱스만들기 . 실수 Z 를 분할 단위 DivStep 으로 분할하여 정수 인덱스 받기. 예 : DivStep 이 0.005 라면 Z 값에 따라 아래와 같이 0 중심으로 대칭적인 인덱스 필요. Z | IdxStep-----------------------------|--------- 0.020 0.015 0.010 0.005 0.000 -0.005 -0.010 -0.015 -0.020 -0.025 0을 중심으로 대칭적인 경우에는, 한 줄 코드로 충분. int IdxStep = (int)(Z / DivStep); 첫 등록 : 2025.11.27최종 수정 : 단축 주소 : ht.. 2025. 11. 27. SQLite . VC++ 프로젝트에 정적 포함( 소스 직접 포함) 활용하기 VC++ 프로젝트 에서 SQLite 소스 직접 포함 시켜 활용하기. SQLite 다운로드https://sqlite.org/download.html 에서 sqlite-amalgamation-3510000.zip (2025년 11월 최신 버전 : 3.51.0): 상기 파일 다운로드 압축 해제하여 3개의 파일 sqlite3.c, sqlite3.h, sqlit3ext.h 를 프로젝트에 추가한다. 프로젝트에 추가방법솔루션 탐색기 → Source Files → 우클릭 → Add → Existing Item → sqlite3.c솔루션 탐색기 → Header Files → Add → Existing Item → sqlite3.h, sqlite3ext.h 추가 설정설정1 . 프로젝트에서 sqlite3.c 만.. 2025. 11. 26. 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 에서 "이전 버전으로 롤백" 한다. 연관 클래스 위저드 없이 대화상자 클래스 만들기 MFC . 대화상자 클래스 템플릿.. 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. 이전 1 2 3 4 ··· 18 다음