導航:首頁 > 源碼編譯 > 反編譯後看不到構造函數

反編譯後看不到構造函數

發布時間:2022-07-22 17:52:00

㈠ 反編譯會隱藏子類構造函數裡面的super()語句嗎

反編譯本來就不能保證100%還原的,循環/遞歸/調用嵌套過多的還會出現goto語句呢

㈡ Flash反編譯問題,用碩思閃客精靈,遇到了一個被ZLib壓縮的swf文件 反編譯後幾乎看不到東西 求解

正版的閃客精靈也搞不定樓主的問題
樓主需要ASV2011來提取裡面的真實swf
不過這個軟體注冊費用幾百元 破解版又找不到的

而且只有2011版的才有這個功能,老版本的沒有

㈢ 為什麼C#寫的程序用Reflector打開 反編譯後 就只能夠看到方法,方法裡面的代碼全被影藏了,要不就是然會 0

可能代碼被混淆過。
或者就的確返回了0

㈣ C# 構造函數到底是什麼,請用有構造函數的.cs文件舉例說明吧

SqlParameter[] parameters = {
new SqlParameter("@UID", SqlDbType.NVarChar,100),
new SqlParameter("@PID", SqlDbType.Int,4)
};

你代碼里就有一個有用的例子

在你實例話SQLPARAMETERS的時候,構造函數當中傳遞了3個參數,可以直接對對象的屬性賦值,當然了,你也可以用對象.屬性=的形式去完成賦值!

舉例說明一下吧,當你需要用到一個用於數據訪問的底層抽象類的時候,一個業務當中需要用到多個資料庫聯系起來,那麼你怎麼做到讓這個底層類去支持動態的配置連接字元串?

這個時候你就可以採用訂制一個類的靜態欄位,然後構造函數當中對這個欄位賦值,那麼當你訪問這個對象的時候,就可以使用你想要的字元連接串了!

public class demo
{

private static string connstr;

public demo(string str)
{
this.connstr=str;
}

\\用於訪問資料庫的靜態方法
}

用的時候就

demo dm=new demo("連接字元串")
dm.方法

這個樣子的!構造函數的功用只能說在通常的應用當中被發現的。。。。當然了可能我舉的例子不全面,寫的多了,你就會發現以後太多的地方需要用到這個東西了,多多理解面向對象的含義吧!

至於你說的那個空構造函數,那個是默認的,你就是刪了,編譯器也會為你加上去,你的程序執行的時候並不是執行.CS文件,而是CS文件被編譯後的程序集,你可以反編譯出來你的DLL,就可以看到雖然.CS文件中沒有默認構造函數,編譯後也會被加上去的!

㈤ doapk為什麼提示反編譯成功但卻什麼文件都沒有生成

要把文件放到doapk的文件夾里,還要把反編譯後存放的目錄設置成doapk的文件夾。

立即提示反編譯成功實際上是失敗了,反編譯需要較長時間

http://bbs.shen.com/thread-2074183-1-1.html

java子類構造函數初始化問題

剛剛想當然的回答了一個3,然後發現不妥,試了一下果然不對,就可恥的把回答刪除了,刪除後居然不能重新回答,果斷重新注冊個號回答

首先我們加上點東西

publicclassDemo10{
publicstaticvoidmain(String[]args){
newJoo();
}
}
classIoo{
inta=3;
publicIoo(){
System.out.println("Ioo構造方法執行");
System.out.println("Ioo中this類型為:"+this.getClass().getSimpleName());//查看this是什麼類型
this.t();

System.out.println("Ioo構造方法執行完畢");
}
publicvoidt(){
System.out.println("執行Ioo的t方法");
System.out.println(this.a);
System.out.println("Ioo中的t方法執行完畢");
}
}
classJooextendsIoo{
intb=3;
publicJoo(){
System.out.println("Joo構造方法執行完畢");
}
@Override
publicvoidt(){
System.out.println("執行Joo中的t方法");
System.out.println(this.b);
System.out.println("Joo中的t方法執行完畢");
}
}

輸出結果為:

-------------------------------------

Ioo構造方法執行

Ioo中this類型為:Joo

執行Joo中的t方法

0

Joo中的t方法執行完畢

Ioo構造方法執行完畢

Joo構造方法執行完畢

-------------------------------------

為什麼輸出的是0呢?又為什麼Ioo中this的類型會是Joo呢?

接下來我們反編譯一下class文件

classIoo{
inta;
publicIoo(){
a=3;
System.out.println("Ioo構造方法執行");
System.out.println("Ioo中this類型為:"+getClass().getSimpleName());
t();
System.out.println("Ioo構造方法執行完畢");
}

publicvoidt(){
System.out.println("執行Ioo的t方法");
System.out.println(a);
System.out.println("Ioo中的t方法執行完畢");
}
}
classJooextendsIoo{
intb;
publicJoo(){
b=3;
System.out.println("Joo構造方法執行完畢");
}

publicvoidt(){
System.out.println("執行Joo中的t方法");
System.out.println(b);
System.out.println("Joo中的t方法執行完畢");
}
}

