c++高手来(这个程序一运行就出错,为什么啊?)

来源:百度知道 编辑:UC知道 时间:2024/06/06 03:52:03
#include "stdafx.h"
#include "adt850.h"
void main()
{
int cardno;
cardno=adt850_initial();
if(cardno<=0) return; //未安装ADT850卡
//以下只对第一块卡X轴操作
//如果有多块卡,即cardno>1
//可修改卡号,操作其他卡
set_pulse_mode(0,1,1,0,0); //设置X轴为脉冲+方向方式
set_range(0,1,1600000); //设置倍率为5
set_startv(0,1,4000); //初始速度
set_speed(0,1,4000); //如果起始速度大于或等于驱动速度,则为匀速运动

pmove(0,1,40000); //开始驱动
int s;
while(1)
{
get_status(0,1,&s); //读驱动状态
if(s==0)break; //驱动结束跳出
//…… 可执行读键盘,显示位置等函数
}
return ;
}
出错是,内存不能READ。。。ADT850.dll和ADT850.lib实在EXE文件夹下。
还有高手么……

ADT850卡没用过,我用过ADT8940,且是在VC下写的非控制台的程序。

建议你,在cardno=adt850_initial(); 这一行加上一个断点,然后单步调试,看看究竟在哪一步出的这个错误。然后再找原因。

另外:ADT850.dll在EXE的目录下吗,ADT850.lib编译时在项目目录下吗。

补充:
问问厂家吧,程序代码上没有问题,只能调用他们的动态库时出现问题了,我猜是他们的动态库直接对IO进行操作了,而在WinNT内核的系统上是不允许这样做的,你的这套SDK可能太老了,win98以前是可以用的。
问问有新的软件开发包吗。

出错信息是什么?建议加上try,catch等查错语句