2013/05/30

Visual Studio 2012 Update 3 RC 2

Visual Studio 2012 버전의 업데이트 패치3 의 두번째 RC 버전이 공개 되었다. 

RC후 바로 정식 공개가 되리가 기대했는데 좀 아쉽다.


Update 3 버전에는 XP 지원에 문제가 패치되어 포함되어 있다.



Visual Studio 2012 Update 3 RC 2  

http://support.microsoft.com/kb/283560

Original Post :
http://neodreamer-dev.tistory.com/713

2013/05/22

윈도우 7 재설치 없이 AHCI 모드 활성화 하기

메인보드를 업그레이드 할 기회가 있어 기존 설치된 운영체제를 새로 설치하지 않고 시도를 해 보았다. 하지만 업그레이드 후 부팅시 블루스크린이 나타났다.



바이오스에서 기본적으로 AHCI 모드로 설정이 되어있어 발생한 문제로 보였으며 이를 IDE로 설정한 후 해결 되었다. 메인보드 칩셋등 새로운 드라이버를 설치 후 거의 정상화가 되었다.



바이오스에서 ATA모드를 AHCI모드가 아닌 IDE모드로 설정한 것이 마음에 걸려 이를 해결할 수 있는 방법을 찿아 보았는데 의외로 간단하였다.



Windows 7 에는 이미 기본 표준 AHCI 드라이버가 설치가 되어 있어 레지스트리만 변경을 해주만 해당 드라이버로 설정이 된다.

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\msahci]
"Start"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\pciide]
"Start"=dword:00000003



설정을 마치고 재부팅 할 때 CMOS에서 ATA모드를 AHCI모드로 변경을 하면 윈도우 부팅후 기본 표준 AHCI드라이버를 메인보드에 맞는 드라어브를 다시 설치해 주면 된다. 



출처: 캐플 블로그 - [윈도우 7] 윈도우 재설치 없이 IDE 모드에서 AHCI 모드로 변경하기 

Original Post :
http://neodreamer-dev.tistory.com/712

구글에서 공개한 안드로이드 개발 환경 - Android Studio v0.1



2013 Google IO 에서 공개한 Android Studio 0.1 을 설치해 보았다.

Android Studio 는 IntelliJ를 기반으로 안드로이드 개발에 최적화 한 개발 툴이다.

설치는 간단하였다. 설치 파일을 받아 실행만 하면 된다.


Android Studio 에 기본적으로 SDK가 포함되어 기존 SDK와 중복이 되어 관리가 귀찮을 듯 해서 android studio 의 SDK 경로를 기존 SDK 경로로 변경해 주었다.

변경 방법은 시작 대화상자에서 Configure -> Project Defaults -> Project Structure 대화상자에서 설정해 주면 되었다.




기본 프로젝트를 만들고 실행해 보았다.



앞으로의 안드로이드 개발 공부는 Android Studio를 이용하여 봐야겠다.


Getting Started with Android Studio

&

Original Post : http://neodreamer-dev.tistory.com/711

2013/05/20

SQLite Release 3.7.17

SQLite 버전이 업데이트 되었다.


