C++:
struct Data
{
int id;
int age;
const char* name;
Data(int id, int age,const char* name) {
this->id = id;
this->age = age;
this->name = name;
}
};
typedef void(__stdcall* cb)(Data data);
extern "C" _declspec(dllexport) void SetCallback(cb callback) {
const char* name = "test";
Data d(1,23, name);
callback(d);
delete name;
}
C#:
public delegate void callback(Data data);
internal class Native
{
[DllImport("Native.dll")]
public static extern void SetCallback(callback callback);
}
public struct Data{
public int id;
public int age;
public string name;
}