数学建模社区-数学中国
标题:
ntd.dll难住机器人发烧友
[打印本页]
作者:
wangzheng3056
时间:
2013-7-25 17:54
标题:
ntd.dll难住机器人发烧友
我为做机器人自学C++编程,在网上找了个程序改了一下。调试该程序总报错,因为ntd.dll的原因,无匹配的字符信息。我想把我C:\windows\system32\ntd.dll删除后,再下载一个新的ntd.dll替换,老的ntd.dll删不掉。请教专家们啦,看看我这程序错哪。
, x) @ E: _$ R8 ?# e9 d2 ], F
#include <iostream.h>
1 [) \) t4 Z8 v/ a! [
#include <stdio.h>
$ s3 p; x o, r6 s( z3 o
#include <math.h>
# D) F+ [; q7 S8 N- P9 Y& \3 h
typedef unsigned char BYTE;
2 w2 s* X6 ~9 r8 ~% H+ e
long Ary2DW (unsigned char p[4]){
$ p1 s5 D1 M- |( H% i4 o
int a0,a1,a2,a3;unsigned long A;
4 o9 h" d2 `7 H0 s/ r0 B5 |2 c# ]* g
a0=int (p[0]); a1=int (p[1]);
% O" }4 m( L7 D( p' b1 q
a2=int (p[2]); a3=int (p[3]);
; `$ t9 B* L. T7 ^5 k' Z/ O8 V" J
A=a3*256*256*256+a2*256*256*256+a0;
& q$ K/ O3 R( }. i
return A;};//实现数的大小正确转换,转换为WORD所代表的实际值
3 _ E5 n4 q& E. v) h0 S8 S
typedef struct tagBITMAPFILEHEADER {
- w( X. K; ~5 _2 c" y; A. y& ^
BYTE bfType[2];BYTE bfSize[4];
+ {" n; Z Q$ g, r
BYTE bfRcserved1[2];
' r3 U- l8 t2 x9 w/ w! N
BYTE bfRcserved2[2];
* c! T; `- Z2 |5 d, o
BYTE bfoffBits[4];
7 B7 }1 L- H+ H1 w" S7 Y- ]
}BITMAPFILEHEADER;//定义文件头格式,用相似的数据类型代替系统定义的数据类型
) K) V+ W+ m3 a9 u
typedef struct tagBITMAPINFOHEADER {
- D, F; I* q2 L
BYTE biSize[4];
/ a3 B- g# r$ g* D
BYTE biWidth[4];
0 [4 K1 n. |0 W# j* s& |
BYTE biHeight[4];
2 m9 i8 S+ s5 G5 d1 u9 t8 [
BYTE biCompression[4];
6 ^: u, o3 T! A
BYTE biXPelsPerMeter[4];
7 M9 [5 c* e9 F* a; L
BYTE biYPelsPerMeter[4];
7 r+ L- S: n8 _3 N; N0 J
BYTE biClrUsed[4];
" w" `% k) D' a- g% t
BYTE biClrImportant[4];
: f4 N% g# H; v+ V
}BITMAPINFOHEADER;//定义信息头格式,用相似的数据类型代替系统定义的数据类型
# y) {3 ^ U4 l( Q K/ K4 ?' N
typedef struct BitmapFile{
# v0 I1 B0 M+ y
BITMAPFILEHEADER bmfheader;
# g1 k3 D, c. C# R8 K4 K/ r
BITMAPINFOHEADER bminfoheader;
. w. W+ l3 v3 {% {2 d# ?
BYTE bitmapdata[3275520];
8 C j' w' S. A0 ^; h" |
}bitmap;//定义所处理图像文件对应BMP的文件格式
6 X, h# ^$ D7 ?6 V
//主函数,将图像区数据读入B、G、R三个数组
. W( n7 T& M$ {( A; g
int main()
6 Y+ q r0 S9 e/ G- }! m* G
{
) j* n7 D; g, v" ^; {/ [5 v6 n9 D
bitmap *ample1;
+ h, I* ?: ?6 ]
FILE *fp, *fp1;
6 i$ ~; ^( i; J7 H+ d6 {$ b! D- `
BYTE R[1280][853],G[1280][853],B[1280][853];
: {6 m, \& \% P& A8 C
long k=0;
& c5 I) b8 g4 E0 J1 o/ u( O
int i,j;
- Q7 p: n2 M4 |
char name[20]="try.bmp";//读到新文件的文件名
0 T+ P7 W5 T$ x4 ^/ w* W; z
fp=fopen("D:\\ample1.bmp","rb");//以二进制打开读文件
' D9 a/ {/ n1 P$ N3 c- U
fp1=fopen(name,"wb");//为写建立一个新文件名
, F8 W0 b' p' i! L9 n1 D
if(! (ample1=new bitmap)){
( c2 D" _ }6 R1 j/ s- {8 M; l
cout<<"error"<<endl;return 0;
; d1 V) E* c/ E5 u; S0 E4 T' F+ X
}
# K; O# \& t+ J% d; }$ @3 j* x
else
% a/ X$ Q- ^* ^# ?
{
4 Q; P9 A6 w$ f* q* U! j! u
fread(ample1,sizeof(bitmap),1,fp);
! ]2 b' L$ B7 f2 m8 y5 l
fwrite(ample1,sizeof(bitmap),1,fp1);
% h4 a! {- E3 K1 H- d8 p& @5 l
cout<<"********位图文件头格式:********"<<endl;
& _. q/ ]; h! C0 L; g9 I+ l
cout<<"位图文件的类型"<<ample1 -> bmfheader.bfType[0]<<ample1 -> bmfheader.bfType[1]<<endl;
6 @. u3 _+ ~6 h5 v
cout<<"位图文件的大小"<<Ary2DW(ample1 -> bmfheader.bfSize)<<"字节"<<endl;
, x# R1 M; [( D4 [
cout<<"********以下是图像数据区********"<<endl;
7 _$ J2 c! [' z0 w; y, H3 ~) g
//指定像素点,以16进制输出BGR值
' L N; { _7 S8 w
cout<<"像素点B通道的值"<<hex<<int (ample1 -> bitmapdata[0])<<endl;
; O8 R# t1 p* k# r( v/ \) {
cout<<"像素点G通道的值"<<hex<<int (ample1 -> bitmapdata[1])<<endl;
$ B% f: C) Y4 H4 d
cout<<"像素点R通道的值"<<hex<<int (ample1 -> bitmapdata[2])<<endl;
" r3 a% u5 O5 [3 k5 A
//将图像区数据读入 R、G、B三个数组
7 r9 f# v0 P) c/ @% X C
for(i=1280; i>=0; i--)
2 j9 u! k+ ~- [, ^" [) A: h8 @" ?
for(j=0; j<853; j++)
' L7 E$ W9 ? u, g# ?4 G# D1 x9 o
{
+ q# q, Z7 P% m9 s; _$ ?! k
B[i][j]=ample1 -> bitmapdata[k++];
7 v0 [* G8 `- z" f P- l
G[i][j]=ample1 -> bitmapdata[k++];
6 P. t( ^) D2 _ r* Y. B& O
R[i][j]=ample1 -> bitmapdata[k++];
' k4 o3 V+ _, W% t7 v5 j
}
5 Y) M5 m2 R( j3 G* u) k6 e! k
//检查是否将图像数据读入数组
* s- }2 B8 Z/ c4 Y9 c3 z' y
cout<<"********以下是内存数组数据********"<<endl;
& t1 Z3 x3 d. S k* P3 a
cout<<"第一排第一个像素点B通道的值"<<int (B[0][0])<<endl;
$ o" j( H+ J( k# _- c2 p- z
cout<<"最后一排第一个像素点R通道的值"<<int (R[1280][0])<<endl;
# E2 e5 x) J' _2 G( o% x
return 1;
! b0 A' z' W( e+ D1 ~6 _( h
}
4 A9 W1 M/ F& S7 ^* ~8 ^" ~
delete ample1;
, h% F1 W8 F7 C5 e6 E6 {
fclose(fp);
5 Q; N* }1 k, s( c
fclose(fp1);
7 E7 a: j. b5 z; e
}
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5