问题标签 [coff]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
59 浏览

cl - 微软编译器 cl.exe 可以编译为 OMF 对象类型而不是 COFF 吗?

我想将创建的目标文件cl.exe与另一个OMF使用第三方链接器格式的目标文件链接起来。该第三方链接器不接受COFF格式。我想知道是否cl可以制作OMF格式的对象?

0 投票
0 回答
456 浏览

mfc - COleDispatchDriver::Invoke 在 MFC 应用程序中使用 VS2013 导致 61706“内存不足”异常?

我有一个在用 VS2013 重建的 Win7 上运行的 MFC C++ 应用程序。它使用自定义 OCX 控件。在大约第 4 次调用 OCX 时,COleDispatchDriver::InvokeHelper 方法调用 Invoke,导致异常 61706“内存不足”。这个应用程序已经在以前版本的 Visual Studio 上成功构建和运行多年(不确定它最初是用哪个版本构建的)。来自生成异常的应用程序代码的调用是:

我已经进入了这个调用,并通过了大约 4 个级别的调用,并在库 dll oledisp2.cpp 中进行了这个调用

状态码 sc 返回为 0x80020009,即 DISP_E_EXCEPTION,表示“发生异常”,异常信息为:

我试图进入 m_lpDispatch->Invoke调用,但调试器只显示汇编语言,说被调用模块没有符号信息,这看起来很奇怪,因为它是同一个类(或父级)的成员电话来自。当我逐步了解 InvokeHelper 方法时,我观察到所有 8 个传递的参数都被正确识别和处理,直到调用 Invoke()。无法进入 Invoke 导致无法查看导致“内存不足”问题的内存分配位置。

我也尝试使用 VS2010 构建并得到相同的错误。

我尝试过的其他事情是从静态 MFC 库切换到 DLL MFC,但结果是一样的。我仍然收到“内存不足”错误,并且无法在 Invoke() 调用中使用符号进行调试。

我试图查找 61706 错误以获取 Microsoft 的详细描述,但只发现这个链接信息量不大。

0 投票
1 回答
87 浏览

llvm - LLVM:将链接器指令添加到 LLVM IR

如何使用 LLVM IR 添加在 COFF(MSVC 目标文件)中找到的链接器指令和 LLVM?或者是否有其他工具可以添加这些指令?

0 投票
0 回答
936 浏览

clang - 如何更改 Clang/llvm 的目标文件格式

我目前正在将 Windows CE 添加为 LLVM/Clang 中的目标操作系统。我已经在 Windows 上编译了 LLVM/Clang,当我使用它为我自己的本机 Windows 目标编译代码时,或者当我交叉编译到我的新 Windows CE 目标时,它会生成 ELF 目标文件。问题是我需要它来生成 COFF 目标文件。我找不到任何方法来配置 Clang 以在运行时发出 COFF,所以我一直在向代码添加调试以尝试找出如何通过修改源代码本身来让它产生 COFF。我已经研究了一段时间,并想我会问是否有人可以帮助我弄清楚如何让它生成 COFF。

当构建 TargetInfo 类(lib/Basic/Targets.cpp)时,我看到 Triple.getObjectFormat 返回 COFF 的枚举值,所以我不确定它为什么会产生 ELF。我认为罪魁祸首将在 lib/CodeGen 项目中,但我很难弄清楚最终目标文件格式的评估位置。任何帮助,将不胜感激。

0 投票
2 回答
1323 浏览

c++ - xdata 部分有什么作用?

我有一个简单的hello world程序,在我用/headers标志转储它之后,我得到这个输出

xdata 部分到底做什么以及它包含什么?没有关于msdn的信息。

0 投票
1 回答
393 浏览

windows - PE 格式的可执行文件中的 COFF 字节排序

我有一个 Windows 二进制文件的 hexdump,并通过查看 COFF 偏移量识别了此可执行文件中的 COFF 标头:

我们可以进一步验证这是文件头,因为它的4 字节签名'PE'后跟两个NULL字节。显然,该格式似乎是用小端表示的,因为如果我们要显式编写 PE,我们将使用 hex 50 45

如果我们查看PE 格式规范并进行此观察,该NumberOfSections字段(从签名末尾偏移 2 个字节,该Machine字段被跳过),我们确定有 768 个部分(03 00小端序)。这与规范相矛盾,指出 Windows 加载程序将节数限制为 96。

此外,字段中的字节顺序Timestamp(接下来的 4 个字节)似乎很奇怪,因为只有排列3add 6ec8会产生过去的 Unix 时间戳。

我是否缺少更明确定义的字节顺序?为什么字段之间的字节顺序似乎不一致?

0 投票
1 回答
122 浏览

c++ - 如何在 cgal 中加载 COFF 网格?

我想使用 CGAL::read_OFF() 加载一个 coff 文件(带颜色的网格)。下一次尝试将这些信息组合成一个网格变量(类似于 polygon_soup_to_polygon_mesh 函数,但不确定,因为这个命令也不支持颜色信息)。您知道如何读取 COFF 文件并将它们合并为包含颜色信息的网格吗?

接着

这是我要加载的 COFF 文件的示例:

0 投票
0 回答
148 浏览

windows - 在 notpad.exe PE 标头中找不到 AddressOfEntryPoint

我正在阅读 Advanced .NET Debugging 这本书,该书引用了 32 位 notepad.exe,并说我应该能够找到AddressOfEntryPointRVA0x1080x31F8.

我使用的是 64 位 Windows 10,但它似乎不存在,值存在0x0B02.

当我尝试在 ntsd 中反汇编它时,出现内存访问错误(我期待notepad!WinMainCRTStartup

这是由于 32/64 位吗?

我应该做什么?

0 投票
0 回答
258 浏览

windows - PE+ 可执行文件中存在 BaseOfCode

MS 文档说该值BaseOfCode仅存在于 PE 文件中,而不存在于 PE+ 中。使用dotPeeknotepad.exe和 PE 查看器查看似乎表明BaseOfCode存在并已使用。

at 的两个字节0x00F8表示这是一个 PE+ 标头。是的BaseOfCode四个字节0x010C

文档(和我自己)是否不正确或 dotPeek 和 PE View 不正确?

这些字节没有被清零的事实意味着这些字节在某种程度上是重要的。

0 投票
1 回答
193 浏览

.net - AddressOfEntryPoint 超出文件末尾

我试图了解AddressOfEntryPointCOFF 标头中的内容。

我有一个“一无所有”的 .NET exe:

(我已将其编译为 x86 应用程序)

我为 COFF 标头中的标准字段获得的值是:

AddressOfEntryPoint0x2356。_

该文件的长度不足以使该值成为任何地方的偏移量,那么它是什么?

(文件位于: https ://drive.google.com/open?id=1VClORkJKyGhd7o3YBPbCZEni1ad_mncl )