|
| Posted by 지상현 | 2010-07-10 23:39:41, Hit : 5117 | |
|
|
|
아아...
Windows 7, 정확히는 비스타겠지만 어쨌든 파일관리창 모델이 바뀌었더라구요.
공통 대화 상자 (comdlg32.dll) 소관에서 셸로 넘어갔더라구요.
하긴 비스타 컨셉 자체가 셸부터 갈아 엎은 거니까 이해는 갑니다.
그래서, 결론적으로 이걸 온전히 사용하려면
(ㅇㅈ열기) GetOpenFileName -> IFileOpenDialog
(ㅇㅈ저장) GetSaveFileName -> IFileSaveDialog
으로 갈아야 합니다.
안타깝지만 Flat한 Api에서 셸 기반 COM으로 넘어가버렸구요.
XP의 존재조차 인식하지 못하는 너무 old~한 창조에서 더 멀어졌네요.
아, 근데 예전에 제가 만들어 올렸던 CreateCOM이란 놈이 COM을 쓸 수 있게 하기는 하더군요. -_-
(저는 소스 코드도 가지고 있지 않고 기억도 나질 않습니다 ㅋㅋㅋㅋ)
한번 봤더니 왠걸 유니코드도 지원하고 막 그러긴 하네요.
자기 자랑이지만 이 글 쓸때는 회의적이었는데 이걸 보고나니 CreateCOM으로도 IFileOpenDialog 정도는 쓸 수 있겠네요 -_-;;;
※주: 혹시나 이걸로 시간 낭비하시는 분들이 계실까봐 추가합니다.
CreateCOM은 "이미 만들어진" COM 객체만 쓸 수 있습니다.
그런데 셸에서 쓰는 COM의 일부 매커니즘은 "자기가 COM 객체를 만들어서" 넘겨주는 방식으로 이벤트를 처리하는게 많아서 (저번에 삽질하던 InternetExplorer 컴포넌트도 그런 방식이기 때문에 CreateCOM으로는 구현 불가) 이것으로는 IFileOpenDialog의 이벤트를 받을 수 없습니다. 시도하지 마세요.
새 인터페이스는 파일관리창을 좀 더 괜찮게 다룰 수 있게 해주는 것 같긴 한데...
일단 윈도의 기본 방침은 하위 호환성이니까(요새도 적용되는지 모르겠습니다. 비스타는 그 점에서 영 아니었거든요. 윈7은 좀 나은 것 같은데... 아직까지 이 정신이 살아있길 바랍니다. 제발, Microsoft... -_-)
기본 방식으로 파일관리창(legacy하다고 하죠)을 띄울 때도 가능한 새 것으로 보여주고 싶어하는 그 맘을 이해합니다. 옛날 방법을 써도 특별히 문제될게 없으면 그게 낫겠죠.
델파이 7 이하 버전의 경우는 파일관리창에 후킹을 걸기 때문에 (기본 동작 이외에도 특별한 일을 하고 싶었는지~) 그렇게 되면 이전 버전에서 쓰던 기능과 새 기능이 맞지 않기 때문에 어쩔 수 없이 이전 버전으로 띄워주는 거지요. (그냥 legacy한 파일관리창을 띄워주면 될 것 같은데 창조는 무슨 짓을 하는지 더 legacy한걸로 뜨구요 -_-)
어쨌든, 창조나 델파이7이나 기타 legacy한 윈도 개발 도구에서 파일관리창이 그렇게 뜨는건 어쩔 수 없습니다.
도리어, 특정 조건에서 새 스타일로 뜨는게 윈도가 지원해줘서 그런 거네요.
새 부대에는 새 술을 담듯이 새 방법을 써야 하겠지만,
당연히 이전 버전 윈도에선 동작하지 않습니다.
(위에서 말씀드린 것도 비스타에서 추가됐지만 벌써 7에서 빠진 부분도 있고 그러네요...)
윈7이 XP보다 퍼져나가는 속도가 빠르다고는 하지만
앞으로도 XP는 오랜 기간 현역으로 뛰어줄 것이구요,
이 상황에서도 9x를 지원하는 분들도 계시는데 (저도 노력은 하지만 -_-)
어쨌든 저 개인적으로는 윈7 프로그래밍으로 넘어가는건 아직 시기상조 같네요.
그나마 2000/XP 이하는 이제 좀 무시해도 될만한 환경이라서 한숨 놨다고나 할까요......
윈7을 안 쓰겠다는건 아니겠지만 (가격 부담이 ㅠㅠ)
모든 것을 윈7로 가정하고 넘어가기엔 아직 충분히 무리가 있고 말이죠.
어쨌든 준비(?)는 해야 할 것 같지만...
(저에겐 그나마도 신버전이던 각종 툴과 SDK를 Microsoft는 이미 legacy하다며 내다버리고 지원해주질 않는군요 ^^;;)
(↑ 저 군대 가기 전까지만 해도 분명 최신이었습니다 -_-)
음, 갑자기 횡설수설이네요,
어쨌든 윈7은 아주 갈아 엎은 것 같은데 그렇게 하고도 하위호환성이 꽤 된다는 점을 칭찬하고 싶지만
되는게 80%라도 안 되는게 20%면 그 20%에 원망이 더 쏠리는게 사람 심리 아닐까 합니다.
정말 윈도는 새 거 나올 때마다 난리가 나네요,
여느때보다 리눅스쪽으로 갈아타고 싶은 충동을 느끼구요(그쪽은 커널보단 무슨 패키지를 까느냐에 따라 달린 것 같아서 더 낫다 나쁘다라고 할 수도 없지만, 제가 경험이 거의 없다시피 하기 때문에 역시 힘드네요...)
그렇지만 이 모든 것이 닷넷으로 어떻게 해보려는 MS의 전략임을 알기 때문에,
다른 툴을 버리고 닷넷으로 넘어가면 편하겠지만
또 그렇게 하려고 MS가 이렇게 괴롭히는거지만 -_-
전 지지 않겠습니다.
...라는 것으로 횡설수설을 마치면 황당하시겠죠...
저도 비스타 새 기능 다뤄보고는 싶은데
일단 비스타나 윈7이 없으며-_-
그건 임시변통이 가능하지만(..)
사용 중인 개발 환경을 다 갈아 엎어야 한다는 파격적인 옵션이 있더라구요.
집 옮기는 것도 힘든데, 가구까지 다 바꾸라니요?
(이전 툴에서도 하려면 할 수 있지만 그건 창조로 Api나 DLL 동원해서 안 되는걸 되게 하는 느낌이니까요...ㅠㅠ)
정말 큰일 나겠다 싶더라구요.
제가 뭐 로또라도 돼서 여유롭고 평안한 삶을 영위하고 있으면 모르겠지만,
그다지 여유롭지 못하니까 함부로 그렇게 할 수도 없고,
어쨌든 그래서 윈7을 당분간 안 하는 이유가 그겁니다.
제가 말은 이렇게 했지만 적용하는게 아주 어려운건 아닌데...
Dwm Api만 몇 개 가져다 써도 에어로 정도는 금방 금방 하니까요.
문제는 잘 써오던 툴들이 윈7에서 슬슬 제대로 안 되기 시작하는 -_-;;
결론은,
당분간 하드웨어 스펙이 올라가지 않는 이상 OS 업그레이드도 없으며,
그 전까진 입맛만 다셔야 하는 이 슬픔!
여러분들도 차라리 이런 상황을 재충전의 기회로 삼고 잠시 손을 놔버립시다.(?)
요는, 신기술 자꾸 나온다고 꼭 써먹어야 한다는 강박관념 가지면 가랑이가 찢어지는 수가 있습니다. |
|
|
신용주 2010-07-11 AM 12:20:58 |
|
|
|
다들 창조의 파일관리창이 요즘 파일관리창보다 떨어지는게 사실이지만
창조로 그냥 파일관리창을 구현(만드는 것)이 더 빠르지 않을까요? 어렵긴하지만... |
|
|
권선중 2010-07-11 AM 1:15:15 |
|
|
|
의문사항 외 꼭 비스타급의 이상의 파일관리창을 써야할까요?
구 창으로 쓰면 안될거라도...? 디자인적인 부분을 원한다면.. 그냥 용주님 말씀처럼 만들면되지않알까하는 생각이 드네요.. |
|
|
지상현 2010-07-11 AM 1:52:03 |
|
|
|
맞습니다.
필요하면 만들어 쓰는게 답입니다.
물론 저기서 하는 말은 "그냥 해도 비스타 이상에선 이 정도로 나오는데, 왜 창조는 구 구 버전으로 나오느냐"에 관한 문제였기 때문에 조금 다른 거라고 생각합니다 ^^;
제 결론은 쓸데 없는 글 말고 맨 마지막 한 줄만 보시면 될듯 해요~ |
|
|
paintj 2010-07-11 PM 3:47:52 |
|
|
|
제가 기억하기로는, 비스타에서도 곰플레이어나 다른 프로그램들의 파일관리창이 XP처럼 나왔던걸로...
7에서부터 바뀐걸로 알고있었는데 아닌가요? |
|
|
지상현 2010-07-11 PM 9:28:04 |
|
|
|
윈7의 기본 틀은 거의 비스타에 추가됐습니다.
그리고 비스타 초기에 인기가 시들했던것도 '느릴 거라는' 편견도 있었고 말이죠. (고사양일수록 XP보다 비스타가 빠르니까요)
윈7도 완전히 갈아 엎었다 수준으로 바뀐 게 아닙니다.
Windows 2000이 버전이 5.0인데 XP가 5.1이죠.
바뀐건 딱 그 정도입니다.
비스타도 버전이 6.0이지만 윈7은 6.1이죠.
윈7이 아직 최신이기 때문에 윈7 (그리고 더 짧아서)이라고 하지만,
사실 비스타라고 언급하는게 더 정확할겁니다. |
|
|
지우개 Expert 3.0 제작자 : 천호성 님 [LINK] |
|
|
|
대박로또2005 제작자 : 최재일 님 [LINK] |
|
|
1 | 박종훈 님 | 15292 점 | |
2 | 지상현 님 | 8809 점 | |
3 | 손상진 님 | 7389 점 | |
4 | 권선중 님 | 6061 점 | |
5 | 이진백 님 | 5174 점 | |
|
|
|
가입일 | 닉네임 |
05/31 | 김동률 |
03/31 | 홍형기 |
09/01 | o00pp99oo |
12/27 | 이재민 |
11/20 | 이희철 |
|
|
|
|
. |
. |
. |
|