我知道c#调用VC的dll是使用DllImport关键字,
很奇怪的是,我重装了系统之后,重装了VS2005后,就无法使用调用DLL的函数了。出错为“无法加载XXX.dll,找不到指定模块”。
dll是没有问题的,即使把该dll放到system32的文件夹下也是报同样的错,同样的程序在别的电脑是可以运行的。我怎么无法使用声明的dll函数了,是VS2005的一些项目环境设置的问题吗?真是怪事了。

解决方案 »

  1.   

    如果那是某个activex,那你需要regsvr32后才可以。你确定那dll是什么了么?是否内部引用了其他的组建你没装?
      

  2.   

    不是avtivex,内部没有引用任何东西,程序在其他电脑上用是没有错的,应该不是代码问题
      

  3.   

    依赖的所有的dll的路径
    [DllImport("",EntryPoint="")] regsvr32 "Dll文件"
      

  4.   

    出现这种情况的可能是你所用VC写的那个dll文件的支持库文件在重装系统后加载不了,办法是要确定你的DLL文件的依赖文件。
      

  5.   

    [DllImport("",EntryPoint="")]
    还是不行把lib文件。和头文件拷进去。
      

  6.   

    你重装了VS2005,没有引用DLL吧
      

  7.   

    正确答案是:
    C#项目调用VC 6.0编写的dll文件,出现异常:找不到指定的模块(Exception from HRESULT:0X8007007E)!最后确定我遇到的这个原因是,调用的dll文件缺少支持库MFC42D.DLL,MSVCP60D.DLL,MSVCRTD.DLL(可以利用C:\Program Files\Microsoft Visual Studio 8\Common7\Tools\Bin\Depends.Exe检测,引用的dll需要的支持文件,比如dll等)。