zhangchunxia
驱动牛犊
驱动牛犊
  • 注册日期2002-03-27
  • 最后登录2004-05-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1539回复:3

在driverstudio开发环境中,怎么用DOUBLE 或者 FLOAT 等数据类型!??

楼主#
更多 发布于:2002-06-27 10:55
我在WIN2000中开发wdm驱动程序.用了了DOUBLE 数据类型,编译都通过了,可是在连接的时候出现了如下的错误:
Pci6208sDevice.obj : error LNK2001: unresolved external symbol __fltused
Pci6208sDevice.obj : error LNK2001: unresolved external symbol __ftol
.\\objchk\\i386\\Pci6208s.sys : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.
Creating browse info file...

Pci6208s.sys - 3 error(s), 3 warning(s)
是怎么回事??望各位高手指点!!??谢谢!!!
nice
dazzy
驱动中牛
驱动中牛
  • 注册日期2001-03-23
  • 最后登录2008-08-12
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望10点
  • 贡献值1点
  • 好评度10点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-06-27 13:33
这个问题我回答过有好几次了,用float作为关键字搜索吧!
zhangchunxia
驱动牛犊
驱动牛犊
  • 注册日期2002-03-27
  • 最后登录2004-05-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-06-27 17:22
谢谢!
我按照你说的
dazzy




中级会员



回答得分 : 0
贴子数量 : 220
注册日期 : 2001/3/23
在线情况 : 在线
   发表于: 2001/8/22 - 09:29
#ifdef __cplusplus
extern \"C\"
#endif
ULONG _fltused=1;
..........
double floatValue,a,b;
........
nstatus = KeSaveFloatingPointState(&saveData);

if (NT_SUCCESS(nstatus)) {
a = 4.22;
b= 3.33;
floatValue = a*b;
DbgPrint(\"The float value is %8.8lxn\",floatValue);
floatValue = 14.0526;//=a*b
KdPrint((\"The float value is %8.8lxn\",floatValue));
floatValue = sin(1.57);
KdPrint((\"The float value is %8.8lxn\",floatValue));
floatValue = 0.9999996829318346202;//=sin(1.57);
KdPrint((\"The float value is %8.8lxn\",floatValue));
KeRestoreFloatingPointState(&saveData);
}

可是问题已然存在!一点都没变!是什么原因???望指点!!!!
nice
zhangchunxia
驱动牛犊
驱动牛犊
  • 注册日期2002-03-27
  • 最后登录2004-05-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-06-27 18:07
非常感谢!!现在问题解决了!!原因是我写错了:
#ifdef __cplusplus //我写成了#ifdef _cplusplus,少了一个下划线,这有什么要紧吗??可是错误提示中的__fltused是两根下划线,而我们说明却是一个,不是为什么??能否指点?谢谢!
extern \"C\"
#endif
ULONG _fltused=1;
nice
游客

返回顶部