컴파일을 이상없이 되는 관계로!
이제 기능추가를 위해 몸부림을 쳤다 ^^;

추가 될 내용은 레지스트리 관련기능들 인데..
문제는 /D "_UNICODE" 로 인해서 함수들이 모두 유니코드 대응으로 변환되었다는 점이다.



이로 인해서 약간의 삽질이 추가 되었다.

            HKEY key1;
            LONG res = RegCreateKey(HKEY_CLASSES_ROOT,
                L"Unknown\\shell\\Open with notepad2\\command",
                &key1);
            if (res == ERROR_SUCCESS)
            {
                WCHAR cmd[MAX_PATH + 4];
                WCHAR path[MAX_PATH];
                int len;
                GetModuleFileName(GetModuleHandle(NULL), path, MAX_PATH);
                len = wsprintf(cmd, L"%s %%1", path);
                RegSetValue(key1, NULL, REG_SZ, cmd, len);

유니코드로 함수들이 변경되면서 char 형의 변수에서 WCHAR 형으로 바뀌고
각종 스트링들도 T 접두를 붙여서 unicode 형으로 바꾸어 주었다.
물론 sprintf 역시 유니코드를 지원하는 wsprintf로 변경!

이로서 간편하게 context-menu에서 실행이 가능하도록 설정을 할 수 있게 되었다.
Posted by 구차니
TAG

댓글을 달아 주세요

  1. 수정하는 방법까지 포스팅했습니다.
    한번 읽어보시기 바랍니다. ^^;;;

    2008.12.29 00:09 [ ADDR : EDIT/ DEL : REPLY ]
    • 앗 감사 합니다 ^^
      BLUE'nLIVE님 덕분에 VC++ 6.0 에서 편하게 컴파일도 하고 많은 공부가 되었습니다.

      2008.12.29 00:16 [ ADDR : EDIT/ DEL ]
  2. 비밀댓글입니다

    2008.12.29 21:06 [ ADDR : EDIT/ DEL : REPLY ]
    • 조금 이해가 안되는 문구네요 ㅠ.ㅠ
      그러니까 context-menu에 "Open with Notepad2" 대신에 한글로 수정하되, 추후 수정이 용이한 방향으로 수정을 하셨으면 좋겠다는 의미이신가요?

      2008.12.29 23:13 [ ADDR : EDIT/ DEL ]
    • 네. 맞습니다. (표현이 좀 앞뒤가 안맞네요)

      수정이 용이하도록 하기 위해, 레지스트리의 키값을 변경하지 말고, 디폴트 문자열 값을 하나 추가하잔 뜻입니다.

      2008.12.29 23:20 [ ADDR : EDIT/ DEL ]
  3. 「Open with notepad2」를 간단히 「메모장2로 편집(E)」처럼 하면 좋을듯 싶네요;;

    2008.12.29 22:03 [ ADDR : EDIT/ DEL : REPLY ]
  4. 비밀댓글입니다

    2008.12.29 23:24 [ ADDR : EDIT/ DEL : REPLY ]
    • 레지스트리 조작은 처음이라서 ^^; 해보고 나서야 이해를 했네요 ㅎ 조언 감사합니다

      2008.12.29 23:41 [ ADDR : EDIT/ DEL ]