:C# 调用C++ 回调函数的有关问题,将无效 VARIANT 传递给 CLR 会导致意外的错误

求救:C# 调用C++ 回调函数的问题,将无效 VARIANT 传递给 CLR 会导致意外的异常
客户给的dll文件,用c#调用,其中有个方法是要传回调函数c++是这样定义的
1、On_exec_result SetExecResult(On_exec_result pHandler);
2、typedef void(CALLBACK* On_exec_result)(const TAnswer *pAnswer);
3、TAnswer{
  char  chInfo [64]
  int  nAnswer
  int  nMarkets
  char  chMarketFlag [32][4]
  int  nDynDate [32]
}
(真搞不明白搞不明白SetExecResult的返回值也是个On_exec_result函数?)
我c#是这样写的:
 1、 [DllImport("TAPI.dll", CallingConvention = CallingConvention.Cdecl)]
   public static extern void SetExecResult(On_exec_result pHandler);
 2、public delegate void On_exec_result (TAnswer tAnswer);
 3、public struct TAnswer 
     {        
         [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64)]
         public byte[] chInfo;
         [MarshalAs(UnmanagedType.I4)]
         public int nAnswer;
         [MarshalAs(UnmanagedType.I4)]
         public int nMarkets;
         [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3 * 16)]
         public byte[] chMarketFlag;
         [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]
         public byte[] nDynDate;
    }
  调用的地方:
   On_exec_result tHandler = new On_exec_result(OnExecHandler);
   SetExecResult(tHandler);
   public void OnExecHandle(TAnswer tAnswer)
   {
       Logger.Info(tAnswer.nAnswer);
   }

运行的时候错误:从非托管 VARIANT 转换为托管对象的过程中检测到无效 VARIANT。将无效 VARIANT 传递给 CLR 会导致意外的异常、损坏或数据丢失
   
C# C++ struct callback

文章评论

