数学建模社区-数学中国

标题: ntd.dll难住机器人发烧友 [打印本页]

作者: wangzheng3056    时间: 2013-7-25 17:54
标题: ntd.dll难住机器人发烧友
我为做机器人自学C++编程,在网上找了个程序改了一下。调试该程序总报错,因为ntd.dll的原因,无匹配的字符信息。我想把我C:\windows\system32\ntd.dll删除后,再下载一个新的ntd.dll替换,老的ntd.dll删不掉。请教专家们啦,看看我这程序错哪。9 \0 v/ r& i3 y$ q+ @9 O7 H
#include <iostream.h>& A( o9 N: ~$ F7 L1 a& j2 `* Q
#include <stdio.h># f2 ^& m& g# }9 `4 p% p  O/ @8 w
#include <math.h>. M" d  P0 J1 N' R- Y
typedef unsigned char BYTE;5 F5 O  C5 ^" o! o  V
long Ary2DW (unsigned char p[4]){
+ c# U5 _. @5 ]- R) j  gint a0,a1,a2,a3;unsigned long A;
4 `  d9 [4 |, H. J4 C2 za0=int (p[0]); a1=int (p[1]);
) s- D6 X1 h' R" N3 Na2=int (p[2]); a3=int (p[3]);
0 Q. P0 t+ P% g/ D% y5 ~# o8 PA=a3*256*256*256+a2*256*256*256+a0;
! G' G2 y6 H' ]- dreturn A;};//实现数的大小正确转换,转换为WORD所代表的实际值 ' K/ P1 ?* D6 F- e- P
typedef struct tagBITMAPFILEHEADER {" {/ L+ ~$ q, A0 i) _
BYTE bfType[2];BYTE bfSize[4];+ U9 o3 Y* n: ^  B
BYTE bfRcserved1[2];
- u$ C+ A4 @- q3 T( y2 ]BYTE bfRcserved2[2];
* l% @$ p( [- PBYTE bfoffBits[4];: [& [8 _  |+ G
}BITMAPFILEHEADER;//定义文件头格式,用相似的数据类型代替系统定义的数据类型$ j( G" r0 d% W1 U
typedef struct tagBITMAPINFOHEADER {+ K1 _, x- O' S  D
BYTE biSize[4];
8 D; @7 M" A$ JBYTE biWidth[4];
4 |0 j: z; e* C: W& L. C  X- jBYTE biHeight[4];+ [, T( P3 g. u# I
BYTE biCompression[4];8 A+ d% J3 R3 c* C$ e' i
BYTE biXPelsPerMeter[4];7 @+ i  n# y8 S* ^3 \
BYTE biYPelsPerMeter[4];
" y$ H6 x2 u$ [BYTE biClrUsed[4];
  F  Z7 [' _8 h5 u: @! C6 HBYTE biClrImportant[4];
# O" T) O2 k  v# ?. a& v8 Z}BITMAPINFOHEADER;//定义信息头格式,用相似的数据类型代替系统定义的数据类型
  N" ]  M9 X+ x! ~) d9 K# atypedef struct BitmapFile{
! A- `! \% v% FBITMAPFILEHEADER bmfheader;1 b" s/ h/ s% R" m/ T
BITMAPINFOHEADER bminfoheader;; W- d0 L& u% l" `  n7 c4 N
BYTE bitmapdata[3275520];+ ]- I  Q7 k& x9 _- A3 S5 G6 C9 z
}bitmap;//定义所处理图像文件对应BMP的文件格式
) h. y% p. _0 D//主函数,将图像区数据读入B、G、R三个数组$ J$ f9 J/ Q+ W4 F
int main()
8 i- y. X! H% q  {) \5 t3 v{8 X) I$ o1 n) G
bitmap *ample1;# B/ `; L  B# D. n' ~3 C: d
FILE *fp, *fp1;
  ~8 M$ Q" Z% u) A& _4 vBYTE R[1280][853],G[1280][853],B[1280][853];, ?0 n: O1 k* [
