2013-04-11 4 views
1

Я не пытается скомпилировать исходный код в исполняемый файл. Пожалуйста, прочитайте перед маркировкой как дубликат.Библиотека для генерации независимых окон, исполняемых на Java или C++

С учетом этого, я прошу прощения, если этот вопрос был задан раньше. Бесчисленные «как скомпилировать java | C++ to exe» вопросы заполнили все мои поиски.

Я ищу библиотеку, которая облегчает создание исполняемых файлов (.exe). Чтобы быть конкретным, я хочу иметь возможность генерировать серию инструкций по сборке во время выполнения (это будет очень просто) и создать исполняемый файл, который их выполнит. Я могу сам создать сборку; Я просто хотел бы иметь библиотеку, чтобы помочь справиться со всеми заголовками и другими частями файла .exe (я начал изучать Portable Executable File Format, но для меня это слишком сложно. Я не ленив, но как высокий -level programmer Я чувствую, что этот материал под моей головой). Конкретная механика библиотеки не важна, если она работает для Java или C++. Однако Java является очень предпочтительным.

Любые знания, относящиеся к любым структурам, которые были бы полезны в этом отношении, были бы оценены.

+2

Любое количество свободных ассемблеров плавает вокруг. Получите один, запустите программу Java, используйте полученный исполняемый файл. –

+0

Возможный дубликат [Как скомпилировать код, сгенерированный Java или C++ App] (http://stackoverflow.com/questions/3076075/how-to-compile-code-generated-by-a-java-or-c- приложение) –

+0

@nm Я никогда не об этом! Сделайте это, и я приму это. – ApproachingDarknessFish

ответ

0

Хорошо, так что я в конечном итоге делал поиск по папке bin моей установки MASM32, где я нашел ассемблер: 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. дал мне идею, но так как они не отправлял его в качестве ответа после того, как месяц я решил просто ответить себя.

0

Почему бы вам не бросить курить? Измените код для самого низкого общего знаменателя (ЦП). Делая это, вы, вероятно, добавите много своего набора навыков. В настоящее время я пишу скриптовый движок и хочу представить компилятор JIT для генерации кода для платформ Windows. Для этого я добавляю списки кодов в проекты, чтобы увидеть код сборки, сгенерированный компилятором. Не совсем я знаю, но дает твердое начало.

Смежные вопросы