C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[41009] Re:Re:dos 용 FP_SEG ,FP_OFF 를 어떻게 window용으로 바꿀수 있을까요?
이윤성 [grin79] 1134 읽음    2005-07-13 13:50
조언 감사 드립니다. far 포인터는 지우면 되는데...
여기서 인자값을 받는게 있어서 문제가 생기고 있습니다.
int OurDonglePresent (void)
{
    int far        *iptr = (int far *) DongleByte;

    p1 = 0;                         // Start Addr
    p2 = 56;                         // Block Length (in Words)
//
    p3 = FP_SEG (iptr);             // Buffer Segment
    p4 = FP_OFF (iptr);            // Buffer Offset
   
    offset1_1 = uVal1_1;
    offset1_2 = uVal1_2;
    offset2_1 = uVal2_1;
    offset2_2 = uVal2_2;

    hasp (GET_HASP_STATUS, SeedCode, LptNum,
            GetPass1 (), GetPass2 (), &p1, &p2, &p3, &p4);

    return (p1 == 1) && (p2 == 1) && (p3 == 1);
}

이분분에..되있어서요...
저기 p3 랑 p4 에 어떤 값을 넣을지 모르겠더군요..
hasp 란 함수는 라이브러리로 되어 있는거 같은데..
far hasp (int,int,int,int,int,int far *,int far *,int far *,int far *);
이런 인자들이 들어 가는거 같더군요... 물론 저기 far 부분은 삭제 해도 되지만....
해당 여기에 무엇을 넣을지 고민됩니다.


황경록 님이 쓰신 글 :
: -.0
:
: 32bit 프로그래밍에서는 far 포인터는 의미가 없습니다.
: 모든 포인터가 32bit 형이기 때문이죠.
:
: 참고적으로 far 포인터는 16 비트 세크먼그 먼트 주소 + 16 비트 옵셋으로 구성되는데
:
: 이를 염두하여 컨버팅 하시면 되겠습니다.
:
: 어떤 부분인지 모르겠지만... 그냥 무시하시면 되겠습니다.
:
: 이윤성 님이 쓰신 글 :
: : 우연히 도스용 프로그램을 윈도우용으로 바꾸게 되었는데..
: :  FP_SEG ,FP_OFF  이거 변환 부분에서 막히네요..
: :  이걸 윈도우용으로 바꿀려면 어떻게 바꾸어야 할지 조언 부탁 드립니다.
: :
: :
: :  FP_SEG() 에 대해서 찾아 보았습니다.
: :
: :  FP_SEG()                Get or Set Segment Portion of a Far Pointer (Macro)
: :
: :  #include   <dos.h>
: :
: :  unsigned   FP_SEG(longptr);
: :  void far   *longptr;                    Long pointer to memory address
: :
: :     FP_SEG() gets or sets the segment portion of the far pointer
: :     'longptr'.
: :
: :        Returns:     An unsigned integer representing a segment address.
: :
: :          Notes:     FP_SEG() is a macro.
: :
: :    Portability:     MS-DOS only.
: :
: :    -------------------------------- Example ---------------------------------
: :
: :     The following example gets the segment and offset portion of a far
: :     pointer and increments the offset by one.
: :
: :            #include <dos.h>
: :
: :            char far *ptr;
: :            unsigned int seg_val, off_val;
: :
: :            main()
: :            {
: :                seg_val = FP_SEG(ptr);
: :                off_val = FP_OFF(ptr);
: :                FP_OFF(ptr) = ++off_val;
: :                printf("%04x:%04x",seg_val,off_val);
: :            }

+ -

관련 글 리스트
41006 dos 용 FP_SEG ,FP_OFF 를 어떻게 window용으로 바꿀수 있을까요? 이윤성 1118 2005/07/13
41007     Re:dos 용 FP_SEG ,FP_OFF 를 어떻게 window용으로 바꿀수 있을까요? 황경록 1191 2005/07/13
41009         Re:Re:dos 용 FP_SEG ,FP_OFF 를 어떻게 window용으로 바꿀수 있을까요? 이윤성 1134 2005/07/13
41012             Re:Re:Re:dos 용 FP_SEG ,FP_OFF 를 어떻게 window용으로 바꿀수 있을까요? evergreen 1079 2005/07/13
41015                 Re:Re:Re:Re:dos 용 FP_SEG ,FP_OFF 를 어떻게 window용으로 바꿀수 있을까요? 이윤성 1005 2005/07/13
41021                     Re:Re:Re:Re:Re:dos 용 FP_SEG ,FP_OFF 를 어떻게 window용으로 바꿀수 있을까요? evergreen 924 2005/07/13
41027                         Re:Re:Re:Re:Re:Re:dos 용 FP_SEG ,FP_OFF 를 어떻게 window용으로 바꿀수 있을까요? 이윤성 978 2005/07/13
41011             Re:Re:Re:dos 용 FP_SEG ,FP_OFF 를 어떻게 window용으로 바꿀수 있을까요? 방태윤 956 2005/07/13
41013                 Re:Re:Re:Re:dos 용 FP_SEG ,FP_OFF 를 어떻게 window용으로 바꿀수 있을까요? 황경록 939 2005/07/13
41014                     Re:Re:Re:Re:Re:dos 용 FP_SEG ,FP_OFF 를 어떻게 window용으로 바꿀수 있을까요? 이윤성 879 2005/07/13
41017                         Re:Re:Re:Re:Re:Re:dos 용 FP_SEG ,FP_OFF 를 어떻게 window용으로 바꿀수 있을까요? 황경록 921 2005/07/13
41018                             Re:Re:Re:Re:Re:Re:Re:dos 용 FP_SEG ,FP_OFF 를 어떻게 window용으로 바꿀수 있을까요? 이윤성 933 2005/07/13
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.