happyhhhh2
驱动牛犊
驱动牛犊
  • 注册日期2006-04-11
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分423分
  • 威望66点
  • 贡献值0点
  • 好评度45点
  • 原创分0分
  • 专家分0分
阅读:2422回复:3

关于驱动程序与dll交互的问题,人都折腾疯了!!

楼主#
更多 发布于:2007-06-29 21:48
小弟想在驱动程序编译的时候加入了一个由dll引出的函数一起编译想让其共同完成驱动的生成,仅在passive_level上调用,于是写了下面的两个简单的驱动跟函数验证下行否,结果郁闷了,按照正常的应用程序+连接库的渠道未能通过编译,显示下面信息,还请各位指教为何会如此呀?实在不明白,已经晕了无数次了.
unresolved external symbol "__declspec(dllimport) int __stdcall getlen(int)" (__imp_?getlen@@YGHH@Z) referenced in function "long __stdcall Wdm1Pnp(struct _DEVICE_OBJECT *,struct _IRP *)" (?Wdm1Pnp@@YGJPAU_DEVICE_OBJECT@@PAU

dll里函数极其简单:
int getlen(int size)
{
int b = 2;
b += size;
 return b;
}
在驱动里调用地点是pnp中
    int c = getlen(4);
附件名称/大小 下载次数 最后更新
wdmtest.rar (53KB)  18 2007-06-29 21:48
jwc19790313
驱动牛犊
驱动牛犊
  • 注册日期2007-09-21
  • 最后登录2009-09-28
  • 粉丝0
  • 关注0
  • 积分80分
  • 威望9点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-09-26 10:44
提示这个错误是由于连接时候找不到函数的定义,我只会在win32应用程序里调用dll,驱动中没弄过。在应用程序里调用dll有显式和隐式之分。你的调用应该不正确吧。把dll的lib文件加到link里面试下。
JenyCheng
驱动小牛
驱动小牛
  • 注册日期2005-07-26
  • 最后登录2021-01-24
  • 粉丝2
  • 关注0
  • 积分57分
  • 威望646点
  • 贡献值0点
  • 好评度119点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2007-09-30 23:30
cecily
驱动牛犊
驱动牛犊
  • 注册日期2004-08-04
  • 最后登录2013-05-16
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望86点
  • 贡献值1点
  • 好评度14点
  • 原创分0分
  • 专家分0分
地板#
发布于:2008-06-12 11:35
应用的DLL驱动是不能调用的,如果要在驱动里调用,DLL需要改写成驱动层的方式
我不是你的天使,我不懂你的天堂
游客

返回顶部