以下是我 用Winform做的一个测试程序   就是调用这个VC++6写的 DLL  private void Form1_Load(object sender, EventArgs e)
        {
            try
            {
                long back = PtzDown();
                MessageBox.Show(back.ToString());
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
      
        [DllImport(@"G:\YingQing\YingQing_Dll\bin\ZszcVA.dll", SetLastError = true, EntryPoint = "PtzDown")]
        private static extern long PtzDown();
错误是:
[System.DllNotFoundException] = {"无法加载 DLL“G:\\YingQing\\YingQing_Dll\\bin\\ZszcVA.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。"}此DLL我有放在Bin\debug    和 Bin  还有 System32 目录下   都是样的结果  DLL的名字是复制的,肯定不会错如果想要DLL 可以加我Q:564748474  飞信号码:767180646   或者到 www.126.com  去下载。用户名:[email protected] 密码是:dllimport@126  在草稿箱中

解决方案 »

  1.   

    你的vc6的dll是通过什么方式编译的,能在vc下面用__cdecl的方式调用吗
      

  2.   

    有没有可能 开发这个DLL的供应商  做了类似保密的东西?  我在网上看到说  要问供应商要程序接口   不知道怎么回事 ?
      

  3.   

    你直接把你的DLL放在你的dub目录下面,如果可以运行就说明正确,否则你要看看你这个dll还是不是需要其他的资源文件,用vc的depends工具看看少什么添什么就可以了。
      

  4.   

      查了很多资料,应该是调用的dll文件缺少支持库MFC42D.DLL,MSVCP60D.DLL,MSVCRTD.DLL  这些都是VC++的基类库文件。  
       我又安装了一个VC++6.0  可是还是不行。我想应该是因为我先安装了VS2008 再安装的VC6.0.是否VC的类库需要在VS中注册? 我知道IIS安装完以后需要在VS中注册才能使用。 如果我需要注册,我该如何做呢?
      

  5.   

    MFC42D.DLL,MSVCP60D.DLL,MSVCRTD.DLL
    将这3个文件拷到程序目录下(dll)。
      

  6.   

    我按照 hhyttppd说的做了 还是不行
      

  7.   


    用depands查看一下是不是还少哪些dll(依赖)
      

  8.   

    非常感谢 hhyttppd的回答    原因是 DLL 不行  缺少什么函数 。。 。 害我折腾了几天   深深的打击了我的自信心 哭。。