![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-10-31 12:20 |
共 47,815 主题排行 / 349,930 发帖 / 今日 0 篇 / 48,290 会员排行 |
| DOS开发编程 & 发展交流 (开发室) » 函数指针,为什么这么写是错误的 |
| 可打印版本 868 / 1 |
| 第1楼 misssir | 发表于 2008-04-25 09:50 |
| 初级用户 发帖 8 积分 22 来自 石家庄 | |
|
函数指针,为什么这么写是错误的 void hello()
{ printf("hello every one"); } #define BYTE unsigned char #define WORD unsigned int #define DWORD unsigned long DWORD ptr_hello; void main() { WORD* ptr = (WORD *)ptr_hello; ptr[1] = FP_SEG(&hello); ptr[0] = FP_OFF(&hello); __asm { call ptr_hello } while(!kbhit()); } 我想做一下实验,结果是编译通过,不能执行,说CPU遇到无效的命令,请教为什么这样不行呢 |
|
| 第2楼 misssir | 发表于 2008-04-25 10:04 |
| 初级用户 发帖 8 积分 22 来自 石家庄 | |
|
惭愧,我写错了 WORD* ptr = (WORD *)ptr_hello;
应该是 WORD* ptr = (WORD *)(&ptr_hello); |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |