我正在将Visual C++ 6.0中创建的旧C windows驱动程序项目导入visual studio 2012.结构体的定义方式在vs2012中导致错误。在结构体内创建结构体
typedef struct {
LINK Link;
HANDLE hFile;
BYTE handleType;
OVERLAPPED Overlapped;
CRITICAL_SECTION csIoCtrl;
} USB_HANDLE, *PUSB_HANDLE;
typedef struct {
USB_HANDLE; //error occurs here saying nothing was declared for USB_HANDLE
LIST PipeList;
BOOL bRemoved;
CRITICAL_SECTION csPipeList;
SP_DEVICE_INTERFACE_DETAIL_DATA *InterfaceData;
} USB_DEVICE, *PUSB_DEVICE;
的项目,然后用像 USB_DEVICE mydevice在通话; mydevice-> hfile = handle;
这种类型的结构在vs2012中可能吗?
(编辑 - 尽管这些都显示为错误时,Visual Studio 2012做了编译,成功打造一个解决方案,我将要测试的驱动程序,看看是否一切很快就正常工作。)
错误:
struct declaration error message http://oi45.tinypic.com/wb877k.jpg
member error message http://oi46.tinypic.com/jhts1f.jpg
一个解决,我认为我可以用在制作USB_DEVICE结构:
typedef struct {
USB_HANDLE USB_HANDLE;
LIST PipeList;
BOOL bRemoved;
CRITICAL_SECTION csPipeList;
SP_DEVICE_INTERFACE_DETAIL_DATA *InterfaceData;
} USB_DEVICE, *PUSB_DEVICE;
然后我可以让剩下的电话: mydevice-> USB_HANDLE.hfile = handle;
这是一个等价的语句吗?
您可以通过给一个名字在USB_DEVICE的USB_HANDLE解决这个问题。 – 2013-04-04 00:45:11
我们不应该问清楚错误消息是什么,因为它应该在第一句中:“我在VS2012中收到以下错误消息:...”。请使用这些重要信息来启发我们。 – Sebivor 2013-04-04 01:38:59