我們可以看出,成員變數的賦值操作是放到了構造方法中執行的,我們根據控制台輸出語句的順序來模擬java的執行順序,由於我們實例化的是子類Joo,他會首先執行父類的構造方法,我們先來看執行順序

  1. a賦值為3

  2. 輸出"Ioo構造方法執行"

  3. 由於this代表當前對象,那麼既然是實例化Joo時調用的方法,this代表的就是Joo,故輸出Joo

  4. 執行t方法(由於class反編譯後,this.被簡化了,所以我們觀察源代碼,this.t(),既然this的類型是Joo,那麼this.t()執行的就是Joo中的t方法)。此時控制台輸出"執行Joo中的t方法"

  5. 此時應該執行System.out.println(b),我們想當然的以為應該是3,結果卻輸出了0,原因是這樣:我們在Joo的構造方法中加入了輸出語句,可是在控制台,此時並沒有輸出"Joo構造方法執行完畢",可見Joo的構造方法並沒有執行,就是b = 3的賦值語句同樣沒有執行,此時的b默認值為0,故控制台輸出了0。

  6. 此時t方法執行完畢,輸出"Joo中的t方法執行完畢",Ioo的構造方法也執行完畢,輸出"Ioo構造方法執行完畢"

  7. 父類Ioo的構造方法執行完畢,最後執行子類Joo的構造方法,我們看到,此時的b才被賦值為3,最後輸出"Joo構造方法執行完畢"

  8. 至此,模擬完成,有不懂的可以再hi我,不要hi這個號,這號只是為了臨時回答注冊的,如無意外,不會再上,我常用的叫kq346635081,在這條回答的評論里

㈦ 孫鑫的《VC++ 深入詳解》關於「編譯器合成的默認構造函數」有錯誤!

你得到的事實並不能證明什麼。
你單純定義了一個類,它的默認構造函數什麼都不會做,編譯運行,什麼結果你都看不到。
你可以定義一個父類,一個子類,然後在父類里寫一個構造函數,在裡面列印一句話。
然後在main里,定義一個子類的對象,看能否輸出內容。
也就是:
#Include <stdio.h>
class testClassA
{
public:
testClassA(){ printf("testClassA\n"); }
int iVal;
};

class testClassB : testClassA
{
int iValb;
}
void main()
{
testClassB bTest;
}

㈧ 寫的一個c++ string類的構造函數部分 然後發現編譯的時候沒報錯 運行了之後編譯器掛了 麻煩大神看看

問題在operator=()
String& operator=(const String& s)
{
if (this != &s)
{
delete[] pstr;
pstr = s.pstr; //這是個淺拷貝,造成交叉鏈接,兩個指針指向同一個地方了
}
和拷貝構造函數一樣,要進行深拷貝,改了下:

.......
String& operator=(const String& s)
{
if (this != &s)
{
delete[] pstr;
pstr = new char[strlen(s.pstr) + 1];
strcpy_s(pstr, strlen(s.pstr) + 1, s.pstr); //用拷貝字元串的函數
}
return *this;
}
......

㈨ c#默認的無參構造函數的代碼在哪裡可以看到

你用反編譯工具reflector可以查看到
按照規范每個類最好帶一個無參的構造,因為調用者如何使用你的類的方式很多,比如一些開源框架可能通過反射機制使用你的類

閱讀全文

與反編譯後看不到構造函數相關的資料

熱點內容
多級壓縮的原理 瀏覽:864
java項目開發案例視頻 瀏覽:70
文件夾快速查找表格不同內容 瀏覽:493
合並排序演算法java 瀏覽:920
如何將文件夾刪除的部分恢復 瀏覽:808
eco為什麼連接不上伺服器 瀏覽:294
查看linux的命令是 瀏覽:12
蘋果郵件伺服器地址 瀏覽:343
U盤超級加密3000時間 瀏覽:737
如何跟別人解釋什麼是伺服器 瀏覽:939
安卓11原生如何隱藏軟體 瀏覽:712
解壓清潔面部女士 瀏覽:856
美的變頻空調壓縮啟動一下報p1 瀏覽:472
濟南如何申請app多少錢 瀏覽:166
帶加密功能的u盤啟動盤製作 瀏覽:819
計算機編程知識 瀏覽:436
c語言編程軟體都有哪些 瀏覽:157
解壓一半可以取消嘛 瀏覽:121
住宅風水pdf 瀏覽:240
文件夾rundir什麼意思 瀏覽:973