소프트웨어 gcc compile 한글 문제
2021.09.13 09:43
안녕하세요?
예전 dos 시절의 deltree를 써보려고 다음의 링크를 찾았습니다. (rd /s/q 등의 배치명령어로도 가능하지만 속도등 비교를 위해서)
https://github.com/ai7/toolbox/tree/25373f34e5fe2471abcdbb43d169d15b7c9868e5/deltree
mingw32 gcc에서 mingw32-make.exe 실행하여 정상적으로 실행파일이 만들어집니다.
한글 이름의 폴더가 정상적으로 삭제는 되는데 아래 스샷처럼 한글 출력은 안되어서 짧은 지식으로 찾아보지만 잘 모르겠습니다.
(1.0.2 버전으로 실행해서 같은 결과입니다. 그래서 이왕 1.0.3 소스가 있어서 컴파일해보는데 마찮가지로 한글 출력이 안되어서요.)
프로그램 언어에 능숙하신 고수님 계시면 해결 방법 부탁드립니다.^^
1.0.3 소스파일 ; deltree1.0.3src.zip
댓글 [7]
-
kernel 2021.09.13 12:17
-
kernel 2021.09.13 12:23
두번째로... 한글문제
C/C++ 런타임 라이브러리를 구현할 때... 디폴트 로캘(locale)로 'C'라는 이름의 로캘을 내부적으로 사용하는데
런타임 라이브러리가 내부적으로 어떤 식으로 구현되어 있냐에 따라 다른 동작을 가져요.
한글을 사용할 수 있도록 하려면...
deltree.c 소스파일에서
#include <locale.h>
위와 같이 locale.h 헤더를 추가하고wmain() 엔트리에setlocale(LC_ALL, "");위와 같이 setlocale 함수를 호출하도록 해주면C/C++ 런타임 라이브러리의 디폴트 로캘을 쓰지 않고 시스템의 로캘을 사용하게 됍니다. -
kernel 2021.09.13 12:24
위와 같이 소스코드 수정해서 컴파일하면 아래와 같이 한글을 사용할 수 있음.
-
지후빠 2021.09.13 12:39
대단히 감사합니다. ^^ 어제 끙끙대다... ㅎ~ 일단 알져주신대로 따라해보겠습니다.
혹시 첫번쨰 IFileOperation 적용도 가능하신가요? 제가 C 문외한이라서...
기존에 사용중인 임시파일들을 삭제하는 배치파일에 적용해서 비교해보고 싶어서 시작한 것이 좀 엉뚱한 곳으로 빠졌습니다.
-
지후빠 2021.09.13 12:50
알려주신 두번째에 해당하는 두가지 수정하여서 원하는 결과를 얻었습니다 대단히 감사합니다. ^^
-
kernel 2021.09.14 10:37
파일 삭제처리를 가장 빠른 방법으로 하려는 게 목적인 듯 싶은데...
가장 빠르게 처리하려면 NTFS 파일시스템 MFT 내부구조를 다이렉트로 액세스 하는 방법을 쓰면 되는데
파일시스템 보안 까지 바이패스 할 수 있어서 디테일한 방법은 공개할 생각이 없네요.
-
지후빠 2021.09.14 22:26
넵 감사합니다. ^^ 이정도면 충분합니다.~ 그 이상은 제 능력밖의 영역인듯 싶습니다.ㅠㅠ
번호 | 제목 | 글쓴이 | 조회 | 등록일 |
---|---|---|---|---|
[공지] | 질문과 답변 게시판 이용간 유의사항 | gooddew | - | - |
90902 | 하드웨어| CPU 내장그래픽도 램을 점유하나요? [5] | 『ⓖⓤⓝ』 | 682 | 10-01 |
90901 | 모 바 일| txt를 docs로 변환 방법 알려 주세요(유틸이면 더 좋고요) [2] | 꿀단지 | 324 | 10-01 |
90900 | 윈 도 우| 오류문의 드리겠습니다 [1] | 3561 | 264 | 10-01 |
90899 | 윈 도 우| PE 바탕화면 휴지통 아이콘 [4] | IPONTY | 281 | 10-01 |
90898 | 하드웨어| 맥 컴 [9] | 세븐좋아 | 430 | 10-01 |
90897 | 소프트웨어| 카조님의 Win10XPE121 공유 부탁드려요 [2] | 와니 | 622 | 10-01 |
90896 | 소프트웨어| AOMI Backupper6.6.1등록방법 | 당구샵 | 260 | 10-01 |
90895 | 하드웨어| 이 SSD 상태 어떤가요. [4] | 타임머신 | 452 | 10-01 |
90894 | 윈 도 우| [질문] VHD OS 인스톨 관련 [2] | 모모님 | 175 | 10-01 |
90893 | 윈 도 우| OS 설치된 날짜 변경 반자동화 프로그램 있으신분좀... [6] | 그린보이 | 376 | 10-01 |
90892 | 하드웨어| 인텔내장그래픽 강제 램할당 (스타크 리마스터 광원,실시간... [2] | 컴알못러 | 513 | 10-01 |
90891 | 기 타| 동일한 파일을 받았는데, 다운받은 컴마다 해시값이 다름 [2] | 마족 | 397 | 10-01 |
90890 | 윈 도 우| 몇몇 사이트가 접속이 안되네요 [3] | 복구시디 | 367 | 10-01 |
90889 | 윈 도 우| mbc 미니 라디오 설치 문제? [4] | 퐁퐁퐁88 | 389 | 10-01 |
90888 | 기 타| 오토핫키 오른쪽 버튼 누르고 있기 어떻게 하죠? [1] | 바다산해 | 165 | 10-01 |
90887 | 윈 도 우| Windows10 업데이트이후 키보드먹통 [5] | Nauthizh | 360 | 09-30 |
90886 | 윈 도 우| 크롬 새창으로 광고가 막뜨는데 어떻게 고치죠? [1] | 흑피리 | 421 | 09-30 |
90885 | 소프트웨어| 7z를 설치후 아이콘을 변경하고자 합니다 [1] | #cortana# | 211 | 09-30 |
90884 | 소프트웨어| 빌드 번호로 Office 2019 와 2021 구분 부탁합니다. [4] | 타임머신 | 659 | 09-30 |
90883 | 하드웨어| 폰과 연결된 모니터 화면이 꽉차게 나오질 않습니다 [2] | joe | 495 | 09-30 |
위 소스코드는 두개의 문제를 갖고 있어요.
첫째...
사용하고 있는 코드를 보면 삭제 속도를 높이기 위해 SHFileOperation() 이라는 윈도우즈 API를 이용하고 있는데
윈도우즈 탐색기는 내부적으로 IFileOperation 이라는 새로운 C++ COM 인터페이스를 씁니다.
SHFileOperation() API도 legacy api 인 셈.