ironmo
驱动牛犊
驱动牛犊
  • 注册日期2003-11-27
  • 最后登录2022-06-10
  • 粉丝0
  • 关注0
  • 积分247分
  • 威望27点
  • 贡献值0点
  • 好评度22点
  • 原创分0分
  • 专家分0分
阅读:2291回复:4

★★★★★★★怪!使用extern \"C\" 出错syntax error \"string\"★★★★★★★

楼主#
更多 发布于:2003-12-16 16:02
请教专家:
    我在使用两个驱动程序之间函数调用的出现上面的怪问题,
    我在其中的一个.sys驱动程序中输出了一个函数,在另外一个驱动进行调用的时候出了大问题
    如果这样宣称extern  __declspec(dllimport) void _stdcall test();
    编译提示error LNK2001: unresolved external symbol __imp__test@0
objchk\\i386\\mydriver.sys() : error LNK1120: 1 unresolved externals
  
     如果这样宣称extern  \"C\" __declspec(dllimport) void _stdcall test();
     编译提示error C2059: syntax error : \'string\'
error C4013: \'test\' undefined; assuming extern returning int


     没招,搞不定
承接驱动开发和安装包制作
ironmo
驱动牛犊
驱动牛犊
  • 注册日期2003-11-27
  • 最后登录2022-06-10
  • 粉丝0
  • 关注0
  • 积分247分
  • 威望27点
  • 贡献值0点
  • 好评度22点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-12-16 16:58
斑竹:

     请指导一下菜鸟!:)
承接驱动开发和安装包制作
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-12-17 16:37
两个驱动分开编译的?分开肯定不行,但放在一起我觉得不对吧,要在一个驱动用另外一个例程可以在一个里面找到第二个驱动的数据空间(比如第二个得设备扩展)在将第二个的例程地址放到里面,第一个就直接调用好了,得到设备对象的指针用IoGetDeviceObjectPointer
根据地的兄弟们,团结就是力量
fracker
驱动太牛
驱动太牛
  • 注册日期2001-06-28
  • 最后登录2021-03-30
  • 粉丝0
  • 关注0
  • 积分219分
  • 威望81点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分1分
  • 社区居民
地板#
发布于:2003-12-19 11:07
提供API的驱动要设置成为Export_driver,并且添加一个.def文件,指明那些函数要export,编译成功后,会生成一个.lib文件,将这个.lib文件加入到调用的驱动里面,就可以连接通过了。
fracker
驱动太牛
驱动太牛
  • 注册日期2001-06-28
  • 最后登录2021-03-30
  • 粉丝0
  • 关注0
  • 积分219分
  • 威望81点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分1分
  • 社区居民
地下室#
发布于:2003-12-19 11:07
其实驱动的调用方式,跟调用动态连接库语法都一样。
游客

返回顶部