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
[20006] [재질문] Re:[질문]메소드를 호출했는데 리턴값이 변하지 않는 이유....
마법감자 [magicptt] 794 읽음    2002-07-11 09:54
에..  생성부 내용이 이상하네요.

: TSdpService p_service = TSdpService(Owner);

이부분 말인데..

-> TSdpService service = TSdpService(Owner);

은 맞는지 모르겠지만..(저렇게 써본적이 없어서 ^^; 근데 해보니까 되는군요)

: 근데 p_service->AddServiceClassIdList(&service_guid, &sdp_return); 라는 메소드를 호출하면

라는 구절을 보면 포인터로 사용을 하셨네요.
그렇다면 생성부는..

-> TSdpService *p_service = new TSdpService(Owner);
-> TSdpService service(Owner);

등이 되어야 할것 같습니다.
저 위에 생성부가 틀렸다기 보다는.. 질문 아래서는 저 변수를
포인터로 접근 하기에 의문이 생겨서 질문 드립니다.

끝내 해결 안되시면 메신저로 메세지 주세요
(ICQ : 16017510 / MSN : magicpotato@magicpotato.com)




심심산천 님이 쓰신 글 :
: 저번에 질문을 해놓고선 스스로도 애매모호해서 정확히 원인을 알아낸 다음,
: 글을 올리게 됬습니다.
:
: 예를 들어 설명하면,
: TSdpService p_service = TSdpService(Owner);
: (TSdpService클래스는 project->importlibrary로 import한 dll의 클래스 중 하나입니다.)
:
: 근데 p_service->AddServiceClassIdList(&service_guid, &sdp_return); 라는 메소드를 호출하면
: 디버깅상으로 문제가 없는 것 같은데 실제 ServiceClassIdList를 추가하지도 않고 리턴값도 변하지 않고 초기값을 그대로 리턴합니다..
: (여기서 리턴값은 변수 sdp_return입니다.)
: 그리고, 매개변수에 잘못된 값을 넣어도 에러도 안나고 그냥 초기값을 리턴합니다.
:
: 만약 p_service가 생성이 안되었다면 호출을 못할텐데, 이미 생성도 됐고 호출하는 것처럼 디버깅
: 루틴을 다 타면서 결과는 호출안한 것과 같습니다.
:
: vc에서는 똑같이 해도 잘 돌아가는데 유독 bcb에서는 이러는 이유를 모르겠네요..
:

+ -

관련 글 리스트
19985 [질문]메소드를 호출했는데 리턴값이 변하지 않는 이유.... 심심산천 810 2002/07/10
20006     [재질문] Re:[질문]메소드를 호출했는데 리턴값이 변하지 않는 이유.... 마법감자 794 2002/07/11
20010         Re:문제는 dll쪽 이었어요.. 심심산천 789 2002/07/11
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.