我正在使用Visual Studio 2012用C ++编写程序。该程序需要连接两个设备:压力传感器和控制电动平台的驱动程序。当我在main中编写所有驱动程序代码时,程序运行正常。电机移动,压力传感器显示该值。但是,我想简化程序并应用对象/类,使其更整洁,更易于管理。我使用.lib和.dll文件,无论出于何种原因,当我开始使用对象时,程序并不喜欢从对象调用函数。
这是我得到的错误:
"Unhandled exception at 0x1000AAD2 (Ldcnlib.dll) in motors.exe: 0xC0000005: Access violation writing location 0x00000025."
我想我可能有#includes
错了吗?但我无法弄明白。如果有人关心的话,我已经通过项目文件夹Motors.rar提供了。如果这样做,程序将一直运行到
if((!driverA.setParameter()) || (!driverB.setParameter()) || (!driverC.setParameter()))
主要。调试,我发现问题恰好发生在
int Driver::setParameter(){
if(!StepSetParam(PicoAddr, Mode, MinSpeed, RunCurrent, HldCurrent, ADLimit, EmAcc))
return 0;
}
driver.cpp
中的。
我把那个代码从main中取出来,当我尝试调用.loadTraj.
时我得到了同样的问题如果我尝试直接在main中执行!StepSetParam
,绕过类,同样的错误
(编辑:可能不言而喻,但该程序根本无法工作,因为您没有必要的设备连接到COM端口,但我希望有人可以通过查看帮助) 代码:Main stdafx.h driver.h driver.cpp stepper.h