• 카테고리
    • 전체 글

    • 카테고리1
    • 카테고리2
    • 카테고리3
    • 카테고리4
  • 태그
  • 방명록

'분류 전체보기'에 해당되는 글 1246건

  • 2004.08.11 ioFTPD 사용하기 (2) 2
  • 2004.08.11 ioFTPD 사용하기 (1)
  • 2004.08.11 ioFTPD 사용하기 (0)
  • 2004.08.04 DLL 리소스 전환 방법
  • 2004.07.08 PDA용 홈페이지나 만들어야 하겠다.
  • 2004.06.23 선장이 할일과 항해사가 해야 할일. 1
  • 2004.06.22 X301용 64화음 원음벨 만들기
  • 2004.06.22 X301 용 Wav 제작방법

ioFTPD 사용하기 (2)

기술자료/OS 2004. 8. 11. 21:32
5. Hosts.Rules 설정
  - 자 여기 까지 설치되었으면 기본적인 설정은 거의 끝난것 같네요.
     아, 제일 중요한 부분. 이 FTPD안에는 자체적인 IP Filter 기능이 있습니다. 그덕에 default로 된 내용은
     모든 접속을 deny로 되어 있죠.. 이것을 allow로 해놔야 접속이 가능하답니다...-_-;  (이거 몰라서 1시간 헤맸다는...)
     위의 파일은 /etc 안에 Hosts.Rules 라는 이름으로 있습니다.
     그 안을 열어 보면 별 잡시려운 내용이 다 보일겁니다. 거의 예제 수준이구요..  아래의 내용이 디폴트 내용입니다.
                #       Default policy
                #
                #       POLICY  ACCEPT  CONNECTIONS_PER_IP
                #       POLICY  DENY
                #
                #POLICY        ACCEPT        2
                ## PLEASE REMOVE LINE BELOW
                POLICY DENY
                
                #        Classes
                #
                #        CLASS        CLASS_NAME        TOTAL_CONNECTIONS_PER_CLASS
                CLASS        NORDIC        25
                CLASS   ADMIN   -1

                #       Rules
                #
                #       ACCEPT  I|H     IP|HOSTNAME     CLASS_NAME      CONNECTIONS_PER_IP
                #       DENY    I|H     IP|HOSTNAME     LOG_STRING
                #
                
                ACCEPT  I 192.168.2.    ADMIN   -1
                ACCEPT  I 127.0.0.      ADMIN   -1
                ACCEPT        H .fi                NORDIC        2
                ACCEPT        H .se                NORDIC        1
                ACCEPT        H .no                NORDIC        1
                DENY    I 192.168.      "Banned network address"
                DENY        I 10.                "Banned network address"
                DENY        H .tw                "Access from taiwan is prohibited"

   그런데, 실제 필터링은 어지간하면 필터링에 대한 내공을 쌓은후 손보는 것이 좋습니다. 어설프게 하면 사이트 안열립니다. ^^;
   그래서 처음 이 내용을 접하시는 분은 이 내용을 전부 주석 처리 - 문자열 앞에 "#" 넣는 것입니다. - 하시고 "POLICY ACCEPT -1" 이라는 문장을 추가해 주세요. 그러면 해결. 하지만 보안이 두렵다 하면.. 필터링 공부하셔서 정책을 세워 적어 주세요. 대략 iptable과 유사한 것 같으니깐요.

6. Service 등록
  -  대략... 이 공식 홈페이지에서는 Linux용과 Window용을 구분하기 위해서 인지.. 퀵인스톨 문서에는 이 내용이 빠졌더군요. 그래서 제가 대신 넣습니다 -_-;
     아까 준비하라고 말씀 드린 파일들 있죠? 그 파일을 /system 폴더에 넣어주세요. instsrv.exe 와 srvany.exe 입니다. 그 것을 복사해 넣으시구요. 지금 부터의 설명은 모두 저의 설치 위치인 "c:\ioFTPD"를 기준으로 설명합니다. 다른 위치에 설치하신 분은 각기 알아서 바꿔서 처리하세요.
      c:\ioFTPD\system\instsrv ioFTPD "c:\ioFTPD\system\srvany.exe"
