관리되는 System.Action을 C++/CLI 프로젝트 내부의 관리되지 않는 std :: function으로 변환하고 있습니다. 콜백을 사용한 후에 주어진 IntPtr을 공개해야합니까, 아니면 불필요한가요?Marshal :: GetFunctionPointerForDelegate : 결과를 공개해야합니까?
void MyClass::Execute(System::Action^ callback)
{
IntPtr callbackPtr = Marshal::GetFunctionPointerForDelegate(callback);
std::function<void (void)> nativeCallback = static_cast<void (__stdcall *) (void)>(callbackPtr.ToPointer());
m_nativeObject->Execute(wrappedCallback);
// should I release callbackPtr here?
}
m_nativeObject-> Execute (wrappedCallback)가 동기이면? – Notoriousxl
실이 하루를 망칠 것입니다. 글쎄, 주. –