long k=0;) t  J) f! g, i5 S0 q
int i,j;
: D2 H: Q/ U; k1 e6 dchar name[20]="try.bmp";//读到新文件的文件名: q7 \0 J* n' O( _' k
fp=fopen("D:\\ample1.bmp","rb");//以二进制打开读文件
0 N0 Z, k/ v# ~  G; Kfp1=fopen(name,"wb");//为写建立一个新文件名2 X9 N4 Q2 i8 e9 w( r8 m; h0 E
if(! (ample1=new bitmap)){1 p; W8 \& j- J# l5 Q- g; ^2 k! O
cout<<"error"<<endl;return 0;
2 v1 x4 ?4 [2 C# o" w}0 i8 C" P7 Q" I- ]
else+ G  M2 d* _- H6 o1 z/ j4 R' Y
{
  I. x+ H4 r7 V3 Z1 F2 j+ R1 x( w  Jfread(ample1,sizeof(bitmap),1,fp);
; w& n4 _  o; C' t. C/ afwrite(ample1,sizeof(bitmap),1,fp1);3 ]  g& A1 j& h* m5 Z- z
cout<<"********位图文件头格式:********"<<endl;
! I: {$ y# L! T' I# R0 B' X# G' Kcout<<"位图文件的类型"<<ample1 -> bmfheader.bfType[0]<<ample1 -> bmfheader.bfType[1]<<endl;
& G1 T( |, Z' b3 xcout<<"位图文件的大小"<<Ary2DW(ample1 -> bmfheader.bfSize)<<"字节"<<endl;
) L* A, f$ H- I2 O% p- j! `; c/ D' g9 G$ gcout<<"********以下是图像数据区********"<<endl;/ O3 o0 e% U3 J. b0 z: G" X: [
//指定像素点,以16进制输出BGR值
" F$ N1 S! E7 M" W4 Lcout<<"像素点B通道的值"<<hex<<int (ample1 -> bitmapdata[0])<<endl;
9 s; [) z% z1 p, u3 ycout<<"像素点G通道的值"<<hex<<int (ample1 -> bitmapdata[1])<<endl;
9 ?5 j5 g0 v& O- P3 @cout<<"像素点R通道的值"<<hex<<int (ample1 -> bitmapdata[2])<<endl;6 i# U0 I1 K' I/ j5 o6 r
//将图像区数据读入 R、G、B三个数组
9 Q/ T3 ]" m9 d6 d) C5 [for(i=1280; i>=0; i--)( G0 }4 l, J4 u
for(j=0; j<853; j++)
, ^* i* e+ O9 k, Y3 N. @! W3 i{4 ?) F4 {( ]" t3 T  C2 \
B[i][j]=ample1 -> bitmapdata[k++]; 4 u1 K% u. z7 W2 O5 i
G[i][j]=ample1 -> bitmapdata[k++];
: u7 u' Z, u% i9 @' U( R( ?7 PR[i][j]=ample1 -> bitmapdata[k++];) z, b8 a2 a2 q3 Y! q
}
; e; f) W5 s8 |//检查是否将图像数据读入数组
  y* z# X6 \$ P4 `0 ~cout<<"********以下是内存数组数据********"<<endl;& a0 Y! O9 C! i/ v
cout<<"第一排第一个像素点B通道的值"<<int (B[0][0])<<endl;; N3 X( M/ T0 q) E3 E! F
cout<<"最后一排第一个像素点R通道的值"<<int (R[1280][0])<<endl;3 r, q) R4 O6 h, t. f: t6 I; j
return 1;
  L$ |  h/ H! ^}0 b+ ~" T4 Z& f* T4 F& f
delete ample1;
8 O8 J. m7 |6 E) Z0 x7 Ofclose(fp); ) \/ m  z' S# ^6 p* b$ P. b
fclose(fp1);" f# G( N8 z. a  \
}




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5