C++로 되어있는 COM 소스를 델파이로 변환하여 개발하려고 하는데요. 델파이로 변환했을 때, 특정함수로 아예 들어가질 않는것 같습니다.
문제의 함수 C++의 함수 원형은 다음과 같습니다.
<!--CodeS-->
STDMETHODIMP CMCTP_PluginExample::get_BrokerSymbolName(/*[in]*/ MTPA_MCSymbolInfo MCSymbolInfo, /*[out, retval]*/ BSTR* pBrokerSymbolName)
<!--CodeE-->
이것을 델파이로 변환했을때,
<!--CodeS-->
function Get_BrokerSymbolName(MCSymbolInfo: MTPA_MCSymbolInfo; out BrokerSymbolName: WideString): HResult; safecall;
<!--CodeE-->
이렇게 바꿨습니다.
그런데 문제는 디버깅을 해보면 함수 안으로 아예 들어가지도 않는것 같습니다.
정말 간단하게 다음과 같이 메세지 박스만 뿌려주는 코드만을 넣었는데도, 아무런 메세지도 뜨질 않습니다.
<!--CodeS-->
function TCxTradingPlugin.Get_BrokerSymbolName(
MCSymbolInfo: MTPA_MCSymbolInfo; out BrokerSymbolName: WideString): HResult;
begin
ShowMessage('Start_Get_BrokerSymbolName');
try
BrokerSymbolName := MCSymbolInfo.SymbolName;
ShowMessage('Get_BrokerSymbolName');
except
ShowMessage('Get_BrokerSymbolName except');
end;
end;
<!--CodeE-->
이런 경험이 있거나 해결방법을 아시는분은 답변좀 부탁드릴께요..
그리고 한가지 더.. 추가 질문 드립니다.
<!--CodeS-->
STDMETHODIMP CMCTP_PluginExample::SerializeConnectionParams(VARIANT Val, OUT SAFEARRAY** Stream)
STDMETHODIMP CMCTP_PluginExample::DeSerializeConnectionParams(IN SAFEARRAY* Stream, OUT VARIANT* pVal)
<!--CodeE-->
C++에서 위와 같은 함수 원형이 있다면 델파이에서는 어떻게 변환해야 하나요??
저는 아래와 같이 변환했는데, 아무래도 저게 틀린건 아닌가 싶기도 해서 여쭤봅니다.
<!--CodeS-->
function SerializeConnectionParams(Val: OleVariant; out Stream: PSafeArray): HResult; safecall;
function DeSerializeConnectionParams(Stream: PSafeArray; out Val: OleVariant): HResult; safecall;
<!--CodeE-->