私は一つの小さな問題を解決しようとしています。標準 C++ で記述されたライブラリと、C++/CX を使用する Windows Phone 8 用の新しいアプリケーションがあります。古いライブラリ オブジェクトをインスタンス化し、C++/CX から古いメソッドを呼び出すことはできますが、古い C++ から新しい C++/CX メソッドにアクセスする必要もあります。
問題は、新しいアプリのクラスが「ref class Renderer seal 」を使用していて、そのポインタを渡してそのファイルを古い C++ コードにインクルードできないことです。私はそのようなことをする必要があります:
C++/CX で記述されたアプリケーションのメイン オブジェクト
void function(){
Renderer^ m_renderer = ref new Renderer();
MyOldLib * m_lib = new MyOldLib();
m_lib->setLink(m_renderer); // <-- I cannot pass parameter becouse ordinary reference is not allowed
}
標準 C++ で書かれた古いライブラリ
#include "Renderer.h" // <-- I cannot include becouse Renderer.h needs /ZW parameter
void MyOldLib::setLink(Renderer& renderer){
m_renderer = renderer;
}
ご協力ありがとうございました
更新: 拡張疑似コード