多语言展示
当前在线:1435今日阅读:23今日分享:25

C#调用C++报错

C#调用C++的程式有时会出现各种问题:如1、未处理System.StackOverflowException2、未能加载,找不到指定的模块
工具/原料

depends

方法/步骤
1

未处理System.StackOverflowException这个问题主要出现在webform、web服务调用C++的时候报的错误,原因可能是多线冲突的问题,解决方案为,1、写一个中转程式如控制台程序调用C++,然后webform执行中转程式获取相应的结果2、webform把对应的需求写入数据库或window队列,然后用一个轮询程式访问数据库或队列自动去处理相应的需求,然后把结果写入对应的数据库

2

未能加载,找不到指定的模块,主要原因如下:1、是因为对应的dll中有依赖于别的dll,用【depends】这个程式打开dll看有哪些依赖dll没有于当前dll放到同一个目录下,下载指定的dll到当前目录下即可2、C++ dll依赖的dll所在的路径没有放到环境变量中,把依赖dll放到环境变量中此错误就会解决

3

vs调试时调用正常,便是发布到IIS后调用失败,说找不到指定的模块:无法加载*.dll,找不到指定的模块这个问题主要是因为调用的dll所依赖的dll所在路径配置的环境变量是用户环境变量而不是系统环境变理,把环境变量配置到系统环境变量后问题解决原因是IIS使用户调取不到用户环境变量,只能调取到系统环境变量

推荐信息