पर प्रबंधित प्रतिनिधि मैं प्रबंधित सी ++ (सी ++/सीएलआई) से फ़ंक्शन पॉइंटर को एक अप्रबंधित विधि में कैसे पास करूं? मैंने कुछ लेख पढ़े, जैसे this one from MSDN, लेकिन यह दो अलग-अलग असेंबली का वर्णन करता है, जबकि मुझे केवल एक चाहिए।सी ++/क्ली पास (प्रबंधित) अप्रबंधित कोड
1) हैडर (MyInterop.ManagedCppLib.h):
#pragma once
using namespace System;
namespace MyInterop { namespace ManagedCppLib {
public ref class MyManagedClass
{
public:
void DoSomething();
};
}}
2) सीपीपी संहिता (MyInterop.ManagedCppLib.cpp)
#include "stdafx.h"
#include "MyInterop.ManagedCppLib.h"
#pragma unmanaged
void UnmanagedMethod(int a, int b, void (*sum)(const int))
{
int result = a + b;
sum(result);
}
#pragma managed
void MyInterop::ManagedCppLib::MyManagedClass::DoSomething()
{
System::Console::WriteLine("hello from managed C++");
UnmanagedMethod(3, 7, /* ANY IDEA??? */);
}
मैं
यहाँ मेरी कोड है मेरे प्रबंधित प्रतिनिधि को बनाने का प्रयास किया और फिर मैंने Marshal::GetFunctionPointerForDelegate
विधि का उपयोग करने की कोशिश की, लेकिन मैं संकलित नहीं कर सका।
क्या आप कोड पोस्ट कर सकते हैं, जिसमें आपने GetFunctionPointerForDelegate का उपयोग किया था? – Simon