none
0x8007007f异常如何处理???? RRS feed

  • 问题

  • 我这里有个C++的库(非COM),需要在.net环境下调用。为了能够在.net下调用,我用CLI进行了封装,但是当我调用封装后的库时候出现了“{"找不到指定的程序。 (异常来自 hresult:0x8007007f)"}”的错误?请问出现这种的问题的具体原因?
    2010年8月26日 6:13

答案

  • 我昨天也遇到这个问题

    我检查了系统环境变量 %SystemRoot%\system32, 用户变量 C:\WINDOWS\system32\

    把DLL也放到system32文件夹下

    然后就OK了


    If this is helpful
      { Please Mark as Answered }
    else if it is not helpful
      { Un-Mark as Answered }


    Best Regards
    Huan Li, Code Blog: Small is New Big In C#
    • 已标记为答案 Aaron Zhu 2010年8月27日 8:57
    2010年8月27日 4:59
  • 有没有 extern "C"? 出现该异常的可能原因有几个。

    - 能加载程序集但是程序集内不包含将要使用的类型元数据。(对于托管代码)
    - LoadLibrary 成功但是 GetProcAddress 异常。 (对于非托管代码)

    您可以找一个 PE 工具来查看导出表,看看该函数是否已经被正确导出,其 Calling Convention 因改为 stdcall 或者 cdecl。


    Mark Zhou
    • 已标记为答案 Aaron Zhu 2010年8月27日 8:56
    2010年8月27日 7:29

全部回复

  • 我是想通过C++/CLI包装一个native C++的库,然后在C#中调用,但是当应用程序启动的时候就出现 :{"找不到指定的程序。 (异常来自 hresult:0x8007007f)"} 错误。

    版主、高手们知道的给个提示!

    2010年8月26日 6:47
  • 0x8007007 对应于 FileNotFoundException,您可以检查一下那些地方用到了 I/O 操作,或者访问了文件系统,或者缺少程序集引用。
    Mark Zhou
    2010年8月26日 7:42
  • 之前确实缺少一些模块,但是出错是0x8007007e,后面把所有的*.dll文件都拷贝到执行目录后,才出现0x8007007f错误的。
    2010年8月26日 7:54
  • 0x8007007f = The specified procedure cannot be found。 应该是 DLL 导出的问题。检查 C++ 程序集是否包含 extern "C" 和 DLLEXPORT 等重要信息。
    Mark Zhou
    2010年8月26日 8:02
  • 确实用过__declspec(dllexport)关键字来导出方法,请问出这种异常通常有哪些情况,我好根据这个去排查。
    2010年8月26日 9:18
  • 我昨天也遇到这个问题

    我检查了系统环境变量 %SystemRoot%\system32, 用户变量 C:\WINDOWS\system32\

    把DLL也放到system32文件夹下

    然后就OK了


    If this is helpful
      { Please Mark as Answered }
    else if it is not helpful
      { Un-Mark as Answered }


    Best Regards
    Huan Li, Code Blog: Small is New Big In C#
    • 已标记为答案 Aaron Zhu 2010年8月27日 8:57
    2010年8月27日 4:59
  • 有没有 extern "C"? 出现该异常的可能原因有几个。

    - 能加载程序集但是程序集内不包含将要使用的类型元数据。(对于托管代码)
    - LoadLibrary 成功但是 GetProcAddress 异常。 (对于非托管代码)

    您可以找一个 PE 工具来查看导出表,看看该函数是否已经被正确导出,其 Calling Convention 因改为 stdcall 或者 cdecl。


    Mark Zhou
    • 已标记为答案 Aaron Zhu 2010年8月27日 8:56
    2010年8月27日 7:29