:C# 调用C++ 回调函数的有关问题,将无效 VARIANT 传递给 CLR 会导致意外的错误
看13位CEO、创始人和高管如何提高工作效率
:C# 调用C++ 回调函数的有关问题,将无效 VARIANT 传递给 CLR 会导致意外的错误
10个调试和排错的小建议
:C# 调用C++ 回调函数的有关问题,将无效 VARIANT 传递给 CLR 会导致意外的错误
要嫁就嫁程序猿—钱多话少死的早
:C# 调用C++ 回调函数的有关问题,将无效 VARIANT 传递给 CLR 会导致意外的错误
Java程序员必看电影
:C# 调用C++ 回调函数的有关问题,将无效 VARIANT 传递给 CLR 会导致意外的错误
如何区分一个程序员是“老手“还是“新手“?
:C# 调用C++ 回调函数的有关问题,将无效 VARIANT 传递给 CLR 会导致意外的错误
漫画:程序员的工作
:C# 调用C++ 回调函数的有关问题,将无效 VARIANT 传递给 CLR 会导致意外的错误
程序员必看的十大电影
:C# 调用C++ 回调函数的有关问题,将无效 VARIANT 传递给 CLR 会导致意外的错误
每天工作4小时的程序员
:C# 调用C++ 回调函数的有关问题,将无效 VARIANT 传递给 CLR 会导致意外的错误
程序员都该阅读的书
:C# 调用C++ 回调函数的有关问题,将无效 VARIANT 传递给 CLR 会导致意外的错误
为啥Android手机总会越用越慢?
:C# 调用C++ 回调函数的有关问题,将无效 VARIANT 传递给 CLR 会导致意外的错误
60个开发者不容错过的免费资源库
:C# 调用C++ 回调函数的有关问题,将无效 VARIANT 传递给 CLR 会导致意外的错误
程序猿的崛起——Growth Hacker
:C# 调用C++ 回调函数的有关问题,将无效 VARIANT 传递给 CLR 会导致意外的错误
Web开发者需具备的8个好习惯
:C# 调用C++ 回调函数的有关问题,将无效 VARIANT 传递给 CLR 会导致意外的错误
中美印日四国程序员比较
:C# 调用C++ 回调函数的有关问题,将无效 VARIANT 传递给 CLR 会导致意外的错误
程序员的鄙视链
:C# 调用C++ 回调函数的有关问题,将无效 VARIANT 传递给 CLR 会导致意外的错误
程序员的一天:一寸光阴一寸金
:C# 调用C++ 回调函数的有关问题,将无效 VARIANT 传递给 CLR 会导致意外的错误
程序员周末都喜欢做什么?
:C# 调用C++ 回调函数的有关问题,将无效 VARIANT 传递给 CLR 会导致意外的错误
10个帮程序员减压放松的网站
:C# 调用C++ 回调函数的有关问题,将无效 VARIANT 传递给 CLR 会导致意外的错误
团队中“技术大拿”并非越多越好
:C# 调用C++ 回调函数的有关问题,将无效 VARIANT 传递给 CLR 会导致意外的错误
鲜为人知的编程真相
:C# 调用C++ 回调函数的有关问题,将无效 VARIANT 传递给 CLR 会导致意外的错误
我是如何打败拖延症的
:C# 调用C++ 回调函数的有关问题,将无效 VARIANT 传递给 CLR 会导致意外的错误
为什么程序员都是夜猫子
:C# 调用C++ 回调函数的有关问题,将无效 VARIANT 传递给 CLR 会导致意外的错误
做程序猿的老婆应该注意的一些事情
:C# 调用C++ 回调函数的有关问题,将无效 VARIANT 传递给 CLR 会导致意外的错误
程序员应该关注的一些事儿
:C# 调用C++ 回调函数的有关问题,将无效 VARIANT 传递给 CLR 会导致意外的错误
一个程序员的时间管理
:C# 调用C++ 回调函数的有关问题,将无效 VARIANT 传递给 CLR 会导致意外的错误
“懒”出效率是程序员的美德
:C# 调用C++ 回调函数的有关问题,将无效 VARIANT 传递给 CLR 会导致意外的错误
当下全球最炙手可热的八位少年创业者
:C# 调用C++ 回调函数的有关问题,将无效 VARIANT 传递给 CLR 会导致意外的错误
5款最佳正则表达式编辑调试器
:C# 调用C++ 回调函数的有关问题,将无效 VARIANT 传递给 CLR 会导致意外的错误
我跳槽是因为他们的显示器更大
:C# 调用C++ 回调函数的有关问题,将无效 VARIANT 传递给 CLR 会导致意外的错误
聊聊HTTPS和SSL/TLS协议
:C# 调用C++ 回调函数的有关问题,将无效 VARIANT 传递给 CLR 会导致意外的错误
编程语言是女人
:C# 调用C++ 回调函数的有关问题,将无效 VARIANT 传递给 CLR 会导致意外的错误
“肮脏的”IT工作排行榜
:C# 调用C++ 回调函数的有关问题,将无效 VARIANT 传递给 CLR 会导致意外的错误
十大编程算法助程序员走上高手之路
:C# 调用C++ 回调函数的有关问题,将无效 VARIANT 传递给 CLR 会导致意外的错误
Web开发人员为什么越来越懒了?
:C# 调用C++ 回调函数的有关问题,将无效 VARIANT 传递给 CLR 会导致意外的错误
程序员的样子
:C# 调用C++ 回调函数的有关问题,将无效 VARIANT 传递给 CLR 会导致意外的错误
如何成为一名黑客
:C# 调用C++ 回调函数的有关问题,将无效 VARIANT 传递给 CLR 会导致意外的错误
初级 vs 高级开发者 哪个性价比更高?
:C# 调用C++ 回调函数的有关问题,将无效 VARIANT 传递给 CLR 会导致意外的错误
程序员和编码员之间的区别
:C# 调用C++ 回调函数的有关问题,将无效 VARIANT 传递给 CLR 会导致意外的错误
科技史上最臭名昭著的13大罪犯
:C# 调用C++ 回调函数的有关问题,将无效 VARIANT 传递给 CLR 会导致意外的错误
老美怎么看待阿里赴美上市
:C# 调用C++ 回调函数的有关问题,将无效 VARIANT 传递给 CLR 会导致意外的错误
什么才是优秀的用户界面设计
:C# 调用C++ 回调函数的有关问题,将无效 VARIANT 传递给 CLR 会导致意外的错误
老程序员的下场
:C# 调用C++ 回调函数的有关问题,将无效 VARIANT 传递给 CLR 会导致意外的错误
那些争议最大的编程观点
:C# 调用C++ 回调函数的有关问题,将无效 VARIANT 传递给 CLR 会导致意外的错误
Java 与 .NET 的平台发展之争
:C# 调用C++ 回调函数的有关问题,将无效 VARIANT 传递给 CLR 会导致意外的错误
我的丈夫是个程序员