【问题标题】:Can a standard executable have an export table?标准可执行文件可以有导出表吗?
【发布时间】:2014-06-03 20:19:41
【问题描述】:

我有一个用 C 语言编写的可执行文件,其中包含一些我想在 c# 应用程序中使用的功能。我之前写过很多 dll,并且可以通过在函数声明前添加 __declspec(dllexport) 来使用其中的函数。我可以从可执行文件中执行此操作吗?可执行文件会真正导出函数吗?

【问题讨论】:

    标签: dllexport portable-executable


    【解决方案1】:

    是的,你可以!是的,可执行文件将导出函数。这不是经常这样做,但效果很好。根据可执行文件的规范 (http://msdn.microsoft.com/en-us/gg463119.aspx),就导出而言,DLL 和可执行文件之间没有区别。像 DLL 一样的 EXE 可以有一个导出表目录,其中记录了将由图像导出的函数。作为“正常”可执行导出函数的示例,请查看 Chrome.exe。请参阅我使用PEStudio 制作的 显示Chrome 导出一些功能。一些 Windows 内置可执行文件还导出功能(例如本地安全机构子系统 - lsass.exe)。 Windows 内核 (ntoskrnl.exe) 映像还导出了 2000 多个函数(在 Windows7 系统上)。

    【讨论】:

    • 但是……你是怎么做到的? __declspec(dllexport) 不适用于 MSVC 2010(构建 Java 8 需要使用)
    猜你喜欢
    • 2019-03-22
    • 2016-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-21
    • 2012-11-26
    相关资源
    最近更新 更多