草庐IT

IOCTL_USB_RESET

全部标签

c++ - 如何检查USB插槽中是否存在空的闪存卡读卡器?

我使用GetLogicalDrives()获取我计算机上的所有驱动器,但该函数不仅显示当前准备使用的卷,而且还显示没有卡的空闪存读取器。接下来GetDriveType()显示此类卷的代码2。这与闪存卡是否存在于插槽中无关。一些多读卡器产生许多这样的不存在的驱动器,问题是我如何才能确定这样的卷的正确状态。尝试在这种不存在的驱动器上调用FindFirstFile()即使在控制台应用程序中也会产生视觉错误:ExceptionProcessingMessagec0000013Parameters75b3bf7c475b3bf7c75b3bf7c代码继续运行,但是这个烦人的错误会在一个窗口中显示

c++ - std::unique_ptr::reset 和构造函数异常

如果像这样初始化一个unique_ptr:std::unique_ptri;i.reset(newFoo());但是Foo::Foo()抛出了一个异常,问题是:分配的内存发生了什么?unique_ptr如何避免被泄露?这是在new运算符中处理的吗?析构函数肯定会在作用域退出时被调用。由于reset调用在newFoo()返回之前不会被调用,看来这必须由new处理,通过释放分配的内存当异常离开构造函数时。是这样吗? 最佳答案 如果在Foo的构造函数中抛出异常,那么唯一指针的reset函数将永远不会首先执行。因此唯一指针保留其原始值。如果

c# - 如何使用 MTP 从 USB 设备上传和下载数据(设备不是相机)

我希望你能帮助我-我的任务是使用MTP上传和下载一些文件到USB设备。我找到了这个很好的例子:http://www.codeproject.com/Articles/30726/Transferring-D90-images-with-WIA现在我可以将一些图像从我的智能手机传输到PC并且我能够增强此示例,以便为我提供与设备管理器中相同的设备信息(例如ID、制造商、PnPID字符串等)到目前为止一切顺利。此示例使用WIA,我猜它只能从设备传输图像,不是吗?所以我的问题是-将文件上传和下载到通过MTP连接的USB设备需要什么技术?我花了几天时间问谷歌,但我没有找到一个有效的解决方案或一个

C++ USB 库

是否有用于与微Controller(Arduino)通信的库/方法?基本上,我需要一种在PC和Arduino之间接收和发送数据的方法。我不知道该用什么图书馆,所以我问你。我要发送的数据很少。也许来回500字节。一切都在VisualC++发生2010年,在控制台应用程序中。 最佳答案 libusb似乎是您情况下的最佳选择之一。这是一个轻量级、广泛使用、开源、跨平台且文档齐全的C库。 关于C++USB库,我们在StackOverflow上找到一个类似的问题: ht

c++ - 使用 C++ 从 USB 人机接口(interface)设备转换事件

我有一个收集输入的USBHID触摸板。默认情况下,当我按下触摸板时,它会生成回车(Enter),当我尝试将其用作鼠标时,它实际上会进入拖动状态。我想做的是将回车转换为鼠标点击事件,将拖动状态转换为光标在没有初始点击部分的情况下移动。我找到了rawinput选择。但是,我不知道如何将其转换为鼠标单击和光标移动。这是负责鼠标“阅读”的代码:LRESULTCALLBACKmouseProc(intnCode,WPARAMwParam,LPARAMlParam){MOUSEHOOKSTRUCT*pMouseStruct=(MOUSEHOOKSTRUCT*)lParam;if(pMouseStr

c++ - 为什么 make_unique 不能与 unique_ptr::reset 一起使用?

我尝试用VS2013编译一些C++代码,unique_ptr::reset()似乎不适用于make_unique();一个小的可编译重现代码片段如下:#includeusingnamespacestd;intmain(){unique_ptrp=make_unique(3);p.reset(make_unique(10));}从命令行编译:C:\Temp\CppTests>cl/EHsc/W4/nologotest.cpp这些是来自MSVC编译器的错误:test.cpp(6):errorC2280:'voidstd::unique_ptr>::reset>>(_Ptr2)':attem

c++ - USB相机的文件路径

您好,我正在使用GDI+进行一些图像处理。我让它从带有两个参数的命令行运行。原因是程序是从VBAExcel2007调用的。打开文件对话框从VBA运行并给出第一个参数。第一个参数是要处理的原始图像,第二个参数是保存图像的位置。当两个参数来自带有字母的驱动器时,一切正常,即C:。它不适用于网络文件夹,即\server\folder。我通过在尝试加载图像之前将文件夹安装到驱动器号来克服这个问题。当传入的图像位于USB相机上时,我现在遇到了问题。相机上文件的文件路径最终为COMPUTER\Canon\DCIM\image.jpg。Windows没有将相机安装到带字母的驱动器上,所以它对我来说无

c++ - 如果我碰巧注意到它已过期,我应该在 weak_ptr 上调用 reset 吗?

我收藏了Creature使用std::make_shared在我的应用程序的一部分中创建和拥有的对象和std::shared_ptr.我还跟踪了零个或一个的选择Creature在World使用std::weak_ptr的对象.voidWorld::SetSelection(conststd::shared_ptr&creature){selection=creature;}std::shared_ptrWorld::GetSelection()const{returnselection.lock();}GetSelection的来电者负责检查指针是否为空。如果是,则表示当前没有选择。T

c++ - 我应该在我的 C++ std 随机分布上调用 reset() 来清除隐藏状态吗?

我想用简单的函数包装来自C++11标准库的随机数分布,这些函数将分布的参数和生成器实例作为参数。例如:doublenormal(doublemean,doublesd,std::mt19937_64&generator){staticstd::normal_distributiondist;returndist(generator,std::normal_distribution::param_type(mean,sd));}我想避免分布对象中的任何隐藏状态,以便每次调用此包装函数仅取决于给定的参数。(潜在地,对该函数的每次调用都可能采用不同的生成器实例。)理想情况下,我会让分发实例s

c++ - USB插入时自动运行

当存储程序的USB插入计算机时,是否可以使程序自动运行(执行)我认为这是不可能的,因为我在Internet上进行了搜索,而且这种编码会带来安全风险例如我有一个用C++编程的简单倒数计时器(10到1)(在Windows上编译),当USB(其中存储.exe文件)插入计算机时,计时器将启动,无需我手动执行。 最佳答案 您可以创建一个Autorun.inf文件并将其放在USB驱动器上。连接驱动器后,Windows将读取此文件。在该文件中,您可以指定要运行的程序的名称,以及图标等。您不能强制程序在插入USB驱动器时运行。这取决于操作系统的安全