以前没怎么注意这个,知道今天搞驱动的时侯才注意到!我在debugman上自问自答,这里在写的详细一点:

现在最新的WDK6001.18002,改了驱动入口点

/entry:GsDriverEntry@8

“Windows Vista and Windows Server 2008 x86 Checked”的驱动连接了

1>E:/WINDDK/6001~1.180/lib/wlh/i386/BufferOverflowK.lib

1>E:/WINDDK/6001~1.180/lib/wlh/i386/ntoskrnl.lib

1>E:/WINDDK/6001~1.180/lib/wlh/i386/hal.lib

1>E:/WINDDK/6001~1.180/lib/wlh/i386/wmilib.lib

用WDK(6001.18002)编译的,但其实的编译器是vs2005的!

VC6的C库函数连接

/MD link with MSVCRT.LIB                 /MDd link with MSVCRTD.LIB debug lib

/ML link with LIBC.LIB                   /MLd link with LIBCD.LIB debug lib

/MT link with LIBCMT.LIB                 /MTd link with LIBCMTD.LIB debug lib

VS2008、VS2005、WDK6001的C库函数连接

/MD 与 MSVCRT.LIB 链接

/MT 与 LIBCMT.LIB 链接                  /MDd 与 MSVCRTD.LIB 调试库链接

/MTd 与 LIBCMTD.LIB 调试库链接

其实VC6的很多参数,到后来都有改动!!

C库函数是由编译时(CL)的上面几个参数指定的(这几乎被ms定死)

/Zl  从.obj 文件中移除默认库名(仅限 x86),VC6中没有

/NODEFAULTLIB    //Link的时侯忽略obj中指定的默认库

但奇怪的是编译驱动的时侯没有指定任何C库函数,其实这里真正的奥秘是:

/Oi  生成内部函数

弄了个例子,(没有加/Oi)

正在链接...

1>11.obj : error LNK2019: 无法解析的外部符号 _memcmp,该符号在函数 _main 中被引用

1>11.obj : error LNK2019: 无法解析的外部符号 __RTC_CheckEsp,该符号在函数 _main 中被引用

1>11.obj : error LNK2001: 无法解析的外部符号 __RTC_Shutdown

1>11.obj : error LNK2001: 无法解析的外部符号 __RTC_InitBase

1>LINK : error LNK2001: 无法解析的外部符号 _mainCRTStartup

正在链接...(加/Oi)

1>11.obj : error LNK2001: 无法解析的外部符号 __RTC_Shutdown

1>11.obj : error LNK2001: 无法解析的外部符号 __RTC_InitBase

1>LINK : error LNK2001: 无法解析的外部符号 _mainCRTStartup

1>./Debug/11.exe : fatal error LNK1120: 3 个无法解析的外部命令

豁然开朗:

_disable

_outp

fabs

strcmp

_enable

_outpw

labs

strcpy

_inp

_rotl

memcmp

strlen

_inpw

_rotr

memcpy

_lrotl

_strset

memset

_lrotr

abs

strcat

可以intrinsic那么多函数啊,,哈哈……

其实用IDA分析obj文件也能看出点名堂来……

换句话说,如果调用上面名单之外的库函数,而ntosknrl又没导出的,就不行了…………

