首页
社区
课程
招聘
[求助]Can open file "LIBC.lib",我没有用到这个库里的函数,怎么会有这个提示?
发表于: 2006-7-2 21:32 8777

[求助]Can open file "LIBC.lib",我没有用到这个库里的函数,怎么会有这个提示?

2006-7-2 21:32
8777
我是汇编win32的初学者,自己写了一个从1加到100,并把结果打印在屏幕上的程序,代码如下:

.386
.model flat,stdcall
option casemap:none
includelib msvcrt.lib
printf PROTO c:DWORD ,:VARARG
.data
sum DWORD 0
N EQU 100
szFmt BYTE 'factorial (%d)=%d',0
.code
start:
      mov ecx,N
      mov eax,1

  d10:
      mov sum,eax
      add sum,1
      loop d10
      invoke printf,offset szFmt,N
end start
      
编译的时候错误提示: 
LINK:fatal error LNK1104:cannot open file "LIBC.lib"

奇怪,我并没有使用这个库文件包含的函数,哪会提示..不解中............

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 291
活跃值: (213)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
2
msvcrt.lib要用的
用动态的库,不要用静态的
2006-7-3 00:38
0
雪    币: 796
活跃值: (370)
能力值: ( LV9,RANK:380 )
在线值:
发帖
回帖
粉丝
3
动态的库?

我搜了几个编译器都没有这个动态库  并且上面的msvcrt.lib库函数还是我用

工具把msvcrt.dll变出来的.......

动态库和静态库有什么区别吗?
2006-7-3 01:35
0
雪    币: 721
活跃值: (350)
能力值: ( LV9,RANK:1250 )
在线值:
发帖
回帖
粉丝
4
下面是我写的一个版本,加了部分注释。

;在下面的程序中,我用edx来代替sum,这样程序会运行得更快些。
.386
.model flat,stdcall
option casemap:none

include windows.inc
include kernel32.inc
include user32.inc

includelib kernel32.lib
includelib user32.lib

.data?
szSum        DB        100 DUP(?)

.data
N           DWORD 100
szFmt         DB        '1到100的和是: %d',0
szCaption db        '求和测试'

.code
start:
      mov ecx,N
      xor eax,eax    ;这一条指令和下一条指令和起来意为mov eax,1 ,这样生成的机器码更少
      inc eax      
      xor edx,edx     

  @@:
      add edx,eax  ;sum=edx
      inc eax
      loop @B
     
      invoke wsprintf, addr szSum, addr szFmt,edx      ;windows下,新的格式化输出函数      
      invoke MessageBox,NULL,addr szSum,addr szCaption,MB_OK      
      invoke ExitProcess,NULL                          ;没有这个函数,程序退出时会产生异常.
      
end start
2006-7-3 08:44
0
雪    币: 796
活跃值: (370)
能力值: ( LV9,RANK:380 )
在线值:
发帖
回帖
粉丝
5
果真!  看雪论坛最大的优点就是 解决问题很彻底!

嘿嘿,我先看斑竹给的代码,看完再自己修改一下...
2006-7-3 19:14
0
雪    币: 0
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
6
呵呵
写的很8错
学习了
2006-7-4 04:41
0
游客
登录 | 注册 方可回帖
返回
//