위의 문장을 도스 창에서 한번 실행해 주세요. 그러면 Service로 정상적으로 등록되었다고 나옵니다. 만일 안나온다면 폴더이름이 틀렸든가, 파일이름이 틀렸든가 합니다. 그리고 중간에 ioFTPD 라고 넣어주셔야 잘 찾을 수 있습니다. 다르게 집어넣으면 서비스 이름도 다르게 찍혀 나와 나중에 대략 낭패 상황에 빠집니다. (아무리 찾아도 안나오죠.. 저같은 경우 opFTPD 라고 적는 바람에.. 못찾다가... 나중에 알았다는...-_-;)
     그 다음은 레지스트리를 하나 등록해주어야 합니다.
      2가지 방법이 있는데요.. 하나는 .reg 파일을 만들어 실행하는 것이고.. 다른 하나는 직접 regedit을 해서 고치는 것입니다.

      1. .reg 파일 만들기.
         text 파일을 하나 만드세요. 빈거. 그 파일이름은 적당히 넣고.. 확장자만 .reg로 바꿔주세요. 저같은 경우 a.reg로 바꾸었습니다.   그 파일을 열어서 아래의 내용을 넣어 주세요.
      [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ioFTPD\Parameters]
      "Application"="C:\\ioFTPD\\system\\ioFTPD.exe"
          -- 저.. 당빠.. 위의 폴더 위치는 설치위치로 바꿔줘야 되요...-_-; 아, 그리고 각 폴더 명칭에 "\" <- 요게 한번 들어가지 않고 두번씩 들어간 이유는 이 문서가 단순 text 문서라서 그래요. 한번씩 넣지 말고 꼭 2번씩 넣어주세요.
       저장하시고... 이 문서를 실행해주세요.. 정상적으로 되었다면 아래의 2번은 볼필요 가 없습니다.

       2. 직접 등록하기
           이 문서에 온신경을 더한다면.. 분명 저처럼 실패하신 분이겠군요. 그렇다면 이렇게 하세요. regedit를 실행하세요.
           그리고 HKEY_LOCAL_MACHINE 를 찾고 그 다음에 있는 SYSTEM 을 찾으시고.. 그 다음의   CurrentControlSet 을 찾으시고 그 다음에 있는  Services 를, 그리고 ioFTPD 찾아 주세요. 여까지 왔으면 성공입니다.
           일단 ioFTPD 레지스트리 항목에서 오른쪽 버튼을 눌러 메뉴중의 "새로만들기" 에서 "키"를 선택하신 후 키 이름 "Parameters" 라 해주세요. 스펠링 틀리면 안됩니다 ^^;
            Parameters를 열어보시면 (Default)   REG_SZ   (value not set) 이 보일 것입니다. 아랫쪽 허연 공간에서 다시 오른쪽 버튼을 누르시고 "새로 만들기" 에서 "문자열 값" 을 선택하세요. 그럼 (Default) 및에 New Value#1 이라는 것이 보이는데 그 곳에서 오른쪽 버튼을 눌러 이름 바꾸기를 해서 "Application" 이라고 넣어주시구요.. 그리고 해당 값을 클릭하면 실제 값을 넣는 것이 나오는데 그 안에 c:\ioFTPD\system\ioFTPD.exe 을 넣어주세요. 스펠링이 틀렸나 다시 한번 확인해 보시고, 자신이 설치한 위치에 제대로 파일이 있는지 확인하세요.... 여기 까지 왔으면 정상적인 설치는 된 것입니다.

7. Service 기동!!!!
  - 자 설치는 거짐 끝난 것이구요, 실제 서비스의 기동은 다음과 같습니다.
    1. 리부팅 한다.
    2. 서비스 항목을 열어 시작을 한다
    저렇게 두가지 방법이 있는데요. 서비스 항목은 제어판 -> 관리도구 -> 서비스 를 열면 됩니다. 그 안에 보시면 ioFTPD 라는 서비스가 보이는 데 그것을 시작하시면 됩니다.

