在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 *'。 –