ljl76
驱动牛犊
驱动牛犊
  • 注册日期2002-04-16
  • 最后登录2004-02-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1073回复:1

为什么在用VC++调用动态库的函数并编译通过,但在运行该函数时WIN98系统显示非法操作?

楼主#
更多 发布于:2002-05-30 15:25
    我在用VC++调用别的公司提供的动态连接库的函数编写一个通过串口读写数据的程序。首先通过VC++的Project- >Add to Project->files...把该dll的lib文件和头文件添加到工程里,然后,在调用该dll库函数的.cpp文件开头声明dll的头文件。以下是函数调用过程:
函数原型:
BOOL APIENTRY rf3OpenComm(BYTE CommID, LPHANDLE hComm);

调用:
include \"rf3read.h\"

BYTE CommID;
LPHANDLE hComm;
BOOL rf3ok;
CommID=1;
rf3ok=rf3OpenComm(CommID,hComm);
if (rf3ok)
AfxMessageBox(\"打开串口成功。\");
else if
AfxMessageBox(\"打开串口失败。\",MB_ICONSTOP);

当程序运行“rf3ok=rf3OpenComm(CommID,hComm);”后WIN98系统就显示非法操作,无效页面。错误在rf3read.dll....
请问我的动态库装载过程和函数调用方法有没有错?

最新喜欢:

luozhangyuluozha...
blue
驱动大牛
驱动大牛
  • 注册日期2001-04-25
  • 最后登录2010-10-15
  • 粉丝0
  • 关注0
  • 积分55分
  • 威望12点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-05-30 16:04
首先,这类问题你最好到www.csdn.net之类的去问,会得到更详细的解答;
其次,你用其它公司的产品,可以要求一个VC制作的DEMO程序(包含源程序),然后你照着作即可,若还不行,你可以要求他们提供技术支持;
最后,你的问题是不是hComm没初始化。
游客

返回顶部