带C++的DLL的WebService发布

用C#写了带几个Service的方法,图像部分用OpenCV做,在调试选项下生成,发布,本机上OK,可是搬到另外一台机时,除了本身的DLL,再把cx100d.dll,cxcore100d.dll,high100d.dll,拷过去,浏览器加载WebService时说image.dll或其依赖项未能正常加载,用强大的depends.exe看了下,原来cxcore100d.dll除了系统的dll,还需要libguide40.dll,不过貌似别的应用程序也可能带这个dll,不管了,opencv还是比较小的,迅速装了个,错误不变。

忘下C++的DLL还需要msvcr90r.dll,msvcp90.dll,msvcm90d.dll,可是用Everything搜索工具看了下,这三个dll有很多啊,不知道是哪个,大概拷了个X86目录下的,同样的错误,根据浏览器提示用sxstrace这个工具,方法如:http://blog.csdn.net/lly20000/article/details/8133584,可生成日志看了下,很乱,看不出个啥名堂,一直怀疑微软的那三个dll是不是拷对了,干脆重下了个Visual C++ 2008 SP1 Redistributable Package (x86),装了重启,仍然不行,突然想起微软的Redistributable应该是Release版,而不是Debug版,于是在Release下重新生成,拷过来,错误变成动态链接库(dll)初始化例程失败,删掉之前拷过来的当前目录下的cx100d.dll,msvcr90d.dll等,OK,哈哈!

原文地址:https://www.cnblogs.com/dankye/p/3045704.html