8. 최종 점검!!!
   - 제대로 띄워졌는지를 보시려면, ftp://해당주소:포트번호 하시면 됩니다. 아무것도 설정안한 상태라면 Admin의 아이디와 암호는
     ioFTPD 과 ioFTPD 입니다. !!!!!주의!!!!!! 여기서는 암호건 아이디건 대소문자 구분합니다. !!!!!
     접속이 잘된다면 되구요.. 안된다면 지금까지 설치된 내용을 점검 해보세요.
     제가 겪었던 문제들은 다음에 언급해 정리하겠습니다.
     접속이 되면 연결된 상태에서 암호를 바꿔 주세요.
     FTP 중에서 직접 명령어 치기 라는 것이 있습니다 (만일 FTP 프로그램을 쓰지 않고 cmd에서 ftp로 접속했다면 간단하겠네요)
     명령어를 다음과 같이 넣어 주세요.
       SITE PASSWORD <new_password>
     <new_password>에다 자신이 새로 변경할 패스워드 넣으시면 됩니다.



728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

ioFTPD 사용하기 (1)

기술자료/OS 2004. 8. 11. 20:56
ioFTPD의 설치 방법은 어떻게 보면 무지 어렵고, 어떻게 보면 무지 쉽습니다. 그 만큼 가능한 능력이 넓다는 의미가 됩니다. 다양한 기능과 세부적인 내용으로 들어갈 때 부터 상당히 어렵게 느껴 질 것입니다. 하지만, 간단한 설치 정도라면, 생각보다 쉽게 할 수 있습니다.
그래서 여기서는 Quick Install 수준의 내용으로 서술하죠. 차후 FTP 운영에 자신이 붙어 연구에 연구를 하게 된 후 ioFTP Advanced 과정을 한번 심각하게 고려해보겠습니다. (가능성이.. 좀.. ㅋ)


