Re: [問題] DOS視窗程式問題

看板C_and_CPP作者 (傻傻)時間14年前 (2009/12/17 21:48), 編輯推噓2(2039)
留言41則, 4人參與, 最新討論串2/2 (看更多)
※ 引述《kyokb (傻傻)》之銘言: : dear all, : 我有一個程式test.exe,這個程式本身是用dos畫面來操作 : 當我在命令提示字元打上test後即可開啟這個程式 : 開啟test後畫面如下面,跟一般軟體一樣只是他的視窗是dos畫面 : _________________________ : File|Edit|View|Run|.... | : | : | : | : | : ________________________| : 在操作上的話 : ex:要開啟file案alt+f : 我的問題是類似這種dos畫面操作的程式 : 我是否有辦法用c語言直接把test上的功能 : 轉成我自己寫的gui介面來使用? : 舉例來說,就有點像borland C++ builder的IDE環境在執行compiler,debug : 但背後是在跑bcc32這個程式或turbo debugger : 有類似經驗的大大麻煩指點迷津一下小弟會很感謝..... ============================================================ 可能標題不夠好所以誤會我要寫dos的程式@@" 應該說我要寫一個gui介面,但實際上在跑的是呼叫那個dos程式在跑 ex:我可以在cmd內下指令 gcc -c -o test.o test.c 來進行編譯並產生執行檔 相對的我也可以在gui介面上寫一個button叫compile 而做的事情也是gcc -c -o test.o test.c同樣的事 表面上是那個button在動作,但實際上是gcc.exe這個程式在跑 只是我目前要用的那個DOS程式並不像gcc可以用command方式來執行 而是用熱健(ex: ALT+F, Ctrl+B,或方向鍵...etc.)來操作它提供的功能 我個問題是如果遇到像熱健這種情況,有沒有辦法可以把那個dos程式的功能 轉成我在gui上面操作一樣,如果可以該怎下手寫... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.133.3.38

12/17 21:52, , 1F
我有一點不明白, 如果那個test.exe本身是DOS GUI, 你要
12/17 21:52, 1F

12/17 21:53, , 2F
怎麼讓你的Win GUI的內容和DOS結果同步??
12/17 21:53, 2F

12/17 21:53, , 3F
要GUI掛一個console核心不是問題, DevCPP看起來就是這樣
12/17 21:53, 3F

12/17 21:54, , 4F
包裝的; 但是你的console本身有DOS GUI, 你又沒有DOS程
12/17 21:54, 4F

12/17 21:54, , 5F
式的source code; 如果你真的要硬幹, 變成要去研究找找
12/17 21:54, 5F

12/17 21:54, , 6F
看DOS event與Win GUI的event有沒有辦法互通.
12/17 21:54, 6F

12/17 21:55, , 7F
所以才會說, 最好可以直接用你的GUI搭DOS核心, 而中間
12/17 21:55, 7F

12/17 21:55, , 8F
DOS GUI的部份最好可以整個抽離掉....@_@"
12/17 21:55, 8F

12/17 22:05, , 9F
所以v大的意思是開發一個給別人開發程式的程式
12/17 22:05, 9F

12/17 22:05, , 10F
不適合用bcc32搭配turbo debugger嗎@@" 我也是卡在turbo
12/17 22:05, 10F

12/17 22:08, , 11F
因為我不會有那個debugger的source code 這樣滿難處理
12/17 22:08, 11F

12/17 22:15, , 12F
何不用gcc+gdb?都是命令列工具,front-end 比較好寫。
12/17 22:15, 12F

12/17 22:15, , 13F
甚至根本不用寫,一堆現成的。
12/17 22:15, 13F

12/17 22:16, , 14F
推樓上; 另外, bcc32是bcb的嗎??bcb應該也有debugger吧?
12/17 22:16, 14F

12/17 22:18, , 15F
bcc32是DOS的Borland C/C++ Compiler,其Turbo Debugger
12/17 22:18, 15F

12/17 22:19, , 16F
是支TUI(ncurse-like)程式
12/17 22:19, 16F

12/17 22:26, , 17F
感謝各位指導,我馬上改gcc+gdb 不過這樣我遇到另一個問題
12/17 22:26, 17F

12/17 22:29, , 18F
我原本的gui是bcb寫的, 所以我原先的compiler功能其實是
12/17 22:29, 18F

12/17 22:31, , 19F
將別人寫的code先存成.cpp檔然後在用這個cpp編譯成dll
12/17 22:31, 19F

12/17 22:33, , 20F
然後再從我的gui上動態呼叫dll來達到執行別人編譯後的code
12/17 22:33, 20F

12/17 22:34, , 21F
而debug功能是在cmd上打 gdb xxx.exe =>exe就是我寫的gui
12/17 22:34, 21F

12/17 22:36, , 22F
我知道gdb沒有辦法執行一個bcb所寫的exe 這樣我是不是
12/17 22:36, 22F

12/17 22:36, , 23F
寫gui的程式不能用bcb?
12/17 22:36, 23F

12/17 22:39, , 24F
如果我的gui改用有支援GNU的編譯器與GDB的QT寫會比較適合?
12/17 22:39, 24F

12/17 22:41, , 25F
我想釐清一下,你的 GUI 程式是要拿來做 gdb 的圖型介面
12/17 22:41, 25F

12/17 22:42, , 26F
還是說你的GUI程式是被debug的標的?
12/17 22:42, 26F

12/17 22:49, , 27F
我要debug標的是那個dll檔,只是那個dll有被我的gui執行
12/17 22:49, 27F

12/17 22:50, , 28F
而且debug不是只能.exe 或.com嗎@@ 所以我才會在gdb內
12/17 22:50, 28F

12/17 22:51, , 29F
輸入我的gui.exe
12/17 22:51, 29F

12/17 22:53, , 30F
小弟學的不夠,所以不知道一般程式開發環境是如何讓使用者
12/17 22:53, 30F

12/17 22:53, , 31F
那你的 GUI/DLL 必須用能支援 gdb 的 compiler 編譯才行
12/17 22:53, 31F

12/17 22:54, , 32F
那可以嘗試假造一個跟dll有著一樣symbol的dll
12/17 22:54, 32F

12/17 22:54, , 33F
可以讓使用者寫完程式又可以在ide環境上直接執行
12/17 22:54, 33F

12/17 22:55, , 34F
所以會想到將使用者寫的程式先存成cpp檔在轉dll
12/17 22:55, 34F

12/17 22:55, , 35F
咦?推 sunneo 大的方法 :D 不過 DLL 有 source code 換
12/17 22:55, 35F

12/17 22:55, , 36F
個 compiler 編譯吧。
12/17 22:55, 36F

12/17 22:56, , 37F
直接讓那個dll在我的gui上執行@@ 不然我也沒別招了
12/17 22:56, 37F

12/17 22:56, , 38F
讓dll一面做事一面log event 因此gui可以透過event知道狀態
12/17 22:56, 38F

12/17 22:56, , 39F
kyokb 你的疑惑在那些 open source 的 IDE 裡自有解答呀
12/17 22:56, 39F

12/17 23:09, , 40F
sun大的方法小弟不太懂@@, 不過至少讓我找到方向,感謝各位
12/17 23:09, 40F

12/17 23:10, , 41F
也感謝sa大提醒, 我先去找找open source IDE看看
12/17 23:10, 41F
文章代碼(AID): #1BAZQoMn (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1BAZQoMn (C_and_CPP)