Tanns.dll是 vc++2008 写的,我在c# 2010的项目里面引用它,可以在写代码的时候直接书写了
...
Tanns.Init myT = new Tanns.Init(); 
myT.do();
...
但是我在调试程序的时候,运行到这里就提示出错了未能加载文件或程序集“Tanns.dll”或它的某一个依赖项。动态链接库(DLL)初始化例程失败。 (异常来自 HRESULT:0x8007045A)请问是哪里出问题呢?

解决方案 »

  1.   

    Tanns.dll存在吗,运行时能否找得到(比如是否和你的exe同目录)
      

  2.   

    并用Depends.exe(网上去下个)查看依赖项,若依赖项不全则无法正确调用
      

  3.   


    我把那个dll放在 bin\Debug 目录下的了
      

  4.   

    写代码的时候写using namespace试试。
      

  5.   

    这个DLL还有没有用到其它DLL的东西
      

  6.   


    下了个你说的程序,检查了下,提示这些dll文件没有 bcrypt.dll ieshims.dll msvcr90.dll ncrypt.dll wer.dll ,我网上下载了这些dll放到system32里面去,再用depends去检查,没有提示引用缺失了,但是有个提示
    Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.这个提示没有头绪了。运行程序也照样出错。
    vc++2008写的dll要在它的runtime下运行的话,我有2010的runtime应该可用的吧,我想会不会一定要我装2008的
      

  7.   

    你引用之后把选中引用的那个DLL名称右击属性选择复制到本地
      

  8.   


    那个 复制到本地 的属性是 true 的