我有一个MobileOpen.dll这个组件,用C语言编写的,在vs2003中引用的时候,把这个组件放在bin下面,代码中写了[DllImport("MobileOpen.dll", EntryPoint = "Disconnect")]
    public static extern bool Disconnect();
    [DllImport("MobileOpen.dll", EntryPoint = "FreeConnection")]
    public static extern bool FreeConnection();就可以引用了,在vs2005中,我也同样弄了,编译没有问题,调试的时候就出现了这个的错误:无法加载 DLL“MobileOpen.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。高手求救,谢谢

解决方案 »

  1.   

    1.有没有在项目文件上点右健添加引用啊?光复制到Bin目录下 ,然后在写代码是没用的.2.你用C语言编写,编译后好像不是.net里的中间语言哦?不知道你dll是用什么工具编写的??
      

  2.   

    无法加载 DLL另有原因
    检查文件权限,要可写
      

  3.   

    这个组件不是com组件,在项目中是不能添加引用的,要这样的引用的[DllImport("MobileOpen.dll", EntryPoint = "Disconnect")]
      

  4.   

    你首先在.net环境下的dos窗口中,看看用dumpbin输出一下你的dll,看看是否能输出dll中的函数。不过,你在vs2003能用,在vs2005就不能用,很怪,难道vs2005中对dllimport加了什么特殊处理。
    手头没装2005,不能帮你看看。
      

  5.   

    添加引用,只是复制到bin下没用
      

  6.   

    不能添加引用,不是标准的COM组件
      

  7.   

    搞不懂你是不会引用还是引用了没用啊?除了Com组件你以前引用过组件吗? 引用个组件那你你讲的这么难啊?直接选择文件夹选择dll组件确定不就OK啦? 除了COM选项卡还有两个选项卡,或者在在解决方案下引用,直接指定dll不就行了吗?
      

  8.   

    我也一样的:
    出现:请确保此文件可访问并且是一个有效的程序集或 COM 组件。
    怎么办?
    现病啊
      

  9.   

    是不是找不到DLL,把DLL复制到EXE相同目录下试试.
      

  10.   

    你是调试时候出错,还是运行(不调试)时候出错,注意:vs2005调试是在debug目录中,不调试的化是在release目录中运行的。
      

  11.   

    复制到BIN下面去就可以了,不用添加引用。
    我以前也用C++写了一个测试,根本没有办法胡IDE下添加引用,但是拷到exe运行的目录下就可以了。
      

  12.   

    我也一样的:
    出现:请确保此文件可访问并且是一个有效的程序集或 COM 组件。
    怎么解决 ?regsvr32 也注册不上  说加载失败