阅读:1348回复:5
用ds生成驱动和测试程序,把测试程序移植到c++builder中,能用吗?
我的测试程序在vc中编译没问题,也能读写设备,可是移植到c++builder中的程序编译没问题,却打不开设备,好像得不到句柄,为什么啊!谢谢了
|
|
|
沙发#
发布于:2004-05-26 09:39
应该没问题的,你再好好找一找
|
|
|
板凳#
发布于:2004-05-26 10:51
我查了一下,在调用
status = SetupDiGetInterfaceDeviceDetail ( m_Class->GetHandle(), &m_Data, m_Detail, ReqLen, &ReqLen, NULL ); 后,系统返回错误1784,ERROR_INVALID_USER_BUFFER,可是我指针都已经赋值了啊!不明白! |
|
|
地板#
发布于:2004-05-27 10:44
ReqLen是前一次调用SetupDiGetInterfaceDeviceDetail得到的数据84,这对吗?
难道没有人用c++builder吗? 帮忙提几个可能的原因我试试也行啊! 给分! 谢谢了! |
|
|
地下室#
发布于:2004-05-27 19:25
我查了一下,在调用 m_Detail,//它指的是这个值无效 好好查看一下这个值 [编辑 - 5/27/04 by snowStart] |
|
|
5楼#
发布于:2004-05-28 08:48
m_Detail = (PSP_INTERFACE_DEVICE_DETAIL_DATA)(new char[ReqLen]);
if ( !m_Detail ) { *Error = ERROR_NOT_ENOUGH_MEMORY; return; } m_Detail->cbSize = sizeof (SP_INTERFACE_DEVICE_DETAIL_DATA); //////////////////////////////////////////////////// 这是前面给m_Detail分配内存的程序,从watch看m_Detail确实得到了地址,m_Detail->cbSize的值是8,这会有错吗? 其实这段程序就是driverstudio里devintf.h文件里的,我直接把它包含进来了,编译没错,在vc里运行也没错啊!真惊了!还能是bcb分配的地址不可用? |
|
|