1. ioFTPD 및 Windows(2000 또는 XP 또는 2003)ResourceKit 에 담긴 Service 관련 파일 받아 놓기.
  -> ioFTPD를 설치하려 준비 했다면 최소한 ioFTP 서버 프로그램 정도는 있을 것입니다. 만일 없다면 ioFTP 공식사이트(http://www.ioftpd.com)에서 다운 받으시면 됩니다.(대개 하나의 zip 파일로 압축되어 있을 겁니다.)
그리고 추가적으로 필요한 것은 Windows Resource Kit 안에 포함된 내용이 필요 합니다. 이 부분은 별도의 Windows Resouce Kit을 설치해서 빼돌리거나, 아니면 다음 강좌에 업로드 했으니, 그거라도 받아서 쓰시기 바랍니다. Resouce Kit에서 필요한 내용은 instsrv.exe, srvany.exe 입니다. 이 파일들은 ioFTPD를 서비스로 등록시키기 위해 필요한 파일들입니다.(이거 없이 하려면, 컴퓨터를 계속 로그인 해서 ioFTPD 프로그램을 실행 시켜줘야 합니다. -_-;;;)

2. ioFTPD 파일 설치
-> ioFTPD 파일의 압축을 풉니다. 압축을 풀면 ioFTPD 라는 폴더 아래에 다양한 폴더와 파일들이 나열 됩니다. 얼핏 보면, 리눅스의 파일 구조 같아 보일 겁니다. 무언가 상당한 포스를 느끼게 하는데, 이에 당황하지 말고 압축을 푼 폴더(ioFTPD 이하 모두) 적당한 위치에 그 내용을 복사(또는 이동)해 주시면 됩니다.
저 같은 경우 C:\ 에 이동시켜서, 지금 C:\ioFTPD 라는 폴더 안에 해당 하는 내용들이 전부 담겨 있답니다.
먼저 ioFTPD의 폴더 구조를 간단하게 살펴보도록 하죠. 설명을 위해서 필요한 내용이니깐 그냥 살펴보는 정도로 아시면 됩니다.(각 폴더의 위치는 제가 설치한 ioFTPD의 위치를 기준으로 삼았으니깐, 혹시나 다른 위치라면 그 위치에 맞게 생각해주세요)

  • c:\ioFTPD/cache : 캐쉬 파일을 담는 곳입니다. 이 폴더는 손댈 필요도 절대 손대서도 안된답니다.
  • c:\ioFTPD/etc :여기에 있는 파일은 다음과 같습니다.
    • UserIdTable : 사용자 내용을 담습니다. 보통 UID(UserID) 정보라고 합니다.
    • GroupIdTable : 그룹에 대한 정보를 담습니다. 보통 GID(GroupID) 정보라고 합니다.
    • default.vfs & admin.vfs : VFS(가상 파일 시스템 : Virtual File System) 설정 파일입니다. 처음에는 간단히 적는 방법을 제시한 예제 내용이 담겨 있습니다.
    • ioftpd.env : ioFTPD에서 사용되는 환경 변수 정의 된 내용입니다.
  • c:\ioFTPD/groups: 그룹 데이터 파일들이 담기는 곳입니다. 파일이름이 GID(Group ID) 입니다.
  • c:\ioFTPD/help : 도움말 파일들입니다.
  • c:\ioFTPD/lib : ioFTPD 동작 기반으로 TCL을 사용하는데, 그 TCL 라이브러리 들이 담겨 있습니다.
  • c:\ioFTPD/logs : Error.log 와 Sysop.log 같은 각종 Log 파일들이 담기는 곳입니다.
  • c:\ioFTPD/site : 처음 설치시에 설정된 사이트 의 초기 root 디렉토리입니다.물론 예제 설정에서 정한 위치일 뿐입니다.
  • c:\ioFTPD/source : 스크립터(기능 확장용 스크립트를 만드는 사람들)에게 유용할 만한 다양한 내용이 담긴 소스들입니다.
  • c:\ioFTPD/system : ioFTPD.exe, ioFTPD.ini, tcl84.dll 같이 실행 및 핵심 파일들이 담긴 곳 입니다.
  • c:\ioFTPD/text : 로그인 할때 보여주는 내용이나 각종 상태 보여줄때 및 명령어 결과 등을 보여줄때 나오는 문서들이 담긴 곳입니다. 여기 있는 내용을 편집해야 ftp 에 접속시보여주는 내용이나 특정 명령어 치면 현재 서버 상황을 보여주는 각종 내용들을 편집할 수 있습니다.
  • c:\ioFTPD/users : User 데이터 파일입니다. 파일이름이 UID(User ID) 입니다.

뭐 대충 위와 같은 구성으로 되어 있는데 일단은 그냥 저렇다는 것만 알아두셔도 대략적인 ioFTPD에 대한 파악을 하는데 나름대로 참고가 될겁니다.

3. VFS (Virtual File System) 파일 손보기
- 왜 이것 부터 해야 되는 지는 잘 모르겠습니다. 단지, 공식 사이트에서 제공하는 Quick Install 에서 이것 부터 먼저 나와 있고, 저 역시 이 부분 부터 먼저 했으니 그냥 하는 겁니다. ioFTPD 설치에 대해 어느 정도 익숙해지면 나름대로 설치에 대한 순서를 결정하셔도 될겁니다. .
먼저, /etc(이후, 경로에 대한 정보는 이렇게 적겠습니다. /etc의 의미는 "설치위치\etc"와 같습니다. 만일 c:\ioFTPD에 설치하셨다면 c:\ioFTPD\etc 와 같겠죠. 이해되시죠?)안에 있는 default.vfs 파일을 텍스트 에디터(메모장이나 에딧플러스 같은)로 안에 있는 default.vfs 를 여세요.
  대략 잡시러운 내용이 몇가지 들어가 있는데, 생초짜 아니시면 직관적으로 무슨 내용을 의미하는지 아실 겁니다. 여러 줄의 내용이 있지만, 한 줄, 한 줄이 각기 독립적인 내용입니다. 그 줄의 형식은 다음과 같을 것입니다.
        "원본_위치"  가상폴더
한줄을 예를 들자면
        "D:\ftp\Data"  /data
이렇게 적혀 있는데, 이 의미는 FTP 상에서 /data라는 폴더가 보이는데 실제 FTP 서버의 "D:\ftp\Data"라는 위치로 연결해 줍니다. 즉 사용자가 FTP 상에서 /data 안에 들어가면 "D:\ftp\Data"위치의 파일들을 볼 수 있게 됩니다.
이 부분을 적절히 편집하면, 여기저기 산재되어 있는 서버내의 폴더들을 FTP안에 묶어 버릴 수 가 있습니다. D 드라이브에 있던 F 드라이브에 있던 아무런 상관이 없어지는거죠.
ioFTPD에서는 로컬 서버내에 있는 하드 디스크만 연결되는 것이 아니고 외부 서버의 공유 폴더도 연결해 줄 수 있습니다. 예를 들자면,
        "\\testpc\share"    /extpcshare
과 같은 형태가 됩니다. 굳이 설명을 하자면, "\\testpc" 의 의미는 LAN 환경에 놓인 컴퓨터(또는 서버) 중 testpc 라는 의미가 되고 나머지 \share는 그 컴퓨터의 공유 폴더 이름을 의미하게 됩니다. \\testpc 와 같은 컴퓨터 이름이 잘 안되면 \\10.10.10.5 처럼 직접 IP 주소를 넣어도 상관 없습니다. 위의 예제 처럼 설정하면, FTP 상에서 /extpcshare 안에 들어가게 되면 \\testpc\share 안의 폴더 내용을 보여주게 됩니다.

4. ioFTPD.ini 설정하기.
-> 이 파일을 열어 보시면 딱 보시면 아시겠지만 일반적인 linux 스타일의 설정파일과 동일 하게 생겼습니다.
   맨 앞에 # 이 붙으면 주석!
   맨 앞에 ; 이 붙으면 해당 세팅을 해제를 하겠다는 의미입니다.
   자 그럼 실제 필요한 세팅 일부분만 해결해서 넘어가도록 하죠.
  4-1. DEVICE 설정
    -> 일반적인 상황이라면 처음 설정된 내용을 그대로 사용할 수 있습니다. 하지만 그것인 그냥 일반적인 상황일때 만 가능한 이야기 입니다. 만일 방화벽이나 공유기를 사용하고 있다면 다르게 설정할 필요가 있습니다.
       먼저 Device default 설정을 보시도록 하죠.
    [ANY]
    host = 0.0.0.0    <-   어떠한 IP간에 연결이 되는 어떤 IP 주소도 연결을 허락하는 의미죠.
    port = 1024-2048 <-  FTP포트를 의미하는 것은 아니고 FTP의 데이터를 송/수신 할때 쓰는 Port 번호죠. FTP 신호를 기다라는 포트와는 다르게 오로지 데이터 송/수신 하거나 Passive Mode 를 할때 사용합니다.
     Random = True <- 위의 포트 설정이 범위로 되어 있다면 그 포트 중 암것이나 하나 잡아서 들어간다는 것입니다.
  
   서버가 외부에 바로 노출되어 있다면 그냥 저렇게 써도 되지만, 만일 방화벽 안에 들어가 있다던가 공유기를 쓰고 있다면 몇가지를 다르게 설정하셔야 됩니다. 먼저 port 부분에서 저렇게 범위로 적지 말고 특정 포트를 하나 잡아 번호를 잡아 넣으셔야 됩니다. 뭐.. 적당히 1111 이라고 해도 좋고.. 9898 이라고 해도 좋고.. 자신이 좋을대로 하세요. 중요한 것은 하나의 포트로 잡아야 된다는 것입니다.
그리고 Random 부분에서도 단일 포트로 쓰기 때문에, 그냥 False 하세요.

   4-2. SERVICES 설정
    - 간단하게 하기 위해서 FTP_Service 만 다릅니다. 나머지 설정은 나중에 계속 다룰께요.
     [FTP_Service]
     Type = FTP
     Device_Name = Any <-- 위에서 사용하려고 적은 DEVICE이름을 적으면 됩니다. 저 위의 [Any]인 경우 옆처럼 Any를 적으면 됩니다.
     Port = 9999 <-- 이 부분이 FTP 접속을 위한 Port 번호 입니다.
     Description = My FTP Service  
     User_Limit = 10 <-- 최대 동시 접속 사용자 수를 정합니다.
     Allowed_Users = *
     Messages = ..\text\ftp
     Require_Encrypted_Auth = !* <-- "!*",  이 단순 무식한 내용을 해석하자면 * 니까 모두의 의미고 앞에 ! 붙었으니 그 반대라는 의미입니다. 즉 아무도 암호화 된 인증은 안한다는 의미입니다.
     Require_Encrypted_Data = !*
     ;Certificate_Name = 192.168.1.11 <--SSL 인증서 CN 이름; 인증서 따위가 없으면 반드시 주석 처리를 합니다.
     Explicit_Encryption = True
     Encryption_Protocol = SSL3
     Min_Cipher_Strength = 128
     Max_Cipher_Strength = 384
     ;Get_External_Ident = False <-- True/False. 바운서 지원여부
     ;Data_Devices = <-- 트래픽 조정용 DEVICE 설정용
     ;Random_Devices = False <-- True/False. Data_Device를 랜덤하게 설정하게 할지 여부

뭐... 중요한 내용은 별로 없어서, 그냥 막넘어가고 공식 홈페이지에서 적힌 내용거의 그대로 넣었습니다. 뭐 거의 디폴트로 나두시면 되구요, 그냥 포트 번호만 바꿔주세요.. 보통 FTP는 21번 쓰니까, 21번 하시면 될겁니다.


더 자세한 설정 내용은 나중에 언급하도록 하죠....
728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

ioFTPD 사용하기 (0)

기술자료/OS 2004. 8. 11. 18:25
ioFTPD 는 친구를 통해서 소개 받았다.
처음에는 Windows안에 있는 FTPD를 돌렸는데, 계정문제로 결국 포기. Windows 계정과 FTP계정과의 분리가 전혀 어렵기에 포기하게 되었다.
그 다음에는 RadenFTPD 라는 프로그램이다 .현재도 돌고는 있는데, 관리의 귀차니즘으로 인해 포기 상태다. 환장하겠다. 이따위가 있는지 원... 하여간, 일단 당장 대체할 수 있는 FTP가 없어서 당장은 사용중이다.


그리고 난뒤 이 FTPD를 소개 받은 것이다.
일단 모든 것이 Service 기반으로 작동하고 설정은 Linux 처럼 Text 기반으로된 설정 파일로 작동한다.
물론 Windows에서는 GUI로 작동하는게 최고라 할 수 있겠지만, FTP 같은 서비스에서는 그런 것은 불필요하다.
특히나 원격으로 제어해야 할려면, 무척이나 번거러운 일이 될 수 있는 일이다.
게다가, ioFTPD에 각종 플러그 인이 있다. 기본적인 FTP기능외에 각종 설정이나
계정 정리 등을 손쉽게 처리해 주거나 스크립트등을 지원하는 기능을 의미한다.
단순 FTP에서 다양한 기능의 복합 FTP가 탄생할 수 있는 것이다.



이에 ioFTPD를 도전한 것이고 그 ioFTPD를 설치하는데 있어
무언가 상당히 낯설은 몇가지 설정들이 있었기에 기록한다.
후에 추가적으로 알아낸 부분이 생기면 그에 따라 업데이트를 할 예정이다.

ioFTPD의 공식 홈페이지는 http://www.ioftpd.com 이다.

준비할 사항은 이 곳에서 ioFTPD를 받아야 한다.
그 위치는 http://www.ioftpd.com/download/ 에서 Complete Package를 받으면 된다.
그리고 서비스로 작동하기 위해서는 해당 윈도우의 리소스 킷 안에 있는 instsrv.exe 와 srvany.exe 가 있어야 한다.
먼저 Windows 2K용으로는 업로드 한 system.zip 안에 있고
XP나 Window2K3 용은 rktools.exe 를 설치하고 난뒤 설치된 위치에서 위의 파일을 찾아 내서 적당한 곳에 따로 보관한다.

모든 준비가 완료 되었으면 실제적인 설치작업을 시작할 수 있다.
728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

DLL 리소스 전환 방법

기술자료/CPP 2004. 8. 4. 19:38

아래의 글은 제가 작성한 것이 아닙니다. 데브피아의 Q/A에서 발췌한 것으로써,
아직 제 머릿속이 정리가 안되 임시적으로 올린 것입니다.
이 내용이 정리되면 제가 다시 쓰겠습니다.


DLL에서 리소스를 사용할 때 흔히 발생하면서도 아주 고약한 문제중 하나입니다.
다음과 같은 전용 클래스를 만들어서 사용하시면 사용하기도 편하고 문제도 간단히 해결됩니다.



    
//=======================================================================
// XTDLLState.h 파일
//=======================================================================
#ifndef __EXTDLLSTATE_H__
#define __EXTDLLSTATE_H__
class CEXTDLLState  
{
public:
CEXTDLLState();
    virtual ~CEXTDLLState();
protected:
    HINSTANCE m_hInstOld;
};

//extern static AFX_EXTENSION_MODULE TextEffectDllDLL; #endif // !defined(AFX_EXTDLLSTATE_H__300ABF7E_3541_4AE3_8080_978EA6E1399D__INCLUDED_)

//======================================================================= // XTDLLState.cpp 파일 //======================================================================= #include "stdafx.h" #include "EXTDLLState.h" CEXTDLLState::CEXTDLLState() {    CString strDll;    // FCubic Common DLL 연결 #ifdef _DEBUG    strDll = _T("MyDll_d.dll");        // 디버그용으로 생성한 Dll 이름 #else    strDll = _T("MyDll.dll");            // 릴리즈용으로 생성한 Dll 이름 #endif

  m_hInstOld = AfxGetResourceHandle();   AfxSetResourceHandle( ::GetModuleHandle(strDll) ); }

