草庐IT

c - 如何测量 program.exe 启动时间?

我想测量我的程序exe启动时间呢是从点击或[enter]开始的时间如果从控制台或任何其他方式启动直到程序启动完成的时刻和它的代码可以在所有结构设置的情况下执行(可能这意味着当main()中的第一个命令被执行[?])我想以编程方式从在我的代码中-所以我想办法做到这一点需要读取准确的发射时间程序然后从中减去这次第一行代码执行时间(抱歉我的英语不好)怎么做? 最佳答案 您要从单击或[enter](包括shell(cmd.exe或Windows资源管理器)开销)还是从程序启动进行测量?以编程方式,您只能从进程创建开始计算时间,因此不包括查找

c# - 为什么 CreateFile 需要永远?

我的程序中有一个线程试图CreateFile以锁定USB设备,但是,有时它非但没有失败,反而需要很长时间。还有其他人遇到过这个问题吗?有什么办法可以为此功能设置超时吗?代码是这样的:stringfile=@"\\.\"+DriveLetter[0]+":";handle=CreateFile(filename,GENERIC_READ,FILE_SHARE_WRITE,IntPtr.Zero,0x3,0,IntPtr.Zero);谢谢。 最佳答案 您想锁定它以使其无法访问-作为设备-或“阻止”分离它(例如它是一支笔)?编辑:抱歉,无

c - 在函数中传递指向 SOCKADDR_IN 和 SOCKET 的指针

我有一个函数createServerSocket()。多个线程可以访问此函数以创建它们的套接字。我希望每个线程向createrServerSocket()函数传递三个参数,一个socketIdentifier、*sockaddr_in*和特定的端口号,所以每个线程都有一个唯一的套接字。为此,我将socketIdentifier、*sockaddr_in*和特定的端口号作为指针传递给createrServerSocket()函数,以便创建的socketIdentifier和套接字必须可以在线程内访问.下面是我的代码片段:VOIDcreateServerSocket(SOCKADDR_IN

windows - 为什么此 CreateFile() 调用会导致 Windows 8 出现蓝屏?

如果我尝试运行这个:#includeintmain(){CreateFile(TEXT("X:\\$MFT\\Folder"),FILE_READ_ATTRIBUTES,FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE,NULL,OPEN_EXISTING,0,NULL);return0;}任何进一步尝试访问X:时系统死锁(在Windows8上,随后是BSOD)。(更新:X:只是一个占位符;您可以将其替换为任何有效的驱动器。)我花了一段时间才找到它,现在我找到了——但我很困惑:原因是什么? 最佳答案

c - C 和 Windows GDI 中的双缓冲*框架*

背景:我的客户有一个非常广泛的专有表单库,它在C中有效地实现(实际上,它是一种专有的面向对象的语言,基本上包装Windows控件并与它们交互SendMessage()、SetStyle()等)我要解决的问题:每当我在上述框架中实现的应用程序中拖动/调整顶层窗口(或拖动拆分器)时,都会出现大量闪烁。顶层窗口被重新绘制,它包含的任何控件都会重新绘制。问题1:有没有办法通过外科手术将双缓冲引入表单库。特别是,我想知道是否可以使用标准WindowsGDI函数实现双缓冲。例如,如果我可以使顶层窗口进行双缓冲,这样顶层窗口的所有子窗口也自动进行双缓冲绘制。一个更好的选择是能够在任意窗口上引入双缓冲

c++ - 如何将系统颜色更改为默认颜色?

在我的C++应用程序中,我错误地更改了系统颜色:constINTval=COLOR_HIGHLIGHTTEXT;constCOLORREFcolor=RGB(255,0,0);::SetSysColors(1,&val,&color);如何向后恢复默认设置? 最佳答案 有关SetSysColors()的文档位于http://msdn.microsoft.com/en-us/library/windows/desktop/ms724940%28v=vs.85%29.aspx说“系统终止时不会保存新颜色。”所以重启可能会让你的颜色恢复。

windows - DOS MZ 二进制文件可以有 VERSIONINFO 元数据吗?

我的印象是什么VERSIONINFO资源是纯粹的Windows发明,但是在阅读documentation时,我偶然发现了VERSIONINFO资源定义语句的fileos参数的VOS_DOS可能值。同样,二进制等价物VS_FIXEDFILEINFOstruct有dwFileOS成员,它可以有VOS_DOS值,指定什么“文件是为MS-DOS设计的。”(??)。怎么可能呢?我认为MZ二进制格式根本没有空间容纳此类元数据...我是否遗漏了一些东西,例如更大的MS-DOS版本中的VERSIONINFO支持和某些类型的库来读取它? 最佳答案 普

c - 当使用 CreateProcess 启动子程序时,不会在父程序的工作目录中搜索 DLL

我有一个很奇怪的问题。我正在Windows下开发一个C程序,它将数据写入临时目录。它使用GetTempFileName生成一个唯一的名称。数据实际上是一个exe,我以CreateProcess开头数据写入临时文件后。对于lpCurrentDirectory参数,我使用NULL以便使用父程序的当前工作目录成为子程序的工作目录。有所有需要的DLL。在大多数计算机(XP、2003、7、8)上,一切都按预期运行。但是在一个特定的Windows7上,子程序启动时出现异常。非常奇怪,但如果我将所有需要的DLL移动到临时目录,一切都会按预期进行。嗯,为什么不在父程序的工作目录中搜索DLL?非常感谢。

c++ - 使用不同线程时 Win32 API 死锁

我在尝试从其他线程使用WIN32API时遇到死锁。我的应用程序需要额外的线程来提高帧速率。它实际上有帮助,但是,我在几乎所有系统功能中都遇到了死锁:::显示窗口::移动窗口::更新窗口例如,我知道ShowWindow()可以替换为ShowWindowAsync(),它确实解决了问题,但是,在MoveWindow()和UpdateWindow()中没有这样的替代方法。有人遇到过这些问题吗,解决方案是什么?谢谢! 最佳答案 术语“死锁”描述了一个非常具体的事情,两个线程等待访问被另一个锁定的资源。没有迹象表明这就是您的情况(或是否存在?

c++ - 如何将状态栏定位在 OPENGL 之上?

我目前遇到的问题是OpenGL与我的状态栏重叠,而窗口的菜单没有改变。任何想法如何解决这个问题?使状态栏像菜单一样位于顶部。我在主窗口(自定义WNDCLASS)和启用了WS_CHILD的状态栏(STATUSCLASSNAME)中使用CreateWindowEx。也许我遗漏了一些标志。附言。我不使用GLUT,也不使用任何其他第三方库,只使用Windows和OpenGL 最佳答案 您只需将WS_CLIPCHILDREN和WS_CLIPSIBLINGS样式添加到您的OpenGL窗口。 关于c+