C程序中内嵌汇编时链接出错!!

yshlake 2005-01-23 09:50:25
小弟的源文件C_Asm.C如下:
#include <stdio.h>
main()
{
_asm
{
mov ah,2;
mov dx,'*';
int 21h;
}
printf("\n The & above is printed in inline Assembly statement");
}

在TC3.0下没有错误,但在VC++ 6.0时出现链接错误如下:
Linking...
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
Debug/C_Asm.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
恳求正解!谢谢!
...全文
190 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Henry0 2005-01-24
  • 打赏
  • 举报
回复
int 21h;

不能用这句中断调用吧,在WIN32下
yuanqiongbo2002 2005-01-23
  • 打赏
  • 举报
回复
笨啊!
在xp+vc6.0下该程序能编译和连接.但是不能执行.
原因是:在2000/nt以上的系统中只有32位的代码!
在32位中可以调用16位的dd,理论上是可行的,但涉及到Thunk技术.
但是直接在32位的代码中嵌入16位代码是不可能的.

ybt631 2005-01-23
  • 打赏
  • 举报
回复
楼上玩d2的吧??
哪个站的?
  • 打赏
  • 举报
回复
int21是什么时代的东西,WIN32下是不能用地。
yshlake 2005-01-23
  • 打赏
  • 举报
回复
还有,在VC8下建立空项目,出现如下错误
未处理的“System.NullReferenceException”类型的异常出现在 未知模块 中。

其他信息: 未将对象引用设置到对象的实例。
yshlake 2005-01-23
  • 打赏
  • 举报
回复
楼上的佩服,小弟创建工程的时候一不小心点错了!创建的是Win32 application
但改成控制台类型后,编译链接没问题了,可是在执行时出现错误,好像是内存错误!
还望为小弟解答,谢谢!
pengzhenwanli 2005-01-23
  • 打赏
  • 举报
回复
没有问题啊。
我在VC7.1下编译。通过。
你重新建一个工程,把代码拷进去
oo 2005-01-23
  • 打赏
  • 举报
回复
你创建的工程不对,应该创建 win32 console类型的工程
playmud 2005-01-23
  • 打赏
  • 举报
回复
相应的库没有加进去

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