CEXTDLLState::~CEXTDLLState() {   AfxSetResourceHandle(m_hInstOld); }


위와 같이 간단한 클래스를 만드세요.
단 "MyDll_d.dll" 과 "MyDll.dll" 부분을 자신의 Dll 이름으로 바꾸세요.
보니까 님께서는 대화상자 리소스를 쓰려고 하시는 것 같은데요..
이런 경우엔 대화상자 클래스에서 DoModal()을 오버라이딩해서 함수를 만들고 그안에 다음과 같이 코딩해 보세요.

// 헤더를 추가
#include "EXTDLLState.h"
// DoModa() 함수 오버라이딩
int CMyDlg::DoModal()
{
   // 서로 다른 DLL이 각각의 리소스를 올바로 사용하기 위해
   // DoModal() 이 호출될때 CEXTDLLState 클래스의 인스턴스를 생성하고
   // DoModal() 함수가 종료될때 CEXTDLLState 클래스가 소멸하면서 리소스 연결처리를 자동으로 해준다.
   // 자세한 처리는 CEXTDLLState 클래스의 생성자와 소멸자를 참고한다.
   CEXTDLLState State;
   return CDialog::DoModal();
}

단지 위CEXTDLLState의 인스턴스인  State를 정의함으로써 자동으로 리소스를 연결하고 해제하도록 해줍니다.
이유는 생성자와 소멸자의 호출 메카니즘에 의해서이죠...
그럼 즐프하세요... ^^

