使用回电函数C#C 中的DLL
Using Call Back Function C# delegate dll in C++
使用回电函数C#委托DLL在C
中但是我有一个错误我无法修复它?
这是我的C#代码
public delegate void Callback_Calc(int nResult);
[Guid("180726E3-7185-4224-BF27-3A7A60E5D1A7")]
public interface ICal
{
int Add(int a, int b);
void Add_Callback(int a,int b,IntPtr Callback_Result);
}
[Guid("9FF07EDD-8DEE-4CCA-9BDF-2C753F7717AC")]
public class Calc : ICal
{
public int Add(int a, int b)
{
return (a + b);
}
public void Add_Callback(int a, int b, IntPtr Callback_Result)
{
int sum = a + b;
Callback_Calc func = (Callback_Calc)Marshal.GetDelegateForFunctionPointer(Callback_Result, typeof(Callback_Calc));
func(sum);
}
}
这是我的C 代码
extern "C" void __stdcall callback_func(int nResult);
void __fastcall TForm2::btn2Click(TObject *Sender)
{
ICal *m_Calc;
HRESULT hr = CoInitialize(NULL);
hr = CoCreateInstance(CLSID_Calc,NULL,CLSCTX_INPROC_SERVER,IID_ICal,reinterpret_cast<void**>(&m_Calc));
if(FAILED(hr))
{
CoInitialize(NULL);
}
int a = m_Calc->Add(2,5);
lbl1->Caption = a;
m_Calc->Add_Callback(10,10,(_Callback_Calc *)callback_func);
CoInitialize();
}
extern "C" void __stdcall callback_func(int nResult)
{
int a = nResult;
int b = nResult;
}
这是我的C 错误代码
[C 错误] ComputadDtest.cpp(55):E2034无法转换 '_callback_calc *'to'long'[C 错误] ComputadDtest.cpp(55):E2342 在参数" callback_result"中键入不匹配(想要的'long', '_callback_calc *')[C 错误] ComputAddtest.cpp(56):E2193太少 呼叫" __STDCALL COINITIALIAME(void *)'
的参数
谢谢
您的Add_Callback
功能需要指向该功能的指针。因此在线:
m_Calc->Add_Callback(10,10,(_Callback_Calc *)callback_func);
您需要将第3个参数更改为callback_func
的指针。
相关文章:
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- .cpp和.h文件中的模板专用化声明
- 反向给定链表中的K节点
- 正在查找文档以获得PS4平台的C++中的设备信息
- enum是C++中的宏变量还是整数变量
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 将字符串存储在c++中的稳定内存中
- 文本文件中的单词链表
- 递归函数计算序列中的平方和(并输出过程)
- 如何从C++中的依赖类型中获得它所依赖的类型
- C++中的"inline"关键字
- 如何运行位于boost/libs/python/example/tutorial目录中的hello.cpp和Jamfil
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 用C++中的一个变量定义一个常量
- vector.resize()中的分配错误
- 使用指针从C++中的数组中获取最大值
- arr[-1]在c++中的奇怪行为
- 具有奇怪重复模板模式的派生类中的成员变量已损坏
- 将值指定给向量(2D)的向量中的某个位置
- 内置函数可查看CPP中的成员变量