错误信息是:
无法加载 DLL“dhnetsdk.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。************** 异常文本 **************
System.DllNotFoundException: 无法加载 DLL“dhnetsdk.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。
   在 DHNetSDK.DHClient.CLIENT_PTZControl(Int32 lLoginID, Int32 nChannelID, UInt16 dwPTZCommand, UInt16 dwStep, Boolean dwStop)
   在 DHNetSDK.DHClient.DHPTZControl(Int32 lLoginID, Int32 nChannelID, PTZ_CONTROL dwPTZCommand, UInt16 dwStep, Boolean dwStop)
   在 nwvideo.frm_MainC.button8_MouseDown(Object sender, MouseEventArgs e) 位置 E:\csharpworks\nwvideo\nwvideo\frm_MainC.cs:行号 1790--------------------------------------------------------------------------------------
我在程序里引入了
using DHNetSDK;也在引用里加了
DHNetSDK出错的行上是这句
DHClient.DHPTZControl(pLoginID, channelId, PTZ_CONTROL.PTZ_UP_CONTROL, stepValue, false);下边这句执行是没问题的
DHClient.DHSetEncoding(LANGUAGE_ENCODING.gb2312);我觉得是不是DHClient.DHPTZControl没有正常的调用dhnetsdk.dll
这个dhnetsdk.dll好象是C++开发的,导入不到引用里请问这个问题该怎么解决
---------------------------------------------------
我把dhnetsdk.dll和DHNetSDKCS.dll都拷贝到系统的System32下了,也拷贝到项目的bin下了,也拷贝到项目的根目录下了C:\WINDOWS\system32
E:\csharpworks\nwvideo\nwvideo
E:\csharpworks\nwvideo\nwvideo\bin\Debug
可是一直还都是报这个错
请问怎么办

解决方案 »

  1.   

    你全部重新生成下试试
    把你dll代码和相关代码发出来
      

  2.   

    是不是要注册的啊? tlbimp 命令之类的!
      

  3.   

    这个DHNetSDK肯定不是100%的.NET代码,所以deploy的时候肯定不是一个DHNetSDK.dll就能够搞定。你最好看看这个库详细的deploy指南,或许可以知道还有哪些东西需要发布和注册。因为这类东西都是和类库实现紧密相关的东西,因此不能简单的给一个通用答案。
      

  4.   

    这个dll是不是非托管语言写的啊
      

  5.   

    那样的话需要dllimport
    在google中搜索dllimport很多答案的
      

  6.   

    dhnetsdk.dll是托管代码的程序集?还是标准的DLL?这个要搞清楚。标准的DLL是无法通过引用来添加到工程里的。
    必须通过这种方式:如C#调用User32.dll里的FindWindow方法:
    [DllImport("User32.dll",EntryPoint="FindWindow")] 
    private static extern IntPtr FindWindow(string lpClassName,string lpWindowName); 
      

  7.   

    这是一个C++ 的dll ,不能用调用C# 的方法那样调用
    看看这个网址,我觉得应该对你有所帮助
    http://topic.csdn.net/u/20070320/10/b03efaaa-c6fd-4419-a114-53e7f71907b2.html
      

  8.   

    如果没法在引用里面导入,那就是标准c++开发的dll,你没法这么简单的用的,要用dllimport
      

  9.   

    把dhnetsdk.dll放到c:\windows\system32里面;或者在解决方案资源管理器里,右击此DLL,属性里把其做为嵌入资源;
      

  10.   

    有可能 dhnetsdk.dll 需要某个dll,
    而那个dll不在标准路径下
      

  11.   

    ,右击此DLL,属性里把其做为嵌入资源;
      

  12.   


    7楼的兄弟,我照着你的方法引了,可还是报相同的错误
    using System.Runtime.InteropServices;  [DllImport("dhnetsdk.dll", EntryPoint = "FindWindow")]
    private static extern IntPtr FindWindow(string lpClassName, string lpWindowName); 还有
    DHNetSDKCS.dll

    DHNetSDK.dll
    我也都试了
    都是相同的错误按理说dhnetsdk.dll应该是在DHNetSDKCS.dll里调用了的这个SDK也有DEMO
    在DEMO里也没有引用dhnetsdk.dll我还应该给大家提供出什么信息
      

  13.   

    不管是C#還是C++生成的DLL,都可以用動態去調用它,
    用DllImport好像不行,你試這動態加載進去,
    我試過用反射動態加載C++的DLL,可行。
      

  14.   

    在开始菜单打开运行  
    regsvr32 "Dll文件路径"
    试试这样行不 
    我以前就这样加过 
      

  15.   

    "FindWindow" 是Dll中你要调用的方法名,你dhnetsdk.dll里有FindWindow这个函数?
    我只是举个列子而已。。
      

  16.   


    哭```我出错的行是这个,就是调用这个方法时报的错
    DHClient.DHInit(disConnect, IntPtr.Zero);我引用是这样写的[DllImport("dhnetsdk.dll", EntryPoint = "DHClient.DHInit")]
    private static extern IntPtr FindWindow(string lpClassName, string lpWindowName); EntryPoint 里我也试了带参数的可还是报那个错请问是什么问题呀```
      

  17.   

    请把你dll中函数定义的代码贴上来。
      

  18.   

    dhnetsdk.dll 依赖的文件都在系统可搜索路径下?
      

  19.   

    原因:
    少加了SDK中其他的dll文件进去
      

  20.   

    楼主SDK中的dll是什么SDK中的呢? 我和你遇到的同样的问题。
      

  21.   

    我把整套的.dll都加进去了也还是不行啊?
      

  22.   

    如果不放在system32目录下这么办
      

  23.   

    12楼正解,开始我也无法加载dll 不过把dll引进来之后,在它的属性里边改为嵌入的资源就行了
      

  24.   

    12楼正解,开始我也无法加载dll,不过把dll引入后,在属性里把它改为嵌入的资源就行了
      

  25.   


    LZ具体说说是需要加SDK中的什么DLL,我遇到和你一样的问题
      

  26.   

    路过下,C++ dll 要放入System32下,就不报错了。
      

  27.   

    需要添加manifest进行配置。在manifest中配置依赖Microsoft.VC90.CRT就可以了。英语好的话去看看这篇很老的文章,写的相当详细:http://drdobbs.com/architecture-and-design/184406482
      

  28.   

     对的, 就是这样的, 我遇到同样的问题, 把dll放到 bin\Debug 目录下, 跟可执行程序放在一起, 或者放到系统的system32 目录下, 都可以。
      

  29.   

    我试过了 是少加了SDK中的其他文件