折腾了一整天,终于能成功编译了。话说,WinDriver真操蛋,即使最新版的V11.7,配合Win7 x64和VCS2012,生成的C#工程虽然能够编译成功,但是运行时却总是报错[WDC_PciGetDeviceInfo()]等函数都找不到;硬件设备连接无法打开,更不用说数据读写了。
难道这是试用版的限制但想想也不应该,因为其提供的演示程序C:\WinDriver\csharp.net\pci_sample\diag\Release\v4.0.30319\pci_sample.exe也无是法正常运行。抱着试试看的心里,发现v2.0.50727里面的程序竟然能够运行!?只能说,WinDriver的确操蛋。只是.Net FrameWork的不同,一个能用另一个竟不能用。不知道这到底是在唱哪出
不过,这到给我提了一个醒:如果使用Windriver生成基于.Net Framework2.0的程序框架,也许可以成功编译。废话少说,重新安装。说起Net FrameWork2.0,首先想到的是VS2005;然而装好VS2005后,竟然报告与Win7不兼容虽然可以升级补丁啦,使用XP兼容模式啦,这都不是我想要的。转念一想好在还有VS2008,果断安装。可是问题又来了:直接编译不成功,说缺少References。打开Solution Explorer,References,果然,dll引入前面一个个大大的黄色惊叹号!可恶啊没办法,把惊叹号都删了,重新添加引用,再编译,竟然成功了;再试试连接一下设备,嗯也可以打开了。至此,开发环境大功告成
把环境总结一下:
Win7 x64
WinDriver 10.2 x64 [为啥不是11.7?原因你懂的]
VCS2008 [为啥不是2012/2013?那个只会生成4.0框架,我目前还没办法搞定]
至于DDK/WDK嘛,等以后深入驱动编程再说吧。
最后,生成的工程还有做手工处理:删除无效DLL引用,重新手工添加