SOS,在线等,呼叫驱动带入CString的问题

hhz520520   2009-9-28 23:32 楼主
各位弟兄:
我呼叫驱动这样呼叫的:

  1. typedef  struct  {
  2.         CString DataType;
  3.         CString number_HEX;
  4. }DATA_GETDATA_INFO;
  5. DATA_GETDATA_INFO        GETDATA;

  6. int  pfnGET_Data(CString bs1,CString bs2)
  7. {
  8.         if(hFile_PLC == INVALID_HANDLE_VALUE) return -1;
  9.         GETDATA.DataType=bs1;
  10.         GETDATA.number_HEX=bs2;
  11.         DeviceIoControl(hFile_PLC,  IOCTL_GET_DATA, &GETDATA, sizeof(GETDATA), NULL, 0, NULL, NULL);
  12.         (省略)       
  13. }


然后驱动中这样写的:

  1. typedef  struct  {
  2.         CString DataType;
  3.         CString number_HEX;
  4. }DATA_GETDATA_INFO;
  5. DATA_GETDATA_INFO        GETDATA;

  6. bool HPI_IOControl( DWORD context, DWORD code, UCHAR *pInBuffer,
  7.     DWORD inSize,UCHAR *pOutBuffer, DWORD outSize,DWORD *pOutSize   )
  8. {
  9. (省略)
  10.         case  IOCTL_READ_DATA:
  11.                 CeSafeCopyMemory(&GETDATA, pInBuffer, sizeof(GETDATA));
  12.                 DataType=GETDATA.DataType;
  13.                 number_HEX=GETDATA.number_HEX;       
  14. (省略)                       

--------------
这样主程序的bs1,bs2可以正确对应到驱动中的DataType和number_HEX吗?
我总觉得这样怪怪的

各位推我一把吧!! ^^

回复评论 (7)

手误IOCTL_READ_DATA应该是IOCTL_GET_DATA,贴的时候没整理好请见谅.

带入两个CString到驱动的问题,在线等各位弟兄的协助.
感恩啦)))))
点赞  2009-9-28 23:34
如果驱动支持MFC类,值的传入就没有问题

但是,在驱动中,最好不要MFC类库
点赞  2009-9-29 08:21
引用: 引用 2 楼 91program 的回复:
如果驱动支持MFC类,值的传入就没有问题

但是,在驱动中,最好不要MFC类库


用了mfc类库会有哪些不好,请指教!
点赞  2009-9-29 09:35
MFC 封装级别太搞了!?  我的理解, 速度是个问题!
--------
或者其他的什么

驱动用用 BYTE  |  unsigned char 不可以吗   非得用CString
点赞  2009-9-30 15:29
unsigned char *
点赞  2009-9-30 15:44
驱动中不要使用MFC。我记得有个ce::wstring
点赞  2009-9-30 15:54
up
点赞  2009-10-8 21:45
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复