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
[75715] 스마트 포인터 사용 방법???
나그네 [] 2228 읽음    2019-12-05 16:31
AsyncPro 에서 제공되는 시리얼 통신 컴포넌트를 동적으로 생성시켜 사용하려고 합니다.

일단 new 를 이용한 객체 생성에서는 정상적으로 잘 작동합니다.

TApdComPort* mCommPort = new TApdComPort(null) ;
mCommPort ->ComNumber = 1 ;
mCommPort -> Open = true ;        <- 정상적으로 포트 열림

그런데 이걸 스마트 포인터를 이용해서 생성했을 경우

shared_ptr<TApdComPort>mCommPort  = make_shared<TApdComPort>(nullptr) ;
mCommPort->ComNumber = 1 ;
mCommPort->Open = true ;             <-- 에러 발생하고 객체의 주소가 없어짐(자동으로 delete 된 느낌)

shared_ptr 를 사용하려는 이유는 이 객체를 다른 객체 여러개가 공유해서 사용하려고 하기 때문입니다.
생성된 객체 mCommPort의 다른 Property 들에서는 오류가 발생하지 않는데 Open 프로퍼티에서만 오류가
발생하면서 객체가 죽어 버립니다.

원인을 알 수 있을까요??

+ -

관련 글 리스트
75715 스마트 포인터 사용 방법??? 나그네 2228 2019/12/05
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.