2024/12/25 30

[C++]파일 및 디렉토리 존재 여부 체크

// 파일의 존재여부 확인// 파라미터//nFlag = 1 (=default)이면 파일, 2이면 디렉토리인지, 0이면 파일 및 디렉토리를 검색BOOL isExists(const char* fname, int nFlag){if(fname == NULL)return FALSE;DWORD attr = GetFileAttributes(fname);#ifdef _DEBUG_LOG//CString str;//str.Format("%s = 0x%x (file?%d, dir?%d)", fname, attr,((attr & FILE_ATTRIBUTE_DIRECTORY) == 0), ((attr & FILE_ATTRIBUTE_DIRECTORY) != 0));//MessageBox(NULL, str, "OK", MB_OK)..

유용한 정보 2024.12.25

[C++]pragma pack 에 대해서...

전 과목 스타 선생님+영수 심화+영재교육원까지! 초등 인강 '엘리하이'상담 신청하기»  pack 지시자는 이후부터 선언되는 구조체의 정렬 방식을 지정한다. 프로젝트 설정 대화상자에서 구조체 정렬 방식을 각 모듈별로 조정할 수 있지만 pack 지시자는 소스의 중간에서 원하는 구조체에 대해 정렬 방식을 변경할 수 있도록 한다는 점이 다르다. 이 지시자를 사용하면 같은 소스에 있는 두 구조체를 다른 방식으로 정렬할 수 있다. 다음 선언문을 보자. #pragma pack(2)struct st1 { short s; int i; };#pragma pack(4)struct st2 { short s; int i; }; 이렇게 선언하면 st1 구조체는 2바이트 정렬되므로 6바이트를 차지하며 st2는 4바이트 정렬되므로 ..

유용한 정보 2024.12.25

[MFC] Dialog 기반 ActiveX 만들기

전 과목 스타 선생님+영수 심화+영재교육원까지! 초등 인강 '엘리하이'상담 신청하기» 1. 다이얼로그 추가 2. 속성Style->Style = Child Style->Border = None More Style->Visible = check More Style->Control = check 3. 다이얼로그 클래스 생성 4. Ctl.h 에 선언#include "MainDlg.h"CMainDlg* m_MainDlg; 5. Ctl 클래스WM_CREATE맵핑m_MainDlg= new CMainDlg;m_MainDlg->Create(IDD_MAIN_DLG, this); 6.OnDrawif(m_MainDlg)m_MainDlg.MoveWindow(rcBounds, TRUE); 7. InitInstance() 에Afx..

유용한 정보 2024.12.25

[C++]VC2008에서 프로젝트 속성 매크로 변경/적용하는 방법

1. 프로젝트속성시트 만들기         2. 속성시트 적용1) 프로젝트의 속성을 연다. 2) 속성중에서 다음과 같은 내용을변경하면 된다.$(bin) 또는 $(obj) 등은 사용자가 만든 속성시트에 추가한 매크로 이다.일반/빌드로그파일: $(IntDir)\BuildLog.htm ==> $(obj)\BuildLog.htm일반/상속된 프로젝트 속성 시트: ..\..\..\prj_property_sheet.vspropsC/C++/미리컴파일된 헤더 만들/사용 : $(IntDir)\$(TargetName).pch ==> $(obj)\(TargetName).pchC/C++/출력파일/개체파일이름: $(IntDir)\ => $(obj)\C/C++/출력파일/프로그램 데이타 베이스 파일이름: $(IntDir)\vc90...

유용한 정보 2024.12.25

[DB]오라클 클라이언트 설치 없이 오라클 연결(ODBC)

1) 오라클 ODBC Driver를 다운로드 한다. ( -->다운로드센터 ): 다운로드 후 C:\oracle\instantclient_11_2에 압축을 해제한다. Instant Client Package - Basic: All files required to run OCI, OCCI, and JDBC-OCI applications (필수설치)--> instantclient-basic-windows.x64-11.2.0.2.0.zip (51,458,190 bytes) Instant Client Package - ODBC: Additional libraries for enabling ODBC applications (ODBC프로그램)--> instantclient-odbc-windows.x64-11.2.0.2..

유용한 정보 2024.12.25

[C++]다이얼로그창 투명하게 만들기

typedef BOOL (WINAPI *SetLayer)(HWND hWnd, COLORREF crKey, BYTE bAlpha, DWORD dwFlags);#define LWA_COLORKEY 0x01#define LWA_ALPHA 0x02 우선 위와 같이 새로운 타입과 상수를 정의하고 특정 Function 에 다음과 같이 정의하면 됩니다. HMODULE hUser32 = GetModuleHandle(_T("USER32.DLL")); SetLayer pSetLayer = (SetLayer)GetProcAddress( hUser32, "SetLayeredWindowAttributes" ); if( pSetLayer == NULL )return FALSE; int alphaValue = 100; //투명도 ..

유용한 정보 2024.12.25

[C++]OpenCV 2.3.1 + VS2008 세팅

1.http://sourceforge.net/projects/opencvlibrary/요기가서 OpenCV 최신버전 (2011년 11월 현재 기준 2.3.1) 다운받기.설치 = 압축 풀기임. 2.http://www.cmake.org/cmake/resources/software.html요기가서 CMake 최신버전 다운 받기.설치. 3. CMake로 OpenCV 빌드. (요때에 VS 버전 골라주면 됨.) 4. 타깃 폴더가서 OpenCV.sln 솔루션 열어서 ALL_BUILD 프로젝트를 debug, release 모드로 각각 빌드. 5. 작성할 프로젝트 만들고... 6. [도구] -> [옵션] -> [프로젝트 및 솔루션] -> [포함 파일] 에다가C:\opencv\build\includeC:\opencv\bu..

유용한 정보 2024.12.25

[C++]Gdiplus Bitmap::FromFile()이 NULL 을 return 할때

Bitmap* bitmapImage = Bitmap::FromFile(path.AllocSysString() );에서bitmapImage 이 NULL 이 되는원인은Gdiplus 초기화를 안했기 때문이다.  초기화하는 방법은 아래와 같다. #include using namespace Gdiplus; ULONG_PTR gpToken;.......... BOOL _______________App::InitInstance(){GdiplusStartupInput gpsi;if (GdiplusStartup(&gpToken,&gpsi,NULL) != Ok){MessageBox(NULL,TEXT("GDI+ 라이브러리를 초기화할 수 없습니다."), TEXT("알림"),MB_OK);return 0;}..............

유용한 정보 2024.12.25