Download as pdf or txt
Download as pdf or txt
You are on page 1of 8

Hng dn thc hnh: Nhp mn lp trnh Lp 07DB_A/B

Ngi son: Nguyn Hi Minh


Email: nhminh@fit.hcmuns.edu.vn

CH : CC LI THNG GP KHI BIN DCH


CHNG TRNH TRN VC++ 6.0
---oOo---

I. GII THIU
Khi bin dch chng trnh (F7), ch ca s Build di, cc thng tin v li (errors) v
cnh bo (warnings) nu c s c lit k chi tit y:

V d trong hnh: dng mu vng l li, mu xanh l cnh bo. Con s pha trc mi
li/cnh bo cho bit s th t dng code xut hin li/cnh bo ( y l dng th 9). Da
vo nhng k hiu cng nh thng tin v li/cnh bo ny, bn c th tm ra nhanh chng li
ca mnh nm u v cch sa nh th no.
Cc bc cn lm khi bin dch chng trnh c li:
1) Xem c bao nhiu li, bm F4 nhy n dng cha li u tin
2) c xem thng bo li l g, sa li
3) Bin dch li project (F7) ri quay li bc 1

Trang 1
Hng dn thc hnh: Nhp mn lp trnh Lp 07DB_A/B

II. MT S LI THNG GP
C2143: Syntax error : missing <du> before <cu lnh>
Li c php (syntax error), thng l thiu du ng ngoc, chm phy

V d: (9) missing ; before return => Thiu du ; trc cu lnh return dng 9. R sot
li trc dng 9, pht hin thiu du ; sau cu lnh printf(Hello World!)

C1010: unexpected end of file while looking for precompiled header directive
Li ny xut hin khi bn khng to Empty project m to mt project c sn (Hello World)
vi 2 file c to sn l StdAfx.h v StdAfx.cpp. Vi loi project ny, bn phi #include
StdAfx.h ngay u file .cpp cha hm main ca bn. Nu khng trnh bin dch s bo li nh
trn. Cch gii quyt:
Cch 1: Thm dng #include StdAfx.h vo ngay u file .cpp cha code chng
trnh ca bn

Trang 2
Hng dn thc hnh: Nhp mn lp trnh Lp 07DB_A/B

Cch 2: Vo Project Settings chuyn sang tab C/C++, chn Precompiled


Headers trong Category, check vo Not Using Precompile Header

C2001: newline in constant


Li ny thng gp khi mt chui hay k t khai bo m qun ng ngoc kp hay

V d: chui a vo lnh printf (dng th 8) thiu du ng ngoc kp

Trang 3
Hng dn thc hnh: Nhp mn lp trnh Lp 07DB_A/B

C2065: '<data-member name>' : undeclared identifier


Li ny l do bn s dng mt bin hay hm con m cha khai bo bin/hm trong
phm vi s dng.

V d:
Dng 8 s dng bin giatri cha c khai bo
Dng 9 s dng hm abs cha c khai bo
Dng 10 s dng hm Xuat cha c khai bo
Cch gii quyt: thm vo cc khai bo thch hp (khai bo hm abs c t trong math.h)

Trang 4
Hng dn thc hnh: Nhp mn lp trnh Lp 07DB_A/B

C2447: missing function header (old-style formal list?)


Li ny thng gp khi s dng du ; trc du { trong thn hm.
V d:
void Function(int a, int b);
{
a = a + b;
}
C2556: '<function-name>' : overloaded functions only differs only by return type
C2371: '<function-name>' : redefinition; different basic types
Hai li ny thng gp khi c s khng khp nhau gia kiu ca hm trong khai bo hm
v trong nh ngha hm
V d:
Khai bo hm: int Function(int a, int b);
Ci t: void Function(int a, int b)
{
a = b * 2.3;
return a;
}

Trang 5
Hng dn thc hnh: Nhp mn lp trnh Lp 07DB_A/B

C2601: '<function-name>' : local function definitions are illegal


Li ny xy ra khi bn nh ngha mt hm bn trong thn mt hm khc, thng gp khi
bn qun ng du ngoc nhn } kt thc mt hm bn trn. Li ny thng i km vi li
C1004: unexpected end of file found