728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

PDA용 홈페이지나 만들어야 하겠다.

잡글 2004. 7. 8. 00:57
처음 홈페이지를 만든 계기는 단순히 나만의 공간을 만드는데 그 주안점을 두었다.
그래서 처음에는 단순하게 제로보드 띄우기에 중점적으로 했다.
이렇게 저렇게 보다가 어느새 단순 띄우기에서 실험적인 자세로 들어갔다.
그래서 탄생한 것이 지금 홈페이지이고, Wiki라는 연습장 스타일의 글판,
게다가, 블로그 까지 접목시킨 제로보드 스킨까지...

그런데, 얼마전 마련하게된 PDA때문에 이젠 PDA 전용 홈피제작이 갑자기 필요해졌다.
제한된 해상도에 자바스크립트를 지원하지 않는 문제를 해결할 수 있는 그런 홈피 말이다.
현재 이 홈피에서는 각 제목별로 자바스크립을 사용하고 있는데, 그 부분을 없애고
작은 해상도에서 효율적으로 표현할 수 있으면 되지 않을까 생각된다.
DB는 호환되고 페이지만 별도로 운영되려면 어떻게 해야 할까?
스킨이 다른 페이지가 되는 건가? 모르겠다.
어떻게든 탄생을 시켜봐야 겠다.
되든 안되든....
앗.. 그럼 제로보드 하나 더 설치해야 되는 건가? 하....핫...
728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

