在WindowsRT/Metro中,如何将ref ^指针转换为原始指针?如何将ref ^指针转换为原始指针?
比如,我想通过传递指针的控制,以一个老C风格的回调,其预计参数是void*
:
// this = type derived from Windows::UI::Xaml::Controls::Page
SetCallback(this);
但是,我得到一个错误:
cannot convert parameter 1 from 'MyProject::MainPage ^const ' to 'void *'
如何将MainPage
转换为原始指针(无C风格/ reinterpret_casts)?
'reinterpret_cast'的评论是因为我的印象是'reinterpret_cast'只用于不相关的类型,如果它们不相关,在使用它之前应该考虑三次。我第一次尝试'static_cast'但显然不起作用。谢谢。 –
好的,这是有道理的。 :-)在这种情况下,'reinterpret_cast'是正确的答案。 –
请注意,这仅仅支持'T ^'到'T *',如果你将'Canvas ^'重新编译为'ICanvas *',你可能会遇到麻烦,你必须先安装safe_cast/static_cast'Canvas ^'到'ICanvas ^',那么你可以把'ICanvas ^'重新解释为'ICanvas *'。 –