【问题标题】:Library for generating independent windows executable in Java or C++用于在 Java 或 C++ 中生成独立 Windows 可执行文件的库
【发布时间】:2024-05-20 04:25:02
【问题描述】:

不是试图将我的源代码编译成可执行文件。请在标记为重复之前阅读。

话虽如此,如果之前有人问过这个问题,我深表歉意。无数“如何将 java | C++ 编译为 exe”的问题填满了我所有的搜索。

我正在寻找一个有助于创建 Windows 可执行 (.exe) 文件的库。具体来说,我希望能够在运行时生成一系列汇编指令(这些将非常简单)并创建一个可执行它们的可执行文件。我可以自己生成程序集;我只想有一个库来帮助处理 .exe 文件的所有标题和其他部分(我开始研究 Portable Executable File Format 但它对我来说太复杂了。我不是懒惰,而是一个高级程序员,我觉得这些东西在我的头脑中)。该库的具体机制并不重要,只要它适用于 Java 或 C++。然而,Java 是首选。

任何与任何类型的框架有关的知识在这方面都会有所帮助,我们将不胜感激。

【问题讨论】:

  • 任何数量的免费汇编程序都在四处飘荡。得到一个,让你的 Java 程序运行它,使用生成的可执行文件。
  • @n.m.我从来没想过!把它作为一个答案,我会接受的。

标签: java c++ exe executable-format file-generation


【解决方案1】:

为什么不滚动你自己的?发出最小公分母 (CPU) 的代码。通过这样做,您可能会增加很多技能。我目前正在编写一个脚本引擎,并希望引入一个 JIT 编译器来为 Windows 平台生成代码。为此,我将代码清单添加到项目中以查看编译器生成的汇编代码。我知道并不完美,但给出了一个可靠的开始方向。

【讨论】:

    【解决方案2】:

    好的,所以我最终做的是搜索我的 MASM32 安装的 bin 文件夹,在那里我找到了汇编程序:ml.exe。然后我将程序集写入文本文件并使用以下命令调用汇编程序:Runtime.exec():

    Runtime.getRuntime().exec(
                "C:/masm32/bin/ml.exe "        //directory of assembler
                +"/coff "                      //create COFF header (needed for Win32)
                +"/Bl C:/masm32/bin/link.exe " //directory of linker 
                +"/Fe src/" + fileName + ".exe " //executable file
                +"/Fo src/" + fileName + ".obj " //object file
                + fileName + ".asm");            //assembly file (source)
    

    User n.m. 给了我这个想法,但由于一个月后他们没有将其作为答案发布,我决定自己回答。

    【讨论】:

      最近更新 更多