易码技术论坛

 找回密码
 加入易码
搜索
查看: 122333|回复: 3

addr的问题,还有错误,急!

[复制链接]
发表于 2006-2-15 09:20:00 | 显示全部楼层
这是修改后的代码:

  1. #define YES 1
  2. #define NO 0
  3. void show_tip(int clear,addr name,int positon_x,int position_y) //显示提示
  4. {
  5. if(clear)
  6. Block(0,50,160,80,0);
  7. TextOut(positon_x*6-6,position_y*13+38,name,1);
  8. Refresh();
  9. }

  10. void show_des(addr address) //显示规则描述,背景描述
  11. {
  12. char buffer[28];
  13. int count;
  14. int length;
  15. int start,prestart;
  16. int position;
  17. start=0;
  18. position=0;
  19. do
  20.   {
  21.   count=0;
  22.   length=0;
  23.   prestart=start;
  24.   for(;*(address+length+start);)
  25.    {
  26.    if(*(address+length+start)<=128)
  27.     count++;
  28.    length++;
  29.    if(!(length-26) && count%2-1)
  30.     {
  31.     memmove(buffer,address+start,26);
  32.     buffer[26]=0;
  33.     start=start+26;
  34.     break;
  35.     }
  36.    else if(!(length-27) && count%2)
  37.     {
  38.     memmove(buffer,address+start,27);
  39.     buffer[27]=0;
  40.     start=start+27;
  41.     break;
  42.     }
  43.    }
  44.   if(!*(address+length+prestart))
  45.    { //[color=RED]原代码这里可能会导致误判[/color]
  46.    memmove(buffer,address+prestart,27);
  47.    start=start+length;
  48.    }
  49.   if(position)
  50.    {
  51.    show_tip(NO,buffer,1,2);
  52.    Delay(2000);
  53.    position=0;
  54.    }
  55.   else
  56.    {
  57.    show_tip(YES,buffer,1,1);
  58.    position=1;
  59.    }
  60.   }
  61. while(*(address+start));
  62. }

  63. void f(char mission)
  64. {
  65. addr string_1;
  66. addr string_2;
  67. string_1="警告:本计算机程序受著作权法和国际公约的保护,未经授权擅自复制或散布本程序的部分或全部,将承受严厉的民事和刑事处罚,对已知的违反者将给予法律范围内的全面制裁。";
  68. string_2="警告:本计算机程序受著作权法和国际公约的保护,未经授权擅自复制或散布本程序的部分或全部,将承受严厉的民事和刑事处罚,对已知的违反者将给予法律范围内的全面制裁。";

  69. if(mission==1)
  70.   show_des(string_1);
  71. else if(mission==2)
  72.   show_des(string_2);
  73. }

  74. void main()
  75. {
  76. f(1); //显示string_1指向的字符串
  77. getchar();
  78. f(2); //显示string_2指向的字符串
  79. getchar();
  80. }
复制代码



 楼主| 发表于 2006-2-15 17:14:00 | 显示全部楼层
运行ok,但有静态认证错误,在位置27

ps Eastsun 修改前就有这个错误,谁能告诉我为什么?3Q

发表于 2006-2-15 18:53:00 | 显示全部楼层
你用release版认证,没问题的。

debug版会出现上述问题,这个只有问lee了。
 楼主| 发表于 2006-2-15 07:46:58 | 显示全部楼层 |阅读模式
[upload=txt]viewFile.asp?ID=5454[/upload]
由main调用f函数,参数为1显示string_1,参数为2显示string_2。

显示string_1时正常,显示string_2时就有问题了,内容不全。

如果不调用f(1),直接f(2)也不行,可见与f(1)无关,这是为什么,代码那里错了?

[此贴子已经被作者于2006-2-15 17:15:24编辑过]

13311_33467_5454.txt

2 KB, 下载次数: 562

您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2025-8-24 17:41 , Processed in 0.011686 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表