c语言怎么连接库,C语言库函数的连接相关推荐

  1. c语言在线练习题库,C语言练习题库(含答案).doc

    C语言习题题库C语言习题题库C语言习题题库 程序填空 共2题 第1题 /*------------------------------------------------------- [程序填空] ...

  2. 用g++编译生成动态连接库*.so的方法及连接

    用g++编译生成动态连接库*.so的方法及连接 1.动态库*.so的编译 这里我们用到4个文件,它们分别为:SoDemoTest.h.one.cpp.two.cpp.three.cpp.它们的内容如下 ...

  3. c语言上级题库,c语言上级题库.doc

    c语言上级题库 1: 第1题 m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人作为函数值返回,将低于平均分的分数放在below所指定的函数中. 答案: int fun ...

  4. c语言不安全库_C语言中不安全的库函数及解决方案

    函数严重性解决方案gets      最危险        使用 fgets(buf, size, stdin).这几乎总是一个大问题!strcpy   很危险        改为使用 strncpy ...

  5. c语言常用的库,C语言的一些常用标准库分享

    有很多工程师喜欢自己封装一些标准库已有的函数,其实自己封装的函数,并不一定比标准库好,有时候反而代码更冗余,且有bug.下面就来分享一下C语言常见的一些标准库. 标准头文件包括: 一.标准定义() 文 ...

  6. c语言编写词库_C语言课程设计--电子生词库软件

    C语言课程设计--电子生词库软件 程序设计基础实训任务书程序设计基础实训任务书 题目电子生词库软件 学生姓名 学号 班级 题目类型软件工程(R) 指导教师 一.设计目的一.设计目的 1.进一步掌握和利 ...

  7. c语言上机考题库,C语言上机考题库.doc

    2006年9月上机考试题库 说明:上机考试正式系统题库中共有50套题目,考生随机从中抽取一套进行考试.例如,如果你考的是二级C语言上机考试,那么你输入准考证号并确认后,机器将从正式题库的50套题中随机 ...

  8. java支持库 易语言_Java支持库|简易语言源网络|易语言资源网| e5a5x

    Java支持库 支持库名称: Java支持库2.0版 相关文件: C: \ ProgramFiles(x86)\ e \ lib \ Javalib.fne 数字签名: F3DA9F65E55F47c ...

  9. C语言的集合库C语言STL

    不知道这个题目是否合适,因为C语言是没有模板的,好吧,我承认,用集合来描述比较合适.下面是项目地址: https://github.com/mtaxot/c-collection 那么强大的C语言,当 ...

最新文章

  1. php点击字切换验证码,PHP生成图片验证码、点击切换实例 Web程序 - 贪吃蛇学院-专业IT技术平台...
  2. PHP--认识Smarty模板引擎
  3. 年末最大AI盛典!2020深度学习开发者峰会报名启动
  4. ubuntu安装VMware出错
  5. 状压[Jxoi2012]奇怪的道路
  6. ModuleNotFoundError: No module named ‘keras.api‘
  7. Zabbix实战-简易教程--WEB类--Nginx
  8. mac环境变量配置文件加载优先级
  9. 谷歌地图动画_Google地图上的动画路线
  10. stm32f401 边沿捕获_stm32f401ret6例程 嵌入式1 STM32F401开发实战1—LED闪烁和串口收发数据 - 硬件设备 - 服务器之家...
  11. 网络游戏外挂制作(3)
  12. 关于MySQL8的URL和Driver的写法
  13. 纯字母域名批量注册的详细步骤
  14. 文献阅读笔记 # Bitcoin: A Peer-to-Peer Electronic Cash System
  15. Scala - IEEE754 浮点标准与 Float / Double 转换
  16. 2022.1.3bili上面登录:139 733xxx
  17. 查询数据库重复记录方法
  18. Java Web关键字填空
  19. c++课程设计日历记事本
  20. Covenant利用分析

热门文章

  1. 对象深浅拷贝的四种方法
  2. matlab导入excel表格数据并进行动态画图
  3. python实现股票选取
  4. 物联网系统源码 智慧物联网源码
  5. STM32模拟IIC协议驱动AD7991/AD7995/AD7999芯片
  6. GNSS模块在“智慧交通”的应用
  7. 解决IMX6从 uboot调试usb start 命令无法识别U盘的问题
  8. 2021年R1快开门式压力容器操作免费试题及R1快开门式压力容器操作考试总结
  9. AppStore被Rejected 的各种原因
  10. 【工作复盘】2020年10月8日 9月份工作复盘