Lib导入函数名为什么会加上__imp?

lostboy7931 2013-08-18 08:09:55
我要使用pcre.h和pcre.lib两个文件

代码中显式添加静态链接库
#include "pcre.h"
#pragma comment(lib,"pcre.lib")
……
re = pcre_compile(pattern, 0, &error, &erroffset, NULL); //该函数在pcre.h中声明


编译提示
error LNK2019: 无法解析的外部符号 __imp__pcre_compile,该符号在函数 _main 中被引用

为什么函数名前多了_imp几个字符?
...全文
2167 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lm_whales 2013-08-19
  • 打赏
  • 举报
回复
无法解析,说明函数没有定义,或者没有导出,至少lib的导入表,里没有这个函数,有可能是版本不对。
lm_whales 2013-08-19
  • 打赏
  • 举报
回复 1
__imp,说明那不是真正的静态库,而是某个动态库的导入库 导入函数和函数自己不同名,所以加__imp 比如__imp_printf忘了有没有后缀了,就是 printf函数
赵4老师 2013-08-19
  • 打赏
  • 举报
回复
VS IDE中,在不明白的符号上点鼠标右键,选转到定义。
事后猪葛 2013-08-19
  • 打赏
  • 举报
回复
import 是输入的意思 而imp 只是表示这个函数的作用这个意思
事后猪葛 2013-08-19
  • 打赏
  • 举报
回复
说就实在话,就算你知道了,也没什么用,知道他是这么做的就可以了,因为你也不可能对它做什么修改
  • 打赏
  • 举报
回复 1
引用 5 楼 lm_whales 的回复:
__imp,说明那不是真正的静态库,而是某个动态库的导入库 导入函数和函数自己不同名,所以加__imp 比如__imp_printf忘了有没有后缀了,就是 printf函数
正解......
lostboy7931 2013-08-18
  • 打赏
  • 举报
回复
自己顶下,拜托了orz

65,201

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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