선장이 할일과 항해사가 해야 할일.

잡글 2004. 6. 23. 13:27
배가 움직일때 두명의 역할은 배의 생명과 결부될 만큼 중요하다.
먼저 선장은 모두의 기둥적인 역할로 망망대해에서 정신적인 지주로써 움직여야 하고..
항해사는 그 때 그 때의 항해의 내용에따라 움직여야 하는 것이다.
전쟁으로 본다면 선장은 전략, 항해사는 전술을 담당하는 것이다.
이는 배라는 비유물을 대상으로 이야기하는 것이지만,
조직체라면 당연히 가지고 있는 습성이지 않을까 조심스럽게 말한다.
큰 노선을 그려주면 그 세부 항목을 잡고 나가는..
하지만 간혹 사람들은 선장의 역할과 항해사의 역할을 망각한다.
항해사 보고 선장의 일까지 떠맡겨져 어디로 갈지까지 결정하게 되거나
선장이 항해사 일까지 보면서 지금 어디로 가는지도 대충, 순간순간 벌어지는 일도 대충 결정하게 된다.

둘중 하나만으로만 되도 금새 배안은 어수선하게 변해간다. 무엇을 해야 할지 무엇을 어떻게 해야 할지 모른채
표류한다. 우연히 섬이나 항구에 도착하면 다행이지만 그것이 과연 잘한 것인지 따윈 전혀 알 수 없게 된다.

