C#调用动态链接库,直接闪退了!大神求帮忙!!急急急!!!

showmei2013 2017-03-13 02:57:46
编写的是一个CT重建算法,重建算法用C语言写,生成动态链接库,C#界面调用_ConeCTRecon,
_ConeCTRecon(detector_num_length, detector_num_width, detector_num_length_cut, step_num, L_middle, R, k, resolution, path_mid_input, path_image_final_store);
每次调用,发现dll程序有运行完毕,并且把运行结果存入到path_image_final_store(一个相对地址)了,运行完毕之后就直接退出窗口程序了!其实后面还有其他C#代码待运行!
不知道为什么……试了好多次了,输入也没有错误,运行结果也有,就是会闪退……头痛……
...全文
1188 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
xian_wwq 2017-03-14
  • 打赏
  • 举报
回复
引用 5 楼 showmei2013 的回复:
[quote=引用 3 楼 xian_wwq 的回复:] 有c的代码没有?如果有,把dll相关代码记载到解决方案中, 在vs简单设置下,可以直接debug 如果没有,让c的提供者提供示例代码, 先用示例代码进行测试
哦哦,我懂你意思了,就是配置一下环境,直接能在解决方案里断点执行dll…… 貌似可以,我试试,感觉工程量好大…… [/quote] 其实也不是很大,比在外面猜原因要省时间
堂风 2017-03-14
  • 打赏
  • 举报
回复
帖代码出来看看啊,函数定义部分和调用部分
showmei2013 2017-03-14
  • 打赏
  • 举报
回复
引用 8 楼 xuggzu 的回复:
能正常调用并返回,但之后会崩溃,内存访问出现问题。比如:c中字符串赋值超出范围,或者字符串结尾无"0"结束符,导致访问越界等。
大神!!但是我发现在VC6.0环境下C代码生成的DLL不会出现闪退的情况,而在VS环境下同样的C代码生产的dll会闪退…… 这又是什么情况……
showmei2013 2017-03-14
  • 打赏
  • 举报
回复
发现在VC6.0环境下生成的DLL不会出现闪退的情况,而在VS里面,dll会闪退…… 这又是什么情况……
xuggzu 2017-03-13
  • 打赏
  • 举报
回复
能正常调用并返回,但之后会崩溃,内存访问出现问题。比如:c中字符串赋值超出范围,或者字符串结尾无"0"结束符,导致访问越界等。
Poopaye 2017-03-13
  • 打赏
  • 举报
回复
那一般就是返回的格式有错误导致内存越界之类的,好好检查一下吧,看下windows有没有留下日志,调试还是很难的
xuggzu 2017-03-13
  • 打赏
  • 举报
回复
c下debug模式直接可调试dll。
showmei2013 2017-03-13
  • 打赏
  • 举报
回复
引用 3 楼 xian_wwq 的回复:
有c的代码没有?如果有,把dll相关代码记载到解决方案中, 在vs简单设置下,可以直接debug 如果没有,让c的提供者提供示例代码, 先用示例代码进行测试
哦哦,我懂你意思了,就是配置一下环境,直接能在解决方案里断点执行dll…… 貌似可以,我试试,感觉工程量好大……
showmei2013 2017-03-13
  • 打赏
  • 举报
回复
引用 3 楼 xian_wwq 的回复:
有c的代码没有?如果有,把dll相关代码记载到解决方案中, 在vs简单设置下,可以直接debug 如果没有,让c的提供者提供示例代码, 先用示例代码进行测试
有C代码,也是我自己写的。单独拎出来运行是对的!
xian_wwq 2017-03-13
  • 打赏
  • 举报
回复
引用 楼主 showmei2013 的回复:
编写的是一个CT重建算法,重建算法用C语言写,生成动态链接库,C#界面调用_ConeCTRecon, _ConeCTRecon(detector_num_length, detector_num_width, detector_num_length_cut, step_num, L_middle, R, k, resolution, path_mid_input, path_image_final_store); 每次调用,发现dll程序有运行完毕,并且把运行结果存入到path_image_final_store(一个相对地址)了,运行完毕之后就直接退出窗口程序了!其实后面还有其他C#代码待运行! 不知道为什么……试了好多次了,输入也没有错误,运行结果也有,就是会闪退……头痛……
有c的代码没有?如果有,把dll相关代码记载到解决方案中, 在vs简单设置下,可以直接debug 如果没有,让c的提供者提供示例代码, 先用示例代码进行测试
showmei2013 2017-03-13
  • 打赏
  • 举报
回复
引用 1 楼 shingoscar 的回复:
如果函数里直接调了exit那我也没办法
没有呀!并没有调用exit!我连exit是什么我都不造……
Poopaye 2017-03-13
  • 打赏
  • 举报
回复
如果函数里直接调了exit那我也没办法

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