기본 콘텐츠로 건너뛰기

라벨이 vc인 게시물 표시

[링크] c++ 코딩 스타일

http://btd86.tistory.com/73 - C++ 코딩 스타일 코딩 규칙 코딩 할때 규칙을 정하기로 했습니다. 1. 제어문은 아래와 같이 소괄호를 한칸 띈다.    if (i == 0)    while (TRUE)    switch (i)    for (int i = 0; i < 10; i++) 2. 괄호에 빈칸을 삽입 하지 않는다.    if ( i == 0 ) (X) , if (i == 0) (O)    GetLogger()->Info( _T("Test") ); (X), GetLogger()->Info(_T("Test")); (O)    if ( (i == 0) || (j == 1) ) (X), if ((i == 0) || (j == 1)) (O) 3. switch ~ case 문    switch ()    {    case 1:        break;    case 2:        break;    case 3:        break;    } 4. 반환 값처리는 바로바로    // no    if (hWnd != NULL)    {    }    else    {        return false;    }    // yes    if (hWnd == NULL)        retur...

DLL 프로젝트 디버깅

출처:  http://msdn.microsoft.com/ko-kr/library/ms164704(v=vs.80).aspx 여러 Visual Studio 프로젝트 템플릿에서 DLL이 작성되고 이러한 DLL은 독립 실행형 응용 프로그램과는 다른 방식으로 디버깅됩니다. DLL 디버깅은 독립 실행형 응용 프로그램 디버깅과 매우 비슷합니다. DLL을 만드는 템플릿은 다음과 같습니다. (C++): MFC ActiveX 컨트롤 ActiveX 컨트롤은 인터넷을 통해 클라이언트 컴퓨터에 다운로드하여 웹 페이지에 표시 및 활성화할 수 있는 컨트롤입니다. 독립적으로 실행할 수 없고 HTML 웹 페이지에 포함되어야 한다는 점에서 이러한 컨트롤을 디버깅하는 방식은 다른 종류의 컨트롤을 디버깅하는 방식과 비슷합니다. 자세한 내용은  How to: Debug an ActiveX Control 을 참조하십시오. (C++): MFC DLL 자세한 내용은  MFC Debugging Techniques 을 참조하십시오. (C++): MFC ISAPI 확장 DLL (C++): ATL 프로젝트 자세한 내용은  ATL Debugging Techniques 을 참조하십시오. (C++): 클래스 라이브러리 (C++): Windows 컨트롤 라이브러리 Windows 컨트롤 라이브러리는 클래스 라이브러리 프로젝트와 비슷한 방법으로 디버깅할 수 있습니다. 대부분의 경우에 다른 프로젝트에서 Windows 컨트롤을 호출하게 됩니다. 따라서 호출하는 프로젝트를 디버깅할 때 Windows 컨트롤의 코드를 단계별로 실행하고, 중단점을 설정하고, 다른 디버깅 작업을 수행할 수 있습니다. 자세한 내용은  Windows Forms 컨트롤 을 참조하십시오. (C#, J# 및 Visual Basic): 클래스 라이브러리 (C#, J# 및 Visual Basic): Windows 컨트롤 라이브러리 (C#, J...

[펌] ATL/WTL 공부하기.

출처:  http://jacking75.cafe24.com/WTL/Index.htm 아래의 WTL의 설명은 본인이 일본의  http://home.att.ne.jp/banana/akatsuki/doc/atlwtl/index.html 에서 가져온 자료를 번역기로 1차 번역 후 본인이 약간 손을 본 자료입니다.WTL에 대해서 좋은 정보를 얻으셨다면 위 사이트의 주인의 덕택입니다. ATL/WTL 처음 시작 WTL의 인스톨 Hello, ATL/WTL 윈도우 윈도우 클래스 정보 윈도우 특성 메시지 ATL의 메세지 맵 WTL의 메세지 맵 체인 대체 메세지 맵 메세지 루프 메시지 필터 아이들 핸들러 GDI 디바이스 컨텍스트 펜 브러쉬 폰트 팔렛트 비트맵 리젼 확장 메타 파일 메뉴 메뉴 바 팝업 메뉴 프레임 윈도우 프레임 윈도우 프레임 윈도우 클래스 정보 심플 툴바 심플 리바 심플 스테이터스 바 UI갱신 핸들러 – 팝업 메뉴 아이템 UI갱신 핸들러 – 툴바 뷰 윈도우 커맨드 체인 다이얼로그 모달 다이얼로그 모달리스 다이얼로그 UI갱신 핸들러 – 다이얼로그의 팝업 매뉴 아이템 UI갱신 핸들러 – 자식 윈도우 키보드 액셀레이터 심플 다이얼로그 위자드 ATL/WTL AppWizard 스켈톤 _ATL_MIN_CRT에 대해서 표준 컨트룰러 버튼 스태틱 리스트 박스 콤보 박스 스크롤 바 에디터 공용 컨트룰러 툴팁 풍선 툴팁 리스트뷰 이미지 리스트 헤더 트리 뷰 확장 트리 뷰 탭 리치 에디터 트랙바 업 다운 프로그레스바 핫키 애니메이션 드래그 리스트 박스 확장 콤보 박스 월간 달력 일시 지정 IP어드레스 Pager 컨트룰러 확장 슈퍼 클래스 화 서브 클래스 화 컨테인 윈도우 메세지 리플렉션 DDX/DDV 오너 드로우 커스텀 드로우 확장 컨트룰러 비트맵 버튼 체크 리스트 뷰 하이퍼 링크 모래 시계 커서 ...