V d: hm main c hiu l hm bn trong hm Xuat v iu ny khng c php


(illegal). T dn n file source code khng c kt thc hp l. Trng hp ny ch cn
thm du ngoc nhn ng hm Xuat (hm ngay pha trn hm bo li main) li.

LNK1168: cannot open Debug\<Project-Name>.exe for writing


Li ny xy ra khi bn ang m file thc thi trong khi bin dch li project ca mnh. Lc
ny, trnh kt ni (link editor) c gng ghi thng tin ln mt file .exe ang c s dng nhng
khng c. File .exe l file thc thi v n s c gn thuc tnh chng ghi cho n khi
chng trnh m n thc thi kt thc.
Cch gii quyt: Nhn xung thanh trng thi di cng ca mn hnh v tm xem chng
trnh ca bn c ang chy hay khng, nu c tt n i ri bin dch li.

Trang 6
Hng dn thc hnh: Nhp mn lp trnh Lp 07DB_A/B

LNK2001: unresolved external symbol _main


Li ny xy ra khi project ca bn khng c hm main()
Cch gii quyt: vit hm main() cho project. (C lun tm kim hm main() v ch thc thi
hm main() m thi)
i vi cc li khng lit k trn y, cc bn c th vo MSDN tra cu cch sa. Cch
tra: g s hiu li (v d C2556) vo Search ri Enter

III. BI TP P DNG
1. Thng k tng s li v chi tit cc li khi bin dch project MyErrors, cho bit
ngha v cch sa tng li. (Lu : c mt s li khng lit k trn, cc bn t tm
hiu). Sa li cc li (sau khi sa c th pht sinh li mi, cn thng k cho ti khi
no bin dch khng cn li). V d:
STT Li ngha Sa
1 error C2628: void i sau SINHVIEN l Thm du ; vo cui khai bo
SINHVIEN followed by khng hp l, c th bn struct nh sau:
void is illegal (did you qun du ; sau struct SINHVIEN
forget a ;?) SINHVIEN {
char ten[20];
char mssv[7];
float diem;
};
2

2. Sau khi chng trnh ht li, chy th chng trnh vi thng s nh sau v ghi li
kt qu chy ca 2 hm TimSVTrungTen v TimSVTrungDiem
S lng sinh vin: 4
Sinh vin 1: Nguyen Van An 07DB999 10
Sinh vin 2: Nguyen Thanh Son 07DB998 5
Sinh vin 3: Nguyen Van An 07DB997 4.5
Sinh vin 4: Nguyen Van An 07DB996 5
3. Hy debug chng trnh v lit k cc tham s quan st trong tng bc Debug ca
hm TimSVTrungTen v TimSVTrungDiem

Trang 7
Hng dn thc hnh: Nhp mn lp trnh Lp 07DB_A/B

C th:
Debug hm TimSVTrungTen
flag 0 0 0
i 0 0 0
j 1 2 3
sv_array[i].ten 0x0012ff1c a
sv_array[j].ten 0x0012ff3c a
Tng t cho hm TimSVTrungDiem
4. T bng lit k cu 3, hy cho bit hm TimSVTrungTen v TimSVTrungDiem
lm g? (tham s u vo l g? Kt qu u ra l g? Cc bin flag, i, j c ngha g?)
5. Cu 2 cho kt qu ng hay sai? Nu sai, hy cho bit li sai nm u? xut cch
sa nu c th.
6. Theo bn, chng trnh cn c th tim n nhng li no na hay khng? Nu c hy
nu ra c th l do v cch sa.
# Np bi: Bi lm bng file Word, t tn file l MSSV.doc (V d: 07DB333.doc); ghi
r h tn, MSSV, lp, ca hc vo u bi lm (V d ca hc: sng th 5, PM2), ln lt tr
li tng cu hi. Np bi ln Moodle (chung 1 link duy nht cho cc ca)
# Thi hn: 1 tun [t ngy 22/02/2008 n 23h55 ngy 29/02/2008]
# im cng: khng bt buc np, bi np s tnh l bi tp cng im (phi lm t nht 5
cu)
# im tr: cc bi lm ging nhau (>70%) s c tr 1 im vo bi thi cui k.

Trang 8

You might also like