急问个C#调用C++ dll的问题 C#调用C++写的dll,dll中处理一个循环(是一个读取视频的,每次循环读取一帧,调用了opencv库),循环内有个回调函数,传出数据供C#的函数使用。C#中另开了一个线程处理对dll的调用。运行时一切正常,可每次关闭Form时,提示 **.vshost.exe应用程序错误,提示访问了不能为“read”的内存,请问是什么错误造成的啊?dll中的函数在控制台下执行时正确无误。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 貌似有很多指针,c#调用C++的dll切忌不能在c#中分配内存!也就是说你的所有new的东西全部都要放置到dll中的。这种东西调试也很不容易。祝你好运! C#就弄了个界面,中间确实有一句分配内存的,是把dll传过来的回调函数的一个char指针的数据放到一个Bitmap里面,然后在pictureBox中显示,运行时显示正常,关闭程序时出问题,调试也没有办法定位到那个错误的地方啊,郁闷了 如果要在把new操作全部放到dll里,那就得传出来一个Bitmap或者pictureBox支持的流? 是using MFC Shared dll,格式难转换啊 我想可能是因为你关闭窗口时这个dll还在运行,而你另开的线程又是一个后台线程,所以会出错。请问你另开的线程是new出来的还是从线程池获得的,如果是从线程池获得的,就一定是后台线程,改成new一个试试。 new 出来,可能不是这个问题,我把dll中的循环改成一个普通的死循环(没有调用opencv读取视频流), 程序关闭时就正常了,不会弹出那个错误提示。 我在dll循环中有加了个判断强制释放资源的回调函数,程序关闭时调用该函数,并且主线程阻塞100ms,暂时解决了这个问题 关于树状结构的一个算法问题 关于取得datagridview1里的数据的计算问题 删除Tree型数据 是高手的来做做c#中的这几个题 求助高人!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 谁能够解释下OleDbConnection和SqlConnection的区别吗? 关于继承DataGridColumnStyle的问题 数据访问层我到底该选择什么??? 如何返回上一步操作? 关于.msi文件名的使用 windowss service 100分问题 多控件事件调用!急
请问你另开的线程是new出来的还是从线程池获得的,如果是从线程池获得的,就一定是后台线程,改成new一个试试。