数学建模社区-数学中国
标题:
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 g
int a0,a1,a2,a3;unsigned long A;
4 ` d9 [4 |, H. J4 C2 z
a0=int (p[0]); a1=int (p[1]);
) s- D6 X1 h' R" N3 N
a2=int (p[2]); a3=int (p[3]);
0 Q. P0 t+ P% g/ D% y5 ~# o8 P
A=a3*256*256*256+a2*256*256*256+a0;
! G' G2 y6 H' ]- d
return 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( [- P
BYTE 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$ J
BYTE biWidth[4];
4 |0 j: z; e* C: W& L. C X- j
BYTE 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 H
BYTE biClrImportant[4];
# O" T) O2 k v# ?. a& v8 Z
}BITMAPINFOHEADER;//定义信息头格式,用相似的数据类型代替系统定义的数据类型
N" ] M9 X+ x! ~) d9 K# a
typedef struct BitmapFile{
! A- `! \% v% F
BITMAPFILEHEADER 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 v
BYTE 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 d
char name[20]="try.bmp";//读到新文件的文件名
: q7 \0 J* n' O( _' k
fp=fopen("D:\\ample1.bmp","rb");//以二进制打开读文件
0 N0 Z, k/ v# ~ G; K
fp1=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 J
fread(ample1,sizeof(bitmap),1,fp);
; w& n4 _ o; C' t. C/ a
fwrite(ample1,sizeof(bitmap),1,fp1);
3 ] g& A1 j& h* m5 Z- z
cout<<"********位图文件头格式:********"<<endl;
! I: {$ y# L! T' I# R0 B' X# G' K
cout<<"位图文件的类型"<<ample1 -> bmfheader.bfType[0]<<ample1 -> bmfheader.bfType[1]<<endl;
& G1 T( |, Z' b3 x
cout<<"位图文件的大小"<<Ary2DW(ample1 -> bmfheader.bfSize)<<"字节"<<endl;
) L* A, f$ H- I2 O% p- j! `; c/ D' g9 G$ g
cout<<"********以下是图像数据区********"<<endl;
/ O3 o0 e% U3 J. b0 z: G" X: [
//指定像素点,以16进制输出BGR值
" F$ N1 S! E7 M" W4 L
cout<<"像素点B通道的值"<<hex<<int (ample1 -> bitmapdata[0])<<endl;
9 s; [) z% z1 p, u3 y
cout<<"像素点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 P
R[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 O
fclose(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