用VS2008,写了一个小的测试程序,用于在C#与C++之间进行数据传输。利用了回调机制,由C#通过API传递一个回调函数给C++。然后,C++有数据需要传输时就调用一下回调函数。结果C++调用回调返回后,总是报如下错误:
根据错误提示仔细检查了回调的定义,发现是在定义回调函数“typedef void ( *ReceivedHandler)(unsigned int num1, double num2); “时ReceivedHandler前少了CALLBACK导致的。但是编译时没有任务错误提示,即使是调用时参数的个数与回调的定义不一致也没有任何错误提示。通过这个小的错误,对函数的调用方式有了进一步的理解。