草庐IT

c++ - std::unique_ptr、删除器和 Win32 API

在VC2012中,我想在构造函数中使用唯一指针和删除器创建互斥锁,这样我就不需要创建析构函数来调用CloseHandle。我原以为这会起作用:structfoo{std::unique_ptrm_mutex;foo():m_mutex(CreateMutex(NULL,FALSE,NULL),CloseHandle){}}但在编译时出现错误:errorC2664:'std::unique_ptr::unique_ptr(void*,int(__cdecl*const&)(HANDLE))throw()':cannotconvertparameter1from'HANDLE'to'voi

c++ - std::unique_ptr、删除器和 Win32 API

在VC2012中,我想在构造函数中使用唯一指针和删除器创建互斥锁,这样我就不需要创建析构函数来调用CloseHandle。我原以为这会起作用:structfoo{std::unique_ptrm_mutex;foo():m_mutex(CreateMutex(NULL,FALSE,NULL),CloseHandle){}}但在编译时出现错误:errorC2664:'std::unique_ptr::unique_ptr(void*,int(__cdecl*const&)(HANDLE))throw()':cannotconvertparameter1from'HANDLE'to'voi

Ruby win32-api GetFocus 和 GetWindowText

我正在尝试找到一种获取当前窗口文本的方法。因此,使用win32-apigem,我在thispage的帮助下编写了这段代码require'win32/api'includeWin32hWnd=GetActiveWindow=API.new('GetActiveWindow','V','L','user32').callGetWindowText=API.new('GetWindowText','LPI','I','user32')GetWindowTextLength=API.new('GetWindowTextLength','L','I','user32')buf_len=GetWi

Ruby - DOS (Win32) 路径名到 NT( native )路径名

我需要从Ruby(1.9.3)中的DOS(Win32)路径获取文件的NT(native)路径。意思是,我有字符串:dos_path="C:\Windows\regedit.exe"但我需要:nt_path="\Device\HarddiskVolume1\Windows\regedit.exe"有什么办法吗?谢谢! 最佳答案 可以使用QueryDosDevice将MS-DOS设备名称转换为NT路径功能。从Ruby调用这样的函数可以用Fiddle完成。.从1.9.3开始,它是Ruby标准库的一部分。但是,以下示例仅适用于2.0.0或更

ruby - 使用 Ruby 和 win32ole 修改后无法保存 Excel 文件

使用http://ruby-doc.org/stdlib/libdoc/win32ole/rdoc/classes/WIN32OLE.html作为指南,我写了以下内容:require'win32ole'excel=WIN32OLE.new('Excel.Application')excel.visible=false#Settingthisis'true'doesn'trevealanythingworkbook=excel.workbooks.open('C:\myspreadsheet.xlsx')worksheet=workbook.worksheets('sheet1')wor

ruby - win32ole 进程仍在 ruby​​ 中运行

我知道直接使用VB时有人问过这个问题,但我无法终止进程。我使用的是jruby版本的win32ole和ruby​​1.9。我当前的代码是这样的:beginexcel=WIN32OLE::connect('excel.Application')rescueexcel=WIN32OLE::new('excel.Application')endexcel.Visible=1workbook=excel.Workbooks.Open("pathtosomedoc")ws=workbook.Worksheets(1)ws.Selectcell_content=ws.Cells(4,4).Value

c++ - 如何在 Win32 上快速枚举目录?

我正在尝试加速C++中的目录枚举,我在其中递归到子目录。我目前有一个应用程序将95%的时间花在FindFirst/FindNextFileAPI上,并且需要几分钟才能枚举给定卷上的所有文件。我知道这样做可以更快,因为有一个应用程序可以:Everything.它会在几秒钟内枚举我的整个驱动器。我怎样才能完成这样的事情? 最佳答案 我知道这是一篇旧帖子,但在源代码伪造上有一个项目可以完全按照您的要求进行操作,并且源代码可用。您可以在这里找到该项目:NTFS-Search 关于c++-如何在W

c++ - 如何在 Win32 上快速枚举目录?

我正在尝试加速C++中的目录枚举,我在其中递归到子目录。我目前有一个应用程序将95%的时间花在FindFirst/FindNextFileAPI上,并且需要几分钟才能枚举给定卷上的所有文件。我知道这样做可以更快,因为有一个应用程序可以:Everything.它会在几秒钟内枚举我的整个驱动器。我怎样才能完成这样的事情? 最佳答案 我知道这是一篇旧帖子,但在源代码伪造上有一个项目可以完全按照您的要求进行操作,并且源代码可用。您可以在这里找到该项目:NTFS-Search 关于c++-如何在W

ruby - 在 win7 上的 ruby​​ 文件中运行自动完成时 gVim 崩溃

我在Windows764位上使用gVim7.3和ruby​​1.9.2在我将Omni完成函数设置为ruby​​complete#Complete之后,使用内置的ruby​​complete.vim每当我调用Omni完成时,vim就会崩溃。调试信息是:访问冲突读取位置0x00000020。有谁知道可能导致此问题的原因是什么?或者我应该将ruby​​降级到1.8.7,这样可以避免这个错误? 最佳答案 问题是因为Vim7.3.46版本的ruby​​插件有bug,http://www.mail-archive.com/vim_dev@goo

Win10启动VMware虚拟机开机秒蓝屏问题完美解决

大家在工作中都常用到虚拟机,本人也是。但是用了虚拟机工作了一段时间后,经常发现开机秒蓝屏,我遇到过两三次了,网上的教程也是良莠不齐,不能彻底解决这个问题,于是今天打算彻底解决这个问题。不废话,直接上教程。一定要看完,最后一步是关键!1操作控制面板右键windows图标,点击搜索,搜索“控制面板”,点击右上角的“大图标”或者“小图标”显示,点击“程序和功能”,如下图操作:接下来,按照下图操作。2操作此电脑的“服务”右键“此电脑”。点击“管理”,按照下图依次操作:然后直接禁用“HV主机服务”,以及禁用所有的Hyper-V的服务!如下图所示:3打开WindowsPowerShell输入win+x,找