2013-04-11 56 views
1

我是而不是試圖將我的源代碼編譯爲可執行文件。請在標記爲重複之前閱讀。用於生成可在Java或C++中執行的獨立窗口的庫

這樣說,我很抱歉如果這個問題之前已經被問到。無數的「我如何編譯java | C++到exe」問題填滿了我的所有搜索。

我正在尋找一個便於創建Windows可執行(.exe)文件的庫。具體而言,我希望能夠在運行時生成一系列彙編指令(這些將非常簡單),並創建一個執行它們的可執行文件。我可以自己生成程序集;我只想擁有一個庫來幫助處理.exe文件的所有頭文件和其他部分(我開始研究Portable Executable File Format,但這對我來說太複雜了,我並不懶惰,但作爲一個高級別的程序員我覺得這東西是在我的頭上)。只要它適用於Java或C++,庫的具體機制並不重要。然而,Java是非常受歡迎的。

任何有關任何類型的框架知識,這將有助於在這方面將不勝感激。

+2

任意數量的免費彙編程序都在浮動。得到一個,讓你的Java程序運行它,使用生成的可執行文件。 – 2013-04-11 21:17:52

+0

[如何編譯由Java或C++應用程序生成的代碼]可能的重複(http://stackoverflow.com/questions/3076075/how-to-compile-code-generated-by-a-java-or-c-應用程序) – 2013-04-11 22:18:27

+0

@ nm我從來沒有這樣做!做出答案,我會接受它。 – ApproachingDarknessFish 2013-04-13 00:34:00

回答

0

好吧,我最終做的是搜索我的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.給我的想法,但因爲他們沒有在一個月後發佈其作爲答案,我決定只回答吧我。

0

爲什麼不滾動你自己?爲最小公分母(CPU)發射代碼。通過這樣做,您可能會增加很多技能。我目前正在編寫一個腳本引擎,並希望引入一個JIT編譯器來爲Windows平臺生成代碼。爲了達到這個目的,我將代碼列表添加到項目中以查看編譯器生成的彙編代碼。我知道的不完美,但給出了一個堅實的開始方向。

相關問題