全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1861
推到 Plurk!
推到 Facebook!

为什么在编译后的EXE文件中找不到程序中CONST的内容?

答題得分者是:wameng
treachery
一般會員


發表:5
回覆:3
積分:1
註冊:2007-10-01

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-10-03 02:13:36 IP:61.138.xxx.xxx 訂閱
我在程序中用CONST定义了多个常量
以便能够通过直接修改EXE来修改程序的参数
但是我发现有一部分CONST的内容可以直接在EXE中找到,而有一些却找不到,请问这是为什么呢?也没有找到这其中的规律。
我想大概是与编译器的编译优化有关,有没有人知道为什么呢?
真诚的谢谢你们了!
------
跳舞吧,如同没有任何人注视你一样;
唱歌吧,如同没有任何人聆听一样;
去爱吧,如同从来没有受过伤害一样;
工作吧,如同不需要金钱一样;
活着吧,如同今天是末日一样;
----艾佛烈德.德索萨
wameng
版主


發表:31
回覆:1336
積分:1183
註冊:2004-09-16

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-10-03 17:09:02 IP:61.222.xxx.xxx 訂閱
編譯過的 Exe 怎麼可能找得到 Const 定義呢?
應該是不可靠的。

倒不如使用 Resource 。
syntax
尊榮會員


發表:26
回覆:1139
積分:1258
註冊:2002-04-23

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-10-06 08:35:35 IP:61.64.xxx.xxx 訂閱
如果你的程式是單一檔案
如果你的常量是簡單型態 Str, Int
沒有理由找不到

你如何找?

檔案在記錄上,是反過來 (Little-End...)

如 Const A = $A0E0

檔案內應該是 E0 A0

同時,Const 只是代入,所以會在該程式碼那一行出現,不會向 Resource 一樣集中在一起
當前大部分的 Compiler 都是這樣做的,個人還沒聽過,會對常量做特殊處理(壓縮或編碼)的 Compiler



===================引 用 treachery 文 章===================
我在程序中用CONST定义了多个常量
以便能够通过直接修改EXE来修改程序的参数
但是我发现有一部分CONST的内容可以直接在EXE中找到,而有一些却找不到,请问这是为什么呢?也没有找到这其中的规律。
我想大概是与编译器的编译优化有关,有没有人知道为什么呢?
真诚的谢谢你们了!
系統時間:2017-10-21 1:58:01
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!