banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận hệ điều hành Windows C++ - Function chỉ nhận giá trị đầu tiên của mảng được truyền vào  XML
  [Programming]   C++ - Function chỉ nhận giá trị đầu tiên của mảng được truyền vào 23/04/2014 13:35:40 (+0700) | #1 | 280421
HellsAngel
Member

[Minus]    0    [Plus]
Joined: 14/01/2011 22:22:47
Messages: 1
Offline
[Profile] [PM]
Đây là function thực thi của mình:
Code:
void Player::handleRequest(unsigned char* buf, int len){
	try{
		short header;
		header = buf[2] + buf[3]*0x100;
		printf("HANDLER [%x] Player: %s (%d,%d)\n",header,this->getName(),this->getRegionId(),this->getMapId());
		handler->handle(PacketReader(buf, len, id));
	}
#ifdef DEBUG
	catch(PacketHandlingError ph){
		cout << ph.getError();
	}
	catch (BadQuery er ) {
		printf("%s\n", er.what());
	}
#endif
	catch(...){
		//TODO
	}
}


Còn đây là đoạn code gọi function trên:
Code:
bytesInBuffer += l;
		if (bytesInBuffer == packetSize){
			[B][COLOR="#FF0000"]player->handleRequest(buffer, packetSize);[/COLOR][/B]
			bytesInBuffer = 0;
		}


khai báo biến buffer:

Code:
private:
	unsigned char buffer[BUFFER_LEN];


Ở đoạn gọi function handleRequest, biến buffer khi chạy là 1 mảng có 29 giá trị nhưng khi mình debug vào function handleRequest thì biến buf chỉ nhận giá trị đầu tiên trong mảng buffer khi truyền vào
Các bác chỉ dùm mình xem mình sai ở đoạn nào với smilie
[Up] [Print Copy]
  [Programming]   C++ - Function chỉ nhận giá trị đầu tiên của mảng được truyền vào 25/04/2014 22:02:28 (+0700) | #2 | 280450
n2tforever
Member

[Minus]    0    [Plus]
Joined: 01/07/2011 15:39:51
Messages: 92
Offline
[Profile] [PM]
"biến buf chỉ nhận giá trị đầu tiên trong mảng buffer"

-> bạn kiểm tra đoạn này như thế nào mà khẳng định vậy?
[Up] [Print Copy]
  [Programming]   C++ - Function chỉ nhận giá trị đầu tiên của mảng được truyền vào 06/05/2014 16:59:28 (+0700) | #3 | 280560
[Avatar]
chiro8x
Member

[Minus]    0    [Plus]
Joined: 26/09/2010 00:38:37
Messages: 661
Location: /home/chiro8x
Offline
[Profile] [PM] [Yahoo!]
Bạn thử debug rồi watch giá trị của buf rồi mới nói tiếp được.
while(1){}
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|