独自の 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*
。または、それが必要な場合は?
さらに情報が必要な場合は、教えてください。