【问题标题】:Why dumpbin does not show functions of some DLLs?为什么 dumpbin 不显示某些 DLL 的功能?
【发布时间】:2015-11-26 20:30:41
【问题描述】:

这是一个项目rawinput_latest.zip

目标框架:.Net 4

输出类型:类库

Building Solution 创建 dll 文件。

dumpbin /exports RawInput.dll 的输出

Microsoft (R) COFF/PE Dumper Version 14.00.23026.0
Copyright (C) Microsoft Corporation.  All rights reserved.


Dump of file C:\Users\Qet\Documents\Visual Studio 2015\Projects\rawinput latest\RawInput\bin\x86\Debug\RawInput.dll

File Type: DLL

  Summary

        2000 .reloc
        2000 .rsrc
        6000 .text

为什么dumpbin 不显示RawInput.dll 的功能? 我可以在另一个项目中使用 dll 吗?

【问题讨论】:

  • C# 无法创建非托管导出。您需要 C++/CLI 或像 Giesecke 的 Unmanaged Exports 这样的 IL 重写器工具。该项目确实使用 [DllImport],使用 Dumpbin.exe /imports 选项也不会出现。此类函数在运行时与 LoadLibrary() 和 GetProcAddress() 绑定。

标签: c# dll dumpbin


【解决方案1】:

标志 /EXPORTS 用于在 PE 中显示导出的函数。常规 C# 方法不会在 PE 中导出(通常不需要)。您仍然可以引用 .NET 程序集 (dll) 并从其他 .net 项目中使用它。

如果你想使用非托管代码中的函数,那么你可能需要导出导出它。在这种情况下,请阅读here。如果您不需要将功能导出到其他原生应用程序,则可能不需要它。

【讨论】:

  • 非常感谢。这就是我一直在寻找的
猜你喜欢
  • 2018-07-13
  • 1970-01-01
  • 1970-01-01
  • 2017-12-30
  • 1970-01-01
  • 1970-01-01
  • 2022-07-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多