내가... 지금 그 꼴인듯 싶다.

난, 선장인가? 아니면 항해사인가?
728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

X301용 64화음 원음벨 만들기

기술자료/모바일 2004. 6. 22. 02:35
http://www.pointpda.com/ 에서 Taro님의 강좌를 불펌합니다. 걸리면.. 작살이겠죠 -_-;

만드는법 :

1. 아래와 같은 프로그램을 모읍니다.
WinAmp (가급적 풀버젼) - 설치해서 Plug-in에 "Nullsoft Disk Writer plug-in" 있어야 합니다.
ATS-MA5-SMAF - 첨부된 파일입니다. 이 역시 승인 받지 않은 불펌 자료입니다.
wav2smf - 첨부된 파일입니다. 이 역시 승인 받지 않은 불펌 자료이죠.
MP3 편집기 - 링크를 따라 가시면 됩니다.

위의 프로그램이 전부 생겼으면 변환을 할 MP3를 Winamp로 틉니다.
그리고 볼륨이 크다고 판단되면



728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

X301 용 Wav 제작방법

기술자료/모바일 2004. 6. 22. 00:49
Winamp를 준비한다. 가급적 Full Version 을 마련한다.

1. Plug-in 설정에 들어가 output을 설정한다.
2. output에서 보면 "Nullsoft Disk Writer plug-in ...." 라는 플러그 인이 있을 것이다. 이를 선택하고 "설정" 또는 "Configure"를 누른다.
3. Covert to format를 체크하고 바로 아래쪽의 Edit 창 옆의 "..." 버튼을 누른다.
4. Format은 PCM, Attributes 에서는 "11.025kHz 16Bit Mono 21kb/sec" 을 선택한다.
5. 확인을 누른다.
6.아까 Edit 창을 보고 현재 설정이 "PCM 11,025kHz, 16Bit, Mono"로 되어 있는지 확인한다.
6. 모든게 완료 되었으면 확인을 누르고 설정창도 닫는다.
7. 변환을 원하는 곡을 PlayList에 넣는다.
8. 연주 시작 버튼을 눌러 연주를 한다. (소리는 안나온다)
9. C:\에 보면 파일이 생성되었음을 볼 수 있다.
10. Plug-in 설정을 원래대로 변경한다. ( "Nullsoft Disk Writer plug-in ...." 라는 플러그 인 외에 다른 플러그 인을 선택한다.)

....
728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

  • «
  • 1
  • ···
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • ···
  • 156
  • »
250x250

블로그 내에 소스 코드 삽입 이사온 기념 스킨도... RSS 전문 기능 비활성화 관련. 스킨 바꾸어 보았습니다. 서버 파일 정리 좀 했습니다.

«   2025/06   »
일 월 화 수 목 금 토
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

WSS 블로그 twi2me me2sms 불만 수 Buscuit java 좀 me2dayzm 협업 지름신 오류 e-book windows 친구 인터파크 것 개발환경 SharePoint Visual Studio MOSS 2007 Azure moss 매뉴얼 me2photo Tutorial Google Apps Engine 2010 비스킷

  • Total :
  • Today :
  • Yesterday :

Copyright © 2015-2025 Socialdev. All Rights Reserved.

Copyright © 2015-2025 Socialdev. All Rights Reserved.

티스토리툴바