[src/c++/vs2005] 현재 사용중 Windows의 로컬계정 목록들 확인

[src/c++/vs2005] 현재 사용중 Windows의 로컬계정 목록들 확인 // NetGroupEnum.cpp : 콘솔 응용 프로그램에 대한 진입점을 정의합니다. // // VC 콘솔 어플리케이션으로 수행했습니다. #include "stdafx.h" #define UNICODE #include <windows.h> #include <lmaccess.h> #include <lmapibuf.h> #include <iostream> #pragma comment(lib, "Netapi32.lib") int _tmain(int argc, _TCHAR* argv[]) { LOCALGROUP_INFO_0 *l_info; DWORD read; DWORD total; NetLocalGroupEnum(NULL, 0, (unsigned char **)&l_info, MAX_PREFERRED_LENGTH, &read, &total, NULL); std::wcout << L"[Local Groups]\n"; int i; for (i=0; i<read; i++) { std::wcout << l_info[i].lgrpi0_name << std::endl; LOCALGROUP_MEMBERS_INFO_1 *members; DWORD entries, total_entries; NetLocalGroupGetMembers(NULL, l_info[i].lgrpi0_name, 1, reinterpret_cast<BYTE **>(&members), MAX_PREFERRED_LENGTH, &entries, &total_entries, NULL); ...

오류 "시스템이 지정된 프로그램을 실행할 수 없습니다."

WinXP 오류메세지 "시스템이 지정된 프로그램을 실행할 수 없습니다." 또는  Win7 오류메세지 "응용 프로그램의 side-by-side 구성이 잘못되어 응용 프로그램을 시작하지 못했습니다 . 자세한 내용은 응용 프로그램 이벤트 로그를 참조하거나 명령줄 sxstrace.exe 도구 를 사용하십시오." VC2005 / VC2008로 컴파일 한 경우라면, 검색 결과 2가지 조치가 수행할 수 있는 것으로 확인 되었습니다. ----------------------------------------------------------------------------------- case a. -  전 간단한 프로그램이어서 여기서 해결되었습니다. 1.컴파일 옵션중 "ATL에서 CRT사용을 최소화" 를 "예"로 하여 빌드하고 타켓환경에서 수행합니다. ----------------------------------------------------------------------------------- case b - 그 외에는 이런 걸 설치해야 한다고 하더군요. 1. Microsoft Visual C++  2005  /  2008  SP1 재배포 가능 패키지(x86) 2.  Microsoft .NET Framework 3.5 서비스 팩 1 3. Microsoft .NET Framework2.0  (상위 버젼 사용시  하위호환성이 지원되어 자동설치됨, 필요한 경우에만 설치)

윈도우 관리자 계정인지 확인 여부

Windows7 OS중에서 isAdmin() 함수로 관리자 계정인지 여부 검사할 수 없는 경우가 있어서, 검색하다 보니 다음과 같은 방안이 존제. VS2005에서 테스트 완료. 출처 : http://social.msdn.microsoft.com/Forums/en-AU/vclanguage/thread/D84B35F0-FBB5-4A5B-B5D5-4F1235AF4EA3 //--------- IsAdmin_Simple()-------------- #include "Lm.h" #include "Lmapibuf.h" #include "comutil.h" #pragma comment(lib, "comsupp.lib") #pragma comment(lib, "Netapi32.lib") //---------------------------------------- bool IsAdmin_Simple(CString strUserName) { bool bAdminPrivilege = false; DWORD rc; USER_INFO_1 *info; rc = NetUserGetInfo(NULL,_bstr_t(strUserName),1,(byte**)&info); if(rc == NERR_Success) { bAdminPrivilege = info->usri1_priv == USER_PRIV_ADMIN; NetApiBufferFree(info); } //return rc == NERR_Success; return bAdminPrivilege; } void CisadminDlg::OnBnClickedOk() { // TODO: // m_ctrl_edit : C...