Visual c++ 6.0 で作成された古い C Windows ドライバー プロジェクトを Visual Studio 2012 にインポートしようとしています。
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 = ハンドル;
このタイプの構造は vs2012 で可能ですか?
(編集 - これらはエラーとして表示されますが、Visual Studio 2012 はコンパイルしてソリューションを正常に構築しました。ドライバーをテストして、すべてが正しく機能するかどうかをすぐに確認します。)
エラー:
私が使用できると思った回避策は、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;
これは同等のステートメントですか?