首页
社区
课程
招聘
某公司笔试题目 求助
发表于: 2010-1-11 09:27 71139

某公司笔试题目 求助

2010-1-11 09:27
71139
收藏
免费 0
支持
分享
最新回复 (131)
雪    币: 285
活跃值: (16)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
26
不过,意思我是理解了,但就不知道为什么printf("hello world");运行到这就出错
2010-1-11 16:24
0
雪    币: 285
活跃值: (16)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
27
__asm
  {
    MOV   EAX,  OFFSET main
    MOV   BYTE PTR[EAX], 0xE8  //MOV  EAX, 0x
    MOV   DWORD PTR[EAX+1], OFFSET SHOWSTRING
    MOV   WORD PTR[EAX+5], 0xE0FF // JMP  EAX
  }
这段是修改main()函数,在其开头加入代码 jmp showstring
2010-1-11 16:26
0
雪    币: 338
活跃值: (103)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
28
Linking...
print.obj : error LNK2001: unresolved external symbol "int __cdecl mainCRTStartup(void)" (?mainCRTStartup@@YAHXZ)
Debug/printf.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.编译的时候提示这个
2010-1-11 16:35
0
雪    币: 285
活跃值: (16)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
29
mainCRTStartup不知道是什么函数,不知道哪冒出来的,可能是他写的函数没贴出来
2010-1-11 17:23
0
雪    币: 2105
活跃值: (424)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
30
hello.c
不是hello.cpp
2010-1-11 17:35
0
雪    币: 2105
活跃值: (424)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
31
void print()
{
  #pragma comment(linker, "/entry:print")

  void main();

  __asm
  {
      push offset main
  }
  puts ("i am MentalDease\n");
  __asm
  {
      ret
  }

}

void main()
{
  //printf ("main\n");
}
这个是错的,会crash,没有调用crtStartup
2010-1-11 17:37
0
雪    币: 378
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
32
刚试了下debug方式,确实如此。多些兄弟指正。不过release正常(开始用的release,没发现这BUG)。
2010-1-11 18:29
0
雪    币: 285
活跃值: (16)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
33
我机器上调试死活不对,楼上的是拿的什么编译器啊
2010-1-11 19:39
0
雪    币: 295
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
34
void print()
{
#pragma comment(linker, "/entry:print")
        void main();
        _asm pop ebx
        _asm pop esi
        _asm pop edi
        _asm mov esp,ebp
        _asm pop ebp
        _asm push offset main
        printf("Hello World!\n");
        _asm ret
}
这样改行不行?
感觉这道题与编译器有很大关系
2010-1-11 19:40
0
雪    币: 53
活跃值: (60)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
35
网上好像 有一类这样的题目....
2010-1-11 19:45
0
雪    币: 2105
活跃值: (424)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
36
就算是Release方式下也无法正常运行
必须显示调用crtStartup
2010-1-11 19:59
0
雪    币: 285
活跃值: (16)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
37
crtStartup是什么函数,要包含哪个库?
2010-1-11 20:15
0
雪    币: 378
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
38
不知道兄弟测试过没。我还是上张图吧
上传的附件:
2010-1-11 20:29
0
雪    币: 72
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
39
一道题,就可以区分…手机党,不上代码
2010-1-11 20:32
0
雪    币: 270
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
40
测试这段代码可以..
2010-1-11 20:44
0
雪    币: 320
活跃值: (248)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
41
我也来一个
int print()
{
        printf("Hello world!\n");
        return 0;
}

int main()
{
        return 0;
}

typedef int cb(void);

#pragma data_seg(".CRT$XIA")
static cb *autostart[] = {print};
#pragma data_seg()
2010-1-11 20:45
0
雪    币: 378
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
42
放OD里看了下。知道原因了。
00401000 >/$  68 20104000   PUSH test.00401020
00401005  |.  68 00304000   PUSH test.00403000                     ; /s = "i am MentalDease"
0040100A  |.  E8 21000000   CALL <JMP.&MSVCRT.puts>                ; \puts


那工程release设置是默认动态MFC库
所以调用的是MSVCRT里的puts

to 40楼的大哥。在main放个printf是为了证明能正常执行到main函数好吧
2010-1-11 20:58
0
雪    币: 2105
活跃值: (424)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
43
我这出不来 hello world
2010-1-11 21:04
0
雪    币: 30
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
44
printf ("hello world");
2010-1-11 21:07
0
雪    币: 2105
活跃值: (424)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
45
ls的大哥真NB
2010-1-11 21:09
0
雪    币: 173
活跃值: (132)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
46
被吓到了... 学习了
2010-1-11 21:12
0
雪    币: 285
活跃值: (16)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
47
nissassA  你建的工程不对,要建控制台程序,看清题意好不
2010-1-11 21:22
0
雪    币: 320
活跃值: (248)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
48
可以出来  我博客那里没把cb类型声明改成void 才出不来
2010-1-11 21:25
0
雪    币: 285
活跃值: (16)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
49
嗯,exile的程序可以通过
2010-1-11 21:46
0
雪    币: 285
活跃值: (16)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
50
不知道你是从哪知道mainCRTStartup这个函数的
2010-1-11 21:47
0
游客
登录 | 注册 方可回帖
返回
//