반응형

프로그래밍 38

[IA] Gitea service in Windows

윈도우에서 Gitea 서비스 설치 및 설정 가이드Gitea를 설치하기 전에 다음을 준비하세요:운영 체제: Windows 10, Windows Server 2012 이상 (64비트 권장).필수 소프트웨어:Git for Windows (최신 버전): https://git-scm.com/download/win텍스트 편집기 (예: Notepad++, VS Code 등).하드웨어 요구 사항: 최소 2 CPU 코어, 1GB RAM (소규모 팀 기준, 더 큰 규모라면 확장 필요).네트워크: 로컬 네트워크 또는 외부 액세스를 위한 포트 열기 준비 (기본 포트: 3000).관리자 권한: 명령 프롬프트 또는 PowerShell을 관리자 모드로 실행할 수 있어야 합니다.1. Gitea 다운로드 및 설치1.1 Gitea 실행..

[IA] inotify in HP UNIX

HP-UX에서 리눅스의 inotify와 유사한 기능을 제공하는 네이티브 C API는 존재하지 않습니다. HP-UX는 POSIX 표준을 따르는 유닉스 시스템이지만, inotify는 리눅스 커널에 특화된 기능으로, HP-UX에는 직접적인 대체재가 없습니다. 대신, HP-UX에서 파일 시스템 이벤트를 모니터링하려면 다음과 같은 대안을 사용할 수 있습니다:** polling 방식 (주기적 파일 확인)**: 파일의 수정 시간을 주기적으로 확인하는 방식입니다. HP-UX에서 stat() 함수를 사용하여 파일의 타임스탬프를 체크할 수 있습니다.HP-UX audit 시스템: HP-UX는 파일 시스템 이벤트를 추적하기 위한 auditing 기능을 제공합니다. 하지만 이는 시스템 수준 설정이 필요하며, inotify처럼 ..

[IA] C# Word automation 테이블 병합 셀의 개수 파악

개요Word 문서에서 테이블의 특정 셀이 병합되었는지 확인하고, 병합된 경우 병합된 행과 열의 수를 계산하려면 다음 단계를 따릅니다:Word 문서를 열고 특정 테이블을 선택합니다.확인하고자 하는 셀을 지정합니다.셀이 병합되었는지 확인합니다.병합된 경우, 병합 범위를 분석하여 행과 열의 수를 계산합니다.using System;using Word = Microsoft.Office.Interop.Word;public class WordAutomation{ public void GetMergedCellInfo(string filePath, int tableIndex, int rowIndex, int columnIndex) { // Word 애플리케이션 인스턴스 생성 Word...

[IA] Simple Interpreter in C99

구현 환경언어: C99라이브러리: cJSON (단일 헤더 파일 기반 경량 JSON 파서)의존성: libxml2 사용 불가, cJSON만 사용cJSON는 GitHub에서 다운로드 가능하며, 프로젝트에 cJSON.h와 cJSON.c를 포함해야 합니다.#include #include #include #include #include "cJSON.h"// 데이터 타입 정의typedef enum { TYPE_STRING, TYPE_NUMBER, TYPE_BOOL} DataType;// 값 구조체typedef struct { DataType type; union { char* string; double number; int boolean; } va..

IOCP를 이용한 OVERLAPPED 사용시 ErrorCode(6) 관련

IOCP OVERLAPPED사용할 경우 랜덤적으로 WSARecv 또는 WSASend 동작시 Error Code 6 일 발생하는 경우가 있다. 이것은 Overlapped 구조체의 hEvent 변수를 초기화하지 않고 사용해서 발생하는 것으로 해당 변수를 NULL 로 초기화해서 사용할 경우 발생하지 않는다. 아래의 경우에는 내가 사용했던 경우이다. 나중에 혹시 다시 발생하면 참고할 수 있도록 하자. class CROverlapped : public OVERLAPPED, public CRObject { public: E_TYPE_OVERLLAPED eType; std::shared_ptr m_ClntInfo; CROverlapped() { m_ClntInfo = nullptr; hEve..

MFC 에서 마우스 클릭을 비활성화 하는 방법

MFC에서 마우스 클릭 비활성화하는 방법 void CExmaplDlg::OnDisableMouseButton() { CRect rect; GetWindowRect(rect); ClipCursor(&rect); ShowCursor(FALSE); ::SetCapture(m_hWnd); } void CExampleDlg::OnEnableMouse() { ShowCursor(TRUE); ClipCursor(NULL); ::ReleaseCapture(); } 보통 마우스를 비활성화시켰을 경우 Ctrl + Alt + Del 키를 이용하여 다시 동작 가능하도록 한다. 특정 동작이나 수행하는 동안 마우스 입력을 제한해야 할 경우 사용하면 될 듯 싶다.

[C++] 스마트포인터 weak_ptr [정보공유의 장]

C++ 스마트 포인터 weak_ptr 금일 정리해볼 내용은 스마트 포인터 중 weak_ptr 관련된 내용이다. shared_ptr 은 자신이 참조하고 있는 메모리에 대해 참조 카운터를 증감시킴으로써 객체의 수명을 관리하도록 되어 있었다. 하지만 weak_ptr 은 shared_ptr 의 참조 카운팅에 포함되지 않는다. shared_ptr 의 소유 포인터를 참조만할 뿐 참조 카운터에는 영향을 주지 않는 것이다. 내부적으로 shared_ptr 을 더 보게 되면 참조 카운터를 관리하는 변수가 두 개로 나뉘어져 있으며 strong reference count 와 weak reference count 이다. shared_ptr 끼리의 참조는 strong reference count 가 증가되며 weak_ptr 에..

[C++] 스마트포인터 unique_ptr [정보공유의 장]

C++ 스마트 포인터(Smart pointer) unique_ptr 이번 포스팅 정리는 스마트 포인터 중 unique_ptr 에 대해서 정리해 보자. unique_ptr 은 소유하는 포인터에 대해 다음과 같은 규칙을 갖는다. 1. 소유 포인터는 한 개의 객체만이 소유할 수 있다. 2. 원래 포인터의 소유권을 이동시키는 것은 가능하지만 복사나 대입은 불가능하다. 3. unique_ptr 객체가 소멸될 때 소유 포인터의 메모리도 해제된다. 우선 unique_ptr 을 생성하는 문법적인 요소를 알아보도록 하자. #include #include using namespace std; int main() { unique_ptr p1(new int(2)); unique_ptr p2 = make_unique(2); r..

[C++] 스마트포인터 shared_ptr - 정보공유의 장

이번 포스팅은 스마트 포인터 중 shared_ptr 에 대해서 정리해보겠다. shared_ptr in C++ 11 shared_ptr 은 c++ 11 이후 제공되는 스마트 포인터 중 하나로 포인터를 더 이상 사용하지 않을 경우 메모리를 자동으로 해제해준다. 보통 unmaged 코드에서는 메모리를 개발자가 직접적으로 관리하는 경우가 많은데 이럴 경우 할당된 메모리를 해제하지 않는 실수를 많이 범할 수 있다. 이런 경우를 미연에 조금 더 방지할 수 있게 해준다. 다음 코드는 shared_ptr 을 사용하는 예제를 보여주고 있다. #include #include using namespace std; int main() { shared_ptr x(new int(1)); shared_ptr y = make_sha..

반응형