草庐IT

function-handle

全部标签

c++ - 重叠 I/O : some functions are still missing

我非常喜欢WindowsAPI中的一个东西是重叠I/O。我已经编写了数十个使用重叠I/O(用于套接字和文件)且线程数量有限的网络服务器。我也是一名驱动程序编写者,因此我非常了解重叠I/O是如何“在幕后”实现的。唯一一直困扰我的是一些API函数不支持重叠模式。例如,创建文件(即调用CreateFile)始终同步进行。这很遗憾,因为这些方法也可以支持重叠(异步)模式。例如,当创建(或打开)文件时-文件系统驱动程序收到IRP_MJ_CREATE请求,它可能(通常会)返回STATUS_PENDING.我的问题是:是否可以选择异步打开文件?(但请不要告诉我创建另一个线程来打开文件)。

windows - F# 使用 WinForms 拖放 : DragDrop event of a control does not call the referenced member function

您知道为什么F#中的DragDrop事件在我的示例中无法正常工作吗?所有其他事件,如DragEnter、DragLeave、DragOver...都以相同的方式正常工作。只需编译此代码并进行尝试,将文件拖到表单中,然后在启动可执行文件的位置查看在控制台/终端中触发的事件。openSystemopenSystem.DrawingopenSystem.Windows.FormstypeMainForm(args:stringlist)asthis=//subclassinginheritForm()//controls-------------------letdragDropImage=

python - 使用 Python 2.7 脚本 : I/O handling 调用需要通过 GUI 输入的 Windows 应用程序

我正在尝试使用Python2.7脚本自动化需要通过GUI输入的Windows应用程序。我通过内置的python子进程函数调用exe,如下所示:导入子进程cc='C:\MM\test.exe'子进程调用(cc)调用exe时,GUI要求我为输入文件(data.txt文件)手动输入路径。当我进入路径时,处理就可以开始了。我想以某种方式自动执行此过程,即只需调用exe并让它自己找到input.txt,同样重要的是,将输出打印到output.txt文件。我最初尝试了以下建议:导入子进程打开(r'C:\MMA\DATA\input.txt','r')作为输入文件,打开(r'C:\MMA\DATA\

c++ - const HANDLE 真的是 const 吗?

据我所知,HANDLE只是指代某种“系统资源表”的数字。这个句柄const正确吗?我猜不是因为它只是用来访问一个表,就像数组的索引一样。位图示例:虽然HBITMAP声明为const,但我可以更改位图的内容吗? 最佳答案 HANDLE是(AFAIR)int的typedef,因此constHBITMAP与constint相同。从这个意义上说,即使位图的句柄是const,您也可以更改位图的内容,因为const指的是句柄而不是实际的位图(将其视为指向变量类的const指针。)但是:无论如何,您的问题没有实际意义,因为:句柄是Win32API

c++ - Windows 上 HANDLE 的来源

我目前正在从事一个项目(C语言),在该项目中我使用了不同的winHANDLE(互斥锁、信号量、线程……)。我的问题是:有没有办法检索HANDLE链接到的内核对象的类型?类似于:Get_HANDLE_source()或Is_thread_HANDLE()?谢谢,干杯! 最佳答案 正如NtQueryObject所说。但使用一些OO概念可能更好:structHandleVtable{/*functionpointertoappropriateimplementation*/};structHandleWrapper{structHandl

c++ - HANDLE 和 DCB 的 Linux 实现

我必须将一个程序迁移到使用WindowsHANDLE和DCB的Linux,例如:intDLMSClient::GXGetCommState(HANDLEhWnd,LPDCBDCB){//code}我该如何将它们迁移到Linux?来自here,我已经弄清楚如何迁移DWORD、WORD和BYTE,但我该如何处理这些新类型?此外,我可以了解此过程的来源可能会有所帮助。 最佳答案 您可能正在使用串行端口,但在Linux中,串行端口的管理方式与在Windows中有所不同。它们之间没有简单的一对一映射。此外,在Linux中,串口是终端,它们可能

c++ - 是否可以使用仿函数作为 std::function 的模板参数?

我正在尝试查找用于编译此示例C++代码的g++编译器参数:#include#includestructmystruct{inta;intoperator()(inty){returny+1;}};intmain(){std::functionfoo;return0;}在cpp引用中写道,std::function模板参数可以是“...或其他函数对象”。我在包含多个std::function的大型项目上工作,并且项目可以使用g++构建。我正在尝试在VS2015下构建它,但此类代码的编译器会提示:错误C2027:使用未定义的类型'std::_Get_function_impl'和[_Fty

python - 相当于 Unix "shell function"的 Powershell 脚本

这基本上是ChangethecurrentdirectoryfromaBashscript的副本,除了我在Windows上并且希望能够从powershell脚本更改我的命令行目录。我实际上是从powershell文件运行一个python脚本,从该python脚本解析输出目录,然后使用该输出作为要更改的目录,所以如果有办法从python脚本中执行此操作而不是powershell文件加分!要100%清楚,是的,我知道“cd”和“os.chdir”,不,这不是我想要的-这只会更改脚本或批处理文件的当前目录,而不是您要更改的命令行正在运行!代码如下(批处理文件是我的第一次尝试,我希望它是PS1

windows - 批处理脚本 : local variable from function1 to function2

好吧,让我试着解释一下我的问题:我从一行开始2个不同的函数setlocalEnableDelayedExpansionfor%%iin("C:\*.*")do(call:function1"%%~i"call:function2"%%~i")goto:eof在function1中,在某个点我在本地环境中做了一个SET:setlocalEnableDelayedExpansion......setname1=blablaendlocal&SETname=%name1%echo%name%goto:eof回声确实返回了我的变量。现在解决我的问题。我退出功能1并转到功能2(请参阅第一个代码段

c++ - 按值传递 std::function<bool (int)>

我是想曝光typedefstd::functionFilter;这是的一部分#include这样用户就可以创建过滤器并将其传递到我的组件中进行处理。该要求要求处理不能在模板函数中完成。我知道在接口(interface)上使用STL不是一个好的做法,因为Filter类型的大小取决于STL实现。除了原始函数指针或由模板函数接收的仿函数,我还有哪些替代选择。 最佳答案 大小在这里不是很重要,但如果使用您的库的某个人使用不同的STL实现,那么您的代码将无法使用,那么另一种选择是什么?我将为此使用一个接口(interface)(纯虚拟类):s