我一直在尝试让我自己的 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*
参数,但我不知道如何将 a 附加MyDLL::_MyDelegate*
到函数。或者如果这甚至是必要的?
如果需要更多信息,请告诉我。