0

独自の C# API (DLL) を C++11 で動作させようとしています。私の API は、必要に応じて特定のイベントを発生させます。これらのイベントは、API 全体の鍵です。

今度は、C++ と組み合わせて動作させるように依頼されたので、次のチュートリアルに従いました: http://support.microsoft.com/kb/828736 すると、すべてうまくいきました。行き詰まるまで。

(これは私の問題を単純化するためのテストコードであることに注意してください。私はそれが無限のwhileループであることを知っています。シグナルを使用して自分のバージョンで修正しました)

#include "stdafx.h"
#include "tchar.h"
#include <signal.h>
#import "C:\Users\Enzo\Documents\visual studio 2012\Projects\MyDLL\MyDLL\bin\Debug\MyDLL.tlb" raw_interfaces_only
using namespace MyDLL;

bool run = true;

int _tmain(int argc, _TCHAR* argv[])
{
    // Initialize COM.
    HRESULT hr = CoInitialize(NULL);
    IFooPtr foo(__uuidof(Foo));

    // hook the handler to the event
    foo->add_Bar(/*No idea what goes here, in my opinion it should be the function to call when the event is triggered.*/);

    while(run);

    // Uninitialize COM.
    CoUninitialize();

    return 0;
}

私のfoo->add_Bar(MyDLL::_MyDelegate* value)C#DLLから来ています(私は思う):

namespace MyDLL
{
    public delegate void MyDelegate();

    public interface IFoo
    {
        event MyDelegate Bar;
    }
}

しかし、私はそれをどうするかわかりません。パラメータが必要ですが、関数にアタッチMyDLL::_MyDelegate*する方法がわかりませんMyDLL::_MyDelegate*。または、それが必要な場合は?

さらに情報が必要な場合は、教えてください。

4

0 に答える 0