본문 바로가기

WinAPI

Win32 C++에서 Microsoft Excel 파일 다루는 방법 Win32 C++에서 Microsoft Excel 파일 다루는 방법 본 포스팅에서는 C#에서 Microsoft Excel 파일 다루는 방법(http://tapito.tistory.com/582)을 참고하여 Win32 C++ 개발 환경에서 MFC를 사용하지 않고 OLE/Automation으로 Microsoft Excel 파일을 읽고 쓰는 방법에 대해 설명합니다. 프로젝트 생성 및 초기 코드에 대해서는 설명하지 않습니다. 1단계. Microsoft Excel Application 로드하기 및 종료하기 1-1. Microsoft Excel Application 실행하기 Excel.Application형 인스턴스를 생성하는 것으로써 Microsoft Excel Application이 내부적으로 실행됩니다. Ex.. 더보기
FindFirstFile, FindNextFile, FindClose 예제 #include #include #include #include #include void main() { TCHAR szTemp[512]; // 임시 버퍼 TCHAR szPathBuffer[MAX_PATH]; // 사용자로부터 입력 TCHAR szPathPattern[MAX_PATH]; // 검색 패턴 DWORD i; // 인덱스 변수 HANDLE hItem; // 검색 핸들 WIN32_FIND_DATA findData; // 파일 정보 setlocale(LC_ALL, ".949"); _tprintf(TEXT("디렉터리 경로를 입력해 주세요. (입력 예: C: 또는 C:\\My Documents)\n\r")); _tprintf(TEXT("입력 >> ")); #if defined(_UNICODE) || d.. 더보기
코드 컨벤션 정리 – 낙타, 파스칼, 헝가리안 코드 컨벤션 정리. 낙타 케이싱, 파스칼 케이싱, 헝가리안 표기법 - by Tapitolife 좋은 프로그래밍 습관을 만들기 위해 총 2편으로 좋은 코드 컨벤션을 정리 해 보았습니다. 그냥 거두절미하고 여기 첫 번째 포스팅에서는 변수 표기법에 대해 정리해 보았습니다. ▶ 변수명 표기법 상용 프로그램 하나 만들기 위해서 보통 여러 명의 개발자가 수 백만 라인의 코드를 작성합니다. 이 때 개발자들은 필요에 따라 변수, 상수, 함수 등을 선언합니다. 그런데 이때 문제가 생깁니다. ▶ 첫 번째 문제 상황 – 데이터 형의 혼란 개발자 여럿이 모여 수백만 라인의 코드를 작성하다 보면 자연스럽게 수 많은 변수/함수들이 선언됩니다. 이 때 그것들을 사용함에 있어 혼돈의 소지가 있습니다. "지금 이게 전역 변수였나?",.. 더보기
기능별로 묶어보는 레지스트리 함수 – 5편. 값의 조회/추가/수정/삭제 기능별로 묶어보는 레지스트리 함수. 5편. 값의 조회/추가/수정/삭제 - by Tapitolife 기본 값을 다뤄 보았다면 이제 이름을 갖는 다양한 형식의 값을 다뤄봅니다. — RegEnumValue 지정한 키가 가지고 있는 모든 값의 이름들을 가져옵니다. LONG WINAPI RegEnumValue( __in HKEY hKey, __in DWORD dwIndex, __out LPTSTR lpValueName, __inout LPDWORD lpcchValueName, __reserved LPDWORD lpReserved, __out_opt LPDWORD lpType, __out_opt LPBYTE lpData, __inout_opt LPDWORD lpcbData ); ○ hKey: 값들의 이름을 조회할 .. 더보기
기능별로 묶어보는 레지스트리 함수 – 4편. 기본값의 조회/수정 기능별로 묶어보는 레지스트리 함수. 4편. 기본값의 조회/수정 - by Tapitolife 키의 기본적인 조작을 해 보았다면 이제 기본 값을 다뤄봅니다. 기본 값이란 레지스트리 편집기 상에 나타나는 키(Key)가 갖고 있는 여러 개의 값 중에 이름이 없이 그냥 (기본 값)이라고만 나와 있는 것 문자열 형식의 값입니다. 뭐 이런 거죠 기본 값을 다루는 함수에는 다음과 같은 것이 있습니다. — RegQueryValue 지정한 키의 기본 값을 가져옵니다. LONG WINAPI RegQueryValue( __in HKEY hKey, __in_opt LPCTSTR lpSubKey, __out_opt LPTSTR lpValue, __inout_opt PLONG lpcbValue ); ○ hKey: 기본 값을 가져올.. 더보기
기능별로 묶어보는 레지스트리 함수 – 3편. 키의 조회/생성/삭제 기능별로 묶어보는 레지스트리 함수. 3편. 키의 조회/생성/삭제 - by Tapitolife (이 포스팅은 다음과 같은 사이트를 참고하여 작성되었습니다.) MSDN Registry Functions (Windows): http://msdn.microsoft.com/en-us/library/ms724875(v=VS.85).aspx 키를 열고 닫아 보았다면, 이제 그 사이에 뭔가를 해 봐야겠죠. ㅋㅋ 이번에는 서브키들의 목록을 조회하고, 생성/삭제를 해 봅니다. — RegEnumKey 지정한 키의 서브키들을 조회합니다. LONG WINAPI RegEnumKey( __in HKEY hKey, __in DWORD dwIndex, __out LPTSTR lpName, __in DWORD cchName ); ○ h.. 더보기
기능별로 묶어보는 레지스트리 함수 – 2편. 키의 열기/닫기 기능별로 묶어보는 레지스트리 함수. 2편. 키의 열기/닫기 - by Tapitolife (이 포스팅은 다음과 같은 사이트를 참고하여 작성되었습니다.) MSDN Registry Functions (Windows): http://msdn.microsoft.com/en-us/library/ms724875(v=VS.85).aspx 아래 함수는 키의 열고 닫기를 수행하는 기본적인 함수입니다. 파일을 다루기 위해서는 스트림을 통해 특정 파일을 열고, 작업하고, 닫는 것처럼 레지스트리도 '키'의 단위로 열고, 작업하고, 닫는 순서로 다뤄주시면 되겠습니다. — RegOpenKey 지정한 위치의 키를 엽니다. LONG WINAPI RegOpenKey( __in HKEY hKey, __in_opt LPCTSTR lpSub.. 더보기
기능별로 묶어보는 레지스트리 함수 – 1편. 완전 간단 레지스트리 소개 기능별로 묶어보는 레지스트리 함수. 1편. 완전 간단 레지스트리 소개 - by Tapitolife 레지스트리는 다음과 같이 구성 되어 있습니다. ▶ 키(Key): 일종의 폴더라고 보면 됩니다. 5개의 기본 키가 있으며 그 아래 트리 구조로 서브키들이 있습니다. 5개의 기본 키는 각각 다음과 같은 용도로 쓰입니다. * HKEY_CLASSES_ROOT: (약칭 HKCR) 파일 확장명과 그 확장명에 대한 연결 프로그램을 다룹니다. * HKEY_CURRENT_USER: (약칭 HKCU) 사용자가 구성한 윈도우 환경이 저장됩니다. 예를 들면, 효과음, 내게 필요한 옵션과 같은 주로 제어판에서 설정한 것들이 여기에 저장되죠. * HKEY_LOCAL_MACHINE: (약칭 HKLM) 윈도우 부팅에 필요한 장치 정보들.. 더보기