这几天调用了 用VC++.Net封装的一个DLL库,在2005下用C#调用没有问题,发布到其他机器运行的时候报错:错误信息如下:
“Unable to load Dll 'HCVideo.dll'”: 由于应用程序配置不正确,应用程序未能启动。
(Exception from HRESULT: 0x800736B1)奇怪的是:如果我在发布的机器上安装一套 Visual 2005 调试该程序再运行就能解决!请教各位是否能帮我解决这个问题,谢谢!

解决方案 »

  1.   

    对于VC++.Net,目标机器需要安装VC再发行包,你可以把你本地的那几个VC库拿过去
      

  2.   

    我用Depends查看过需要哪些DLL,已经都拷贝过去了啊!
      

  3.   

    SideBySide问题
    http://msdn.microsoft.com/en-us/library/ms811700.aspx
      

  4.   


    好像确实是 SideByside 问题 , nooning 是否能给些具体提示呢?谢谢
      

  5.   

    我在发布的机器上运行 Depends 查看HCVideo.dll 则报出这样的错误:Error:The Side-By-Side Configuration Information for "Debug\HcVideo.dll" Contains Errors.
      

  6.   

    看看你的dll是不是Release版本的,有可能是Debug下的。如果是Debug下的,肯定缺少一下支持库,当你安装上2005后,所需要的库你也安装上了,所以可以用,估计就是版本问题、
      

  7.   

    谢谢 gisfarmer  的回复:我还要说明一下,HCVideo.dll是用 VC。net封装好的dll,我使用一个自定义控件调用它。在2005的IDE中,如果在该自定义的Load事件中对该 HCVideo.dll有调用的话,在IDE中就会报错,所以我使用了一个 try catch() 来屏蔽错误信息。这样就可以在调试中不出错了。而且控件在运行时很正常。HCVideo.dll 是 海康威视的 视频控件,不过是二次封装的,直接用 C#写调用程序总是会报错很麻烦。
      

  8.   

    我测试过几台机器,在 Windows 2000 Server 下运行正常,
    在 Windows 2003 Server 下运行报错
      

  9.   

    有的DLL是加载不了的。你放到BIN下用 [System.Runtime.InteropServices.DllImport("user32.dll")]
      public static extern bool MessageBeep(uint uType);这中方式调用
      

  10.   

    是不是 没有.net 2.0的环境啊 
      

  11.   

    1、运行环境肯定有
    2、DLL也加载的了
    3、应该是nooning说的 sidebyside问题,不知道是否有人能给点详细的介绍。