fengli_long
驱动牛犊
驱动牛犊
  • 注册日期2003-03-22
  • 最后登录2003-06-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:3100回复:6

各位大虾!急切请教:关于windriver api函数的使用!

楼主#
更多 发布于:2003-05-18 20:17
小弟正调试一块 9054的PCI卡,在WINDRIVER里自带的大都是类DOS下
的例子,现在我得在vc++6.0(win2000系统)下调用其API函数,我把p9054_lib.h/c 包含到我的一个对话框应用程序,编译出现下面情况:
--------------Configuration: Mypci - Win32 Debug------------Compiling...
MypciDlg.cpp
Generating Code...
Compiling...
p9054_lib.c
c:\\windriver\\plx\\9054\\lib\\p9054_lib.c(985) : fatal error C1010: unexpected end of file while looking for precompiled header directive
Generating Code...
Error executing cl.exe.

Mypci.exe - 1 error(s), 0 warning(s)
非常着急,恳求大虾给个方法!感谢感谢!!!
雅芳
fengli_long
驱动牛犊
驱动牛犊
  • 注册日期2003-03-22
  • 最后登录2003-06-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-05-18 21:06
有回答说:(在vc下)
将c文件改名cpp,并包含 stdafx.h
照做之后,上面错误消失,新错误如下:
--------------Configuration: Mypci - Win32 Debug----
Compiling...
p9054_lib.cpp
C:\\WinDriver\\plx\\9054\\lib\\p9054_lib.cpp(297) : error C2664:

\'P9054_IsAddrSpaceActive\' : cannot convert parameter 2 from \'unsigned long\' to

\'P9054_ADDR\'
        Conversion to enumeration type requires an explicit cast (static_cast,

C-style cast or function-style cast)
C:\\WinDriver\\plx\\9054\\lib\\p9054_lib.cpp(527) : error C2664: \'P9054_ReadByte\' :

cannot convert parameter 2 from \'unsigned long\' to \'P9054_ADDR\'
        Conversion to enumeration type requires an explicit cast (static_cast,

C-style cast or function-style cast)
C:\\WinDriver\\plx\\9054\\lib\\p9054_lib.cpp(534) : error C2664: \'P9054_WriteByte\' :

cannot convert parameter 2 from \'unsigned long\' to \'P9054_ADDR\'
        Conversion to enumeration type requires an explicit cast (static_cast,

C-style cast or function-style cast)
C:\\WinDriver\\plx\\9054\\lib\\p9054_lib.cpp(541) : error C2664: \'P9054_ReadWord\' :

cannot convert parameter 2 from \'unsigned long\' to \'P9054_ADDR\'
        Conversion to enumeration type requires an explicit cast (static_cast,

C-style cast or function-style cast)
C:\\WinDriver\\plx\\9054\\lib\\p9054_lib.cpp(548) : error C2664: \'P9054_WriteWord\' :

cannot convert parameter 2 from \'unsigned long\' to \'P9054_ADDR\'
        Conversion to enumeration type requires an explicit cast (static_cast,

C-style cast or function-style cast)
C:\\WinDriver\\plx\\9054\\lib\\p9054_lib.cpp(555) : error C2664: \'P9054_ReadDWord\' :

cannot convert parameter 2 from \'unsigned long\' to \'P9054_ADDR\'
        Conversion to enumeration type requires an explicit cast (static_cast,

C-style cast or function-style cast)
C:\\WinDriver\\plx\\9054\\lib\\p9054_lib.cpp(562) : error C2664: \'P9054_WriteDWord\'

: cannot convert parameter 2 from \'unsigned long\' to \'P9054_ADDR\'
        Conversion to enumeration type requires an explicit cast (static_cast,

C-style cast or function-style cast)
C:\\WinDriver\\plx\\9054\\lib\\p9054_lib.cpp(570) : error C2664:

\'P9054_ReadWriteBlock\' : cannot convert parameter 6 from \'unsigned long\' to

\'P9054_ADDR\'
        Conversion to enumeration type requires an explicit cast (static_cast,

C-style cast or function-style cast)
Error executing cl.exe.

Mypci.exe - 8 error(s), 0 warning(s)
雅芳
fengli_long
驱动牛犊
驱动牛犊
  • 注册日期2003-03-22
  • 最后登录2003-06-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-05-18 21:47
针对上面问题,我强制转换之后,又有新错误:
p9054_lib.obj : error LNK2001: unresolved external symbol _Stat2Str
p9054_lib.obj : error LNK2001: unresolved external symbol _InterruptEnable
p9054_lib.obj : error LNK2001: unresolved external symbol _InterruptDisable
Debug/Mypci.exe : fatal error LNK1120: 3 unresolved externals
Error executing link.exe.
Mypci.exe - 4 error(s), 0 warning(s)

我在 驱动开发网 下了源代码
《〈laosun_并口调试助手〉〉
按他的做法,出现了同型错误;

par_lib.obj : error LNK2001: unresolved external symbol _InterruptThreadEnable
par_lib.obj : error LNK2001: unresolved external symbol _InterruptThreadDisable
Release/LPTTest.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.

LPTTest.exe - 3 error(s), 0 warning(s)





雅芳
zhangyanping
驱动小牛
驱动小牛
  • 注册日期2003-02-23
  • 最后登录2004-07-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-05-19 14:55
你是怎么调用的那些API函数啊?如果是用的WINDRIVER生成的框价代码,应该不会出这个问题的,我用的都没有错误啊!

对了,你可以研究一下WINDRIVER自己的哪个PCI程序,很好的,也可以做框价开发!
chenlei1980
驱动牛犊
驱动牛犊
  • 注册日期2003-05-09
  • 最后登录2003-05-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-05-21 20:54
你是怎么调用的那些API函数啊?如果是用的WINDRIVER生成的框价代码,应该不会出这个问题的,我用的都没有错误啊!

对了,你可以研究一下WINDRIVER自己的哪个PCI程序,很好的,也可以做框价开发!


你说的是在自己的应用程序中用到那些函数呢?
还是生成驱动程序时用到这些函数呢??!!

请指教!!
zhangyanping
驱动小牛
驱动小牛
  • 注册日期2003-02-23
  • 最后登录2004-07-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-05-22 12:06
WINDRIVER生成的代码其实就是用户模式的应用程序,你直接就在这个代码下完成驱动功能就好了!
float97
驱动牛犊
驱动牛犊
  • 注册日期2002-06-06
  • 最后登录2005-03-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-08-24 23:13
我也碰到了相同的问题,其实很容易解决的,按照下列步骤就可以解决:

在VC程序中,打开“项目”->“设置”->\"C/C++\",将第一个下拉框(Class(分类))中的General换为“precompiled headers”,然后选择第一个单选框“不使用预编译头文件”即可。祝你好运!
我是学生
游客

返回顶部