WEB开发网
开发学院软件开发C++ 利用VC++6.0的depends工具打开dll动态链接库文件及... 阅读

利用VC++6.0的depends工具打开dll动态链接库文件及函数封装

 2012-11-18 15:21:54 来源:WEB开发网   
核心提示:Status push(Sqstack &L,int xu,int zbj) // 压入位置 q表示行,p表示列{ if(L.top-L.bottom >= L.stacksize) { L.bottom=(cun*)realloc(L.bottom,(L.stacksize+STACK_ADD)*sizeof
Status push(Sqstack &L,int xu,int zbj)     // 压入位置 q表示行,p表示列
{
 if(L.top-L.bottom >= L.stacksize)
 { L.bottom=(cun*)realloc(L.bottom,(L.stacksize+STACK_ADD)*sizeof(cun));
 if(!L.bottom)
 {
 printf("内存分配失败!!");
 exit(-1);
 }
 L.top=L.bottom+L.stacksize;
 L.stacksize+=STACK_ADD;
 }
 L.top->xu=xu;
 (L.top++)->zbj=zbj;
 
 
 return OK;
}
Status pop(Sqstack &L,int &xu,int&zbj)   //  弹出 将栈顶的元素带回
{
 if(L.top == L.bottom)
 return ERROR; 
 xu=(--L.top)->xu;       //  这点自己犯的问题  不能--L.top->i  这样就表示值减1 ,没意义,出错
 zbj=L.top->zbj;
 return OK;
}
Status emptystack(Sqstack L)     //  判断栈为空
{
 if(L.top == L.bottom)
 return OK;
 else
 return ERROR;
}
Status gettop(Sqstack L,int &xu,int &zbj)
{
 if(L.top == L.bottom)
 return ERROR;
 else
 {
 xu=(L.top-1)->xu;
 zbj=(L.top-1)->zbj;
 return OK;
 }
}
void  GotoConsoleXY(HANDLE  hConsole,int  x,int  y)  // 定位光标位置
{ 
 COORD  coordScreen={x,y}; 
 SetConsoleCursorPosition(hConsole,coordScreen); 
 return; 
} 
void gotoxy(int  x,int  y)             // 定位光标位置
{ 
 HANDLE  hStdOut=GetStdHandle(STD_OUTPUT_HANDLE); 
 GotoConsoleXY(hStdOut,x,y); 
 return; 
}
void huatu(Sqstack &A,Sqstack &B,char (*b)[16],char (*a)[16],int e,int zbj,int l,int xu)  // 画图
{
 int xs,hs; 
 if(e<l)  //  从左到右
 { 
 for(int i=0;i<zbj-5;i++)  // 从塔中出来到达顶端
 { 
  gotoxy(e-xu+1,zbj-i);     //  定位对应盘的起始盘子代号
  printf("%s",*(b+xu-1));    //  输出对应的空格字符代号
  gotoxy(e,zbj-i);      //  定位盘子的位置
  printf("|");          // 输出竖杠
  gotoxy(e-xu+1,zbj-i-1);   //  定位产生动画的下一个光标位置
  printf("%s",*(a+xu-1));   //  打印出对应的盘子数
  Sleep(50);        // 暂停0.5毫秒
 } 
 for(i=0;i<l-e;i++)  //  平行移动
 { 
  gotoxy(e-xu+1+i,5);     //  定位平行的位置
  printf("%s",*(b+xu-1));   //  将其对应的清除
  gotoxy(e-xu+2+i,5);     //  定位下一个单位
  printf("%s",*(a+xu-1));   //  打印出对应的盘子
  Sleep(20);         //  暂停0.2毫秒
 }
 if(!emptystack(B))       //判断要移动到的盘子是否为空
  gettop(B,xs,hs);       //  得到该盘子的横行及序号
 else
  hs=14;         //  将横行置为最底层
 gotoxy(e-xu+1+i,5);    //  将要入盘的第一个位置定位
 printf("%s",*(b+xu-1));  //  输入对应空格覆盖
 gotoxy(e-xu+1+i,6);    //  定位入盘的光标位置
 printf("%s",*(a+xu-1));  //  空格覆盖
 Sleep(50);         //  暂停0.5毫秒
 for(int k=6;k<hs-1;k++)  //  进入要移动的指定塔上
 {
  gotoxy(e-xu+1+i,k); 
  printf("%s",*(b+xu-1));
  gotoxy(l,k);
  printf("|");
  gotoxy(e-xu+1+i,k+1);
  printf("%s",*(a+xu-1));
  Sleep(50);
 }
 push(B,xu,k);    // 将序数和位置入栈
 }
 else       //  从右到左
 {   
 for(int i=0;i<zbj-5;i++)
 {
  gotoxy(e-xu+1,zbj-i);
  printf("%s",*(b+xu-1));
  gotoxy(e,zbj-i);
  printf("|");
  gotoxy(e-xu+1,zbj-i-1);
  printf("%s",*(a+xu-1));
  Sleep(50);
 }
 for(int k=e;k>=l;k--)
 { 
  gotoxy(k-xu+1,5); 
  printf("%s",*(b+xu-1));
  gotoxy(k-xu,5);
  printf("%s",*(a+xu-1));
  Sleep(20);  
 }
 if(!emptystack(B))
  gettop(B,xs,hs);
 else
  hs=14;
 gotoxy(l-xu,5); 
 printf("%s",*(b+xu-1));
 gotoxy(l-xu+1,6);
 printf("%s",*(a+xu-1));
 Sleep(50);
 for( k=6;k<hs-1;k++)
 {
  gotoxy(l-xu+1,k); 
  printf("%s",*(b+xu-1));
  gotoxy(l,k);
  printf("|");
  gotoxy(l-xu+1,k+1);
  printf("%s",*(a+xu-1));
  Sleep(50);
 }
 push(B,xu,k);  //  将盘子序数和要入的光标位置
 }
 Sleep(500);  //  暂停0.5秒 
}

上一页  1 2 3 4 5  下一页

Tags:利用 VC depends

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接