如何修改記憶體內的資料呢?? |
答題得分者是:aftcast
|
nokialiu
一般會員 發表:3 回覆:3 積分:1 註冊:2006-07-08 發送簡訊給我 |
各位大大:小弟有一問 我打算利用以下程式去修改記憶體位置中的字串;但始終在執行時會跳出錯誤.想請教哪裡出了問題呢. void __fastcall TForm1::Button1Click(TObject *Sender) { int len = Edit1->Text.Length(); AssignMem(Edit2->Text.c_str(),len,0x100519EC); } if(ptr==NULL) ShowMessage("Ptr Error"); for(i=0;i |
justdo
高階會員 發表:2 回覆:359 積分:222 註冊:2004-08-17 發送簡訊給我 |
|
nokialiu
一般會員 發表:3 回覆:3 積分:1 註冊:2006-07-08 發送簡訊給我 |
|
aftcast
站務副站長 發表:81 回覆:1485 積分:1763 註冊:2002-11-21 發送簡訊給我 |
不曉得你為何很確定那個位址可以Access,但若你真的很確定可以,那還有一個很嚴重的問題…
各位大大:小弟有一問 我打算利用以下程式去修改記憶體位置中的字串;但始終在執行時會跳出錯誤.想請教哪裡出了問題呢.
void __fastcall TForm1::Button1Click(TObject *Sender) { int len = Edit1->Text.Length();
AssignMem(Edit2->Text.c_str(),len,0x100519EC); } if(ptr==NULL) ShowMessage("Ptr Error"); for(i=0;i
------
蕭沖 --All ideas are worthless unless implemented-- C++ Builder Delphi Taiwan G+ 社群 http://bit.ly/cbtaiwan |
nokialiu
一般會員 發表:3 回覆:3 積分:1 註冊:2006-07-08 發送簡訊給我 |
首先感謝大大的詳細指正觀念! 在下真是受寵若驚,又上了一課了 只是程式每次執行到以下紅色敘述時就會發生錯誤.是指指標無法去更動嗎?真是另人百思不解!!!! void __fastcall TForm1::AssignMem( char *buf, int len,unsigned long const base_address) if(ptr==NULL) ShowMessage("Ptr Error"); for(i=0;i { ptr ;buf ; |
aftcast
站務副站長 發表:81 回覆:1485 積分:1763 註冊:2002-11-21 發送簡訊給我 |
回到原點,如果你照我上面講的做了修正還有這問題,那肯定是ptr所指的地方不是你能夠去動的。在memory中的資料不是你想動就可以動的,如果你試著寫入的地方是read only的區塊,就會出現access violation ! 你是不是看到這樣的錯誤訊息? 真的有些好奇,不知是否方便講為何你很肯定那個位址是可以被寫的? 如果方便,可以把你的功能需求說明清楚嗎? 或者把完整一點的程式碼貼上來…也許可以幫你run並追一下問題。 *ptr = *buf; //這行時就會發生錯誤 ptr ;buf ;
------
蕭沖 --All ideas are worthless unless implemented-- C++ Builder Delphi Taiwan G+ 社群 http://bit.ly/cbtaiwan |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |