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 프로퍼티에서만 오류가
발생하면서 객체가 죽어 버립니다.
원인을 알 수 있을까요??
|