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*参数,但我不知道如何将 a 附加MyDLL::_MyDelegate*到函数。或者如果这甚至是必要的?

如果需要更多信息,请告诉我。

4

0 回答 0