|
에.. 생성부 내용이 이상하네요.
: 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에서는 이러는 이유를 모르겠네요..
:
|