SQLite Release 3.7.17 On 2013-05-20 (3.7.17)


  • Add support for memory-mapped I/O.

  • Add the sqlite3_strglob() convenience interface.

  • Assigned the integer at offset 68 in the database header as the
    Application ID for when SQLite is used as an application file-format.
    Added the PRAGMA application_id command to query and set the Application ID.

  • Report rollback recovery in the error log as SQLITE_NOTICE_RECOVER_ROLLBACK.
    Change the error log code for WAL recover from
    SQLITE_OK to SQLITE_NOTICE_RECOVER_WAL.

  • Report the risky uses of unlinked database files and
    database filename aliasing as SQLITE_WARNING messages in the error log.

  • Added the SQLITE_TRACE_SIZE_LIMIT compile-time option.

  • Increase the default value of SQLITE_MAX_SCHEMA_RETRY to 50 and make sure
    that it is honored in every place that a schema change might force a statement
    retry.

  • Add a new test harness called "mptester" used to verify correct operation
    when multiple processes are using the same database file at the same time.

  • Enhance the extension loading mechanism to be more flexible (while
    still maintaining backwards compatibility) in two ways:

    1. If the default entry point "sqlite3_extension_init" is not present in
      the loadable extension, also try an entry point "sqlite3_X_init" where
      "X" is based on the shared library filename. This allows every extension
      to have a different entry point, which allows them to be statically linked
      with no code changes.

    2. The shared library filename passed to sqlite3_load_extension() may
      omit the filename suffix, and an appropriate architecture-dependent
      suffix (".so", ".dylib", or ".dll") will be added automatically.



  • Added many new loadable extensions to the source tree, including
    amatch, closure, fuzzer, ieee754, nextchar, regexp, spellfix,
    and wholenumber. See header comments on each extension source file
    for further information about what that extension does.

  • Enhance FTS3 to avoid using excess stack space when there are a huge
    number of terms on the right-hand side of the MATCH operator. A side-effect
    of this change is that the MATCH operator can only accommodate 12 NEAR
    operators at a time.

  • Enhance the fts4aux virtual table so that it can be a TEMP table.

  • Added the fts3tokenize virtual table to the full-text search logic.

  • Query planner enhancement: Use the transitive property of constraints
    to move constraints into the outer loops of a join whenever possible,
    thereby reducing the amount of work that needs to occur in inner loops.

  • Discontinue the use of posix_fallocate() on unix, as it does not work on all
    filesystems.

  • Improved tracing and debugging facilities in the Windows VFS.

  • Bug fix: Fix a potential database corruption bug
    in shared cache mode when one
    database connection is closed while another is in the middle of a write
    transaction.
    Ticket e636a050b7

  • Bug fix:
    Only consider AS names from the result set as candidates for resolving
    identifiers in the WHERE clause if there are no other matches. In the
    ORDER BY clause, AS names take priority over any column names.
    Ticket 2500cdb9be05

  • Bug fix: Do not allow a virtual table to cancel the ORDER BY clause unless
    all outer loops are guaranteed to return no more than one row result.
    Ticket ba82a4a41eac1.

  • Bug fix: Do not suppress the ORDER BY clause on a virtual table query if
    an IN constraint is used.
    Ticket f69b96e3076e.

  • Bug fix: The command-line shell gives an exit code of 0 when terminated
    using the ".quit" command.

  • Bug fix: Make sure PRAGMA statements appear in sqlite3_trace() output.

  • Bug fix: When a compound query that uses an ORDER BY clause
    with a COLLATE operator, make sure that the sorting occurs
    according to the specified collation and that the comparisons associate with
    the compound query use the native collation. Ticket
    6709574d2a8d8.

  • Bug fix: Makes sure the authorizer callback gets
    a valid pointer to the string "ROWID" for the column-name parameter when
    doing an UPDATE that changes the rowid. Ticket
    0eb70d77cb05bb2272

  • Bug fix: Do not move WHERE clause terms inside OR expressions that are
    contained within an ON clause of a LEFT JOIN. Ticket
    f2369304e4

  • Bug fix: Make sure an error is always reported when attempting to preform
    an operation that requires a collating sequence that is missing.
    Ticket 0fc59f908b


  • SQLITE_SOURCE_ID:
    "2013-05-20 00:56:22 118a3b35693b134d56ebd780123b7fd6f1497668"

  • SHA1 for sqlite3.c: 246987605d0503c700a08b9ee99a6b5d67454aab


    Original Post : http://neodreamer-dev.tistory.com/710
  • 2013/05/14

    Visual Studio 에서 바코드 라이브러리 ZXing 빌드하기...

    Open Source 바코드 라이브러를 알아보다가 ZXing을 알게되었고 이 ZXing을 Visual Studio에서 사용하는 방법을 찾아보았다.

    ZXing 관련하여 Visual C++ 환경에서 사용하는 내용은 그리 많지 않았다.

    그러나 최근 소스의 업데이트 내용을 살펴 보다가 cmake 가 적용되었다는 정보를 확인하고 최근 소스를 받아 보았다.



    소스의 cpp 폴더에서 cmake 관련 파일을 볼 수 있어서  cmake 파일을 이용해서 컴파일 해 보았다.

    우선 준비해야 할 것이 ZXing 소스와 더불어 cmake 와 CppUnit 소스가  필요하다.


    cmake 를 실행하여 소스코드를 zxing/cpp 로 Build the Binaries 에 출력 결과를 저장할 폴더를 설정한다.



    configure 버튼으로 한 번 설정하면, CppUnit 관련 에러가 출력된다.

    다운로드해 놓은 CppUnit 경로를 설정하면 에러없이 경고 몇 개만으로 설정할 수 있다.



    마지막으로 Generate 버튼을 눌러 마무리 한다.

    경고 몇 개가 출력되지만 라이브러리 빌드에는 문제가 되지 않았다.



    지정한 Binary 폴더에 생성된 zxing.sln 파일을 Visual Studio로 열어 빌드하면 Static Library를 얻을 수 있었다.


    일단 빌드를 문제 없이 마쳤고 Static Library를 얻을 수 있었다. 라이브러리 사용에 대한 것은 좀더 공부를 해봐야 할

    Original Post : http://neodreamer-dev.tistory.com/709

    2013/05/09

    [VCPP] 타이틀 바 없는 윈도우 마우스로 이동하기

    // Method #1
    LRESULT CDialogClass::OnNcHitTest(CPoint point)
    {
    return HTCAPTION;
    }

    // Method #2
    void CDialogClass::OnLButtonDown(UINT nFlags, CPoint point)
    {
    PostMessage(WM_NCLBUTTONDOWN, HTCAPTION, MAKELPARAM(point.x, point.y));

    CDialogEx::OnLButtonDown(nFlags, point);
    }




    타이틀 바가 없는 윈도우를 만들경우 별도의 작업 없이는 이 윈도우를 이동 할 수 없다.

    기존 방법과 같이 마우스 드래그 만으로 윈도우를 이동하는 간단한 방법이 두 가지 있는데,



    첫 번째는 WM_NCHITTEST 메세지 처리 핸들러에서 마우스 커서가 타이틀바에 있는 것처럼 처리(Method #1)하면 쉽게 윈도우를 이동할 수 있다. 하지만 이 방법에는 단점이 있다. 클라이언트 영역에서의 마우스 메세지 핸들링이 원활하지 않게 된다. 마우스 이벤트를 제대로 이용하려면 두 번째 방법을 이용해야 한다.



    두 번째 방법은 마우스 왼쪽 버튼이 눌렸을 경우에 윈도우의 타이틀 바에서 왼쪽 버튼이 눌렸다는 메세지 강제로 보내는

    Original Post : http://neodreamer-dev.tistory.com/708

    2013/05/08

    Visual Studio 2012의 XP 지원 문제

    Visual Studio 2012 를 설치하고 간단한 프로그램을 작성하여 테스트해 보았는데 XP에서는 실행이 되지 않는 문제가 있었다.


    이 문제는 Visual Studio 2012 의 Update 2 에서 개선이 되어 XP 지원 모드가 추가 되었는데 여전히 문제는 남아 있었다.


    가상PC에 XP를 설치하고 테스트 해 보았는데 어떠한 설정을 해도 XP 지원 모드에서 만들 실행 파일이 아래와 같은 메시지를 내 뿜고 실행이 되지 않았다.


    The procedure entry point InitializeCriticalSectionEx could not be located in the dynamic link library kernel32.dll.


    오늘 새로운 정보를 얻었다. 이미 이 문제는 다는 개발자에의해 보고 되어 수정이 되고 있었다. 발표 준비중인 Update 3 RC 버전에서 이 문제를 해결했다고 한다. 아직 RC 버전이라 업데이트가 꺼려지는데 정식이 나오면 테스트 해 봐야 겠다.



    Visual Studio 2012 Update 3 RC 

    <

    Original Post : http://neodreamer-dev.tistory.com/707

    2013/05/07

    Intel® HAXM을 이용한 쾌적한 안드로이드 에뮬레이터 구성하기

    인텔의 VT 기술을 이용한 가상화 엔진인 Intel Hardware Accelerated Execution Manager(Intel® HAXM)를 이용하면 느린 안드로이드 에뮬레이터를 보다 쾌적하게 구성할 수 있다고 한다.


    우선 SDK Manager를 이용하여 "Intel x86 Atom System Image"를 설치한다.



    설치 한 후 새로운 에뮬레이터를 생성한다. 이 때 아래 이미지에서 보는 것과 같이 안드로이드 버전을 4.2.2로 설정하고 CPU를 Intel Atom으로 설정한다.



    생성한 에뮬레이터를 실행하면 아래와 같이 Open HAX device failed 메세지와 나오는 경우가 있다.

     

    이 때 Intel Hardware Accelerated Execution Manager를 설치해 주면 해결된다. 

     

    Intel® Atom™ x86 Image for Android* Jelly Bean 4.2 Installation Instructions&

    Original Post : http://neodreamer-dev.tistory.com/706

    [C#] WPF 윈도우를 마우스 드래그로 이동하기

    private void Window_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
    {
    base.OnMouseLeftButtonDown(e);

    this.DragMove();
    }
    <

    Original Post : http://neodreamer-dev.tistory.com/705

    [C#] 폼을 마우스 드래깅으로 이동하기

    private const int WM_NCHITTEST  = 0x84;
    private const int HTCLIENT = 0x1;
    private const int HTCAPTION = 0x2;

    protected override void WndProc(ref Message m)
    {
    switch (m.Msg)
    {
    case WM_NCHITTEST:
    {
    base.WndProc(ref m);
    if ((int)m.Result == HTCLIENT)
    {
    m.Result = (IntPtr)HTCAPTION;
    }
    return;
    }
    break;
    }

    base.WndProc(ref m);
    }




    출처: http://support.microsoft.com/kb/320687/en-u

    Original Post :
    http://neodreamer-dev.tistory.com/704

    2013/05/01

    Visual C++ 2010 에서 OpenCV 변수 이미지 확인하기

    2013/04/07 - [Dev Story] - OpenCV 디버깅을 위한 Visual Studio Plugins


    이전 글에서 Visual C++ 2012 버전에서 동작하는 ImageWatch 라는 확장 기능인 Image Watch 에 대해서 글을 썼었는데 이 확장기능은 오로지 2012 버전만 지원하는 것이어서 2010 버전을 지원하는 확장기능이 있는지 찾아 보았다. 찾은 것이 Native Viewer 이다.

    Visual Studio에 있는 확장기능 관리자에서 Native 로 검색하면 쉽게 찾을 수 있으며 설치할 수 도 있다.



    이 확장 기능을 설치한 후 도구의 옵션에 보면 왼쪽 리스트에 Native Viewer 라는 항목이 생기는데 이 항목의 하위 메뉴에서 개발툴과 통합 설정을 하면 바로 사용할 수 있다.



     

    개발툴과 통합을 하면 마우스 커서를 이미지 변수위에 올리면 보이는 툴 팁이 해당 변수가 갖고 있는 이미지 속성으로 바뀌어 보여준다.



    그리고 Control 키를 누른 채 마우스를 변수로 가져가면 마우스 커서가 가리키는 변수가 갖고 있는 이미지를 볼 수 있다.




    NativeViewer on SourceForge

    NativeViewer Documentation

    <

    Original Post : http://neodreamer-dev.tistory.com/703