草庐IT

C++标准

全部标签

c - 读取未格式化的数据

在C中,使用标准WindowsAPI,读取未格式化磁盘的最佳方法是什么?具体来说,我有一个MMC或SDcard有数据,但没有文件系统(不是FAT16,不是FAT32,只是原始数据)。如果有一种简单的方法可以打开整个卡进行逐字节二进制访问,那就太好了。谢谢! 最佳答案 我会去HANDLEdrive=CreateFile(_T("\\.\PhysicalDrive0"),GENERIC_READ,FILE_SHARE_WRITE,0,OPEN_EXISTING,0,0);//errorhandlingDWORDbr=0;DISK_GEO

c - 如何从 C 程序调用可执行文件(使用 winapi)?

CreateProcess()出现了几次搜索谷歌....可以假设这是最安全、最有效的方法吗?如果是这样,我想使用被调用进程的输出。在继续C程序之前,我如何知道它已经完成?谢谢。 最佳答案 ShellExecute可用于创建进程,它是一种更方便的传递参数的方式。但如果您想使用流程的输出,那么CreateProcess可能是您最好的选择使用CreateProcess,您可以传递STARTUPINFO可用于将文件管道句柄传递给进程外的标准结构。CreateProcess将返回PROCESS_INFORMATION包含已创建进程的HANDL

c# - 获取 txt 文件的标准应用程序 (.NET)

在我的应用程序中,我想打开一个没有.txt扩展名的文本文件。有没有办法在.NET(C#)中获取.txt文件的标准应用程序?当然,我可以使用“记事本”,但可能有些人(比如我)更喜欢其他(他们的标准)编辑器。编辑:注册表项“[HKEY_CLASSES_ROOT]\txtfile\shell\open\command”引用记事本,但这不是我的txt文件的标准应用程序。如何获取我当前的.txt标准应用程序? 最佳答案 绝对最好的选择是使用ShellExecuteEx,传递SEE_MASK_CLASSNAME标志,以打开此文件,就好像它是.t

C 输入 - getchar()

这是一个基本问题..但不得不问。对于这样的程序,如果用例是123^Z,程序不会终止,即使我在末尾放置了一个EOF(Ctrl+Z)。为什么会这样?只有当我在CR之后放置EOF时它才有效。任何答案将不胜感激。谢谢。#includevoidmain(){inti,nc;nc=0;i=getchar();while(i!=EOF){nc=nc+1;i=getchar();}printf("Numberofcharactersinfile=%d\n",nc);} 最佳答案 在Windows中,Ctrl-Z快捷键只有在行首按下时才会生效。否则,

windows - 批量标准化文件路径

有没有办法从绝对文件路径批量解析..?例如,以下批处理脚本应输出C:\Users\xyz\other\abc.txt:REMProjectdirisanabsolutepath,forexample,C:\Users\xyz\project\SETprojectDir=%~1REMTargetfileisapathrelativetotheprojectdir,forexample,..\other\abc.txtSETtarget=%~2REMConcatenatepaths.ThisbecomesC:\Users\xyz\project\..\other\abc.txtSETabs

c - 策略在终止时刷新文件输出

我有一个监控高速通信链路并将日志写入文件(通过标准C文件IO)的应用程序。对到达链接的消息的响应时间很重要,因此我有意不在每条消息处fflush文件,因为这会减慢我的响应时间。然而,在某些情况下,我的应用程序会“暴力”终止(例如,通过终止进程),并且在这些情况下,最后几条日志消息不会被写入(即使通信链路已经安静了一段时间)。我可以使用哪些技术/策略来确保我的大部分数据都已刷新,同时又不影响响应速度?编辑:应用程序在Windows上运行 最佳答案 使用线程是对此的标准解决方案。让您的数据收集代码将数据写入线程安全队列,并使用信号量向写

c++ - 什么是 C/C++ for Windows 中基于共享内存的轻量级 IPC 机制?

我现在一直在从事一些C++项目,这些项目涉及使用窗口消息进行一些简单的IPC。在许多情况下,通过将数据放入共享内存段然后将指针传递到带有SendMessage的共享内存,一些额外的数据随窗口消息一起传递。称呼。一直重复这个很烦人,但在通过发明另一个IPC系统来解决这种沉闷的重复之前,我想问:是否有满足标准的现有框架?:用C或C++编写(我们在这里使用MSVC)尽可能少的依赖;在最好的情况下,它只是一些使用纯C++和Windows标准库的源文件,可以直接编译到应用程序/库中。适用于WindowsXP及更新版本基于窗口消息和共享内存段构建非常需要正确的错误报告(远程进程消失、远程进程不理解

windows - Freepascal 刷新 Windows 下每个输出的标准输出?

请看以下四个程序。在Windows下使用Freepascal构建它们并运行,将输出重定向到任何文件,并注意它所花费的时间。我的结果是:所有程序的运行时间大致相同(大约6秒),尽管第四个程序的输出字节数是原来的100倍。这意味着第四个程序每字节输出的运行速度比其他树快得多。对于第二个程序,缓慢的原因很明显:flush调用。对于第三个程序,原因不是很明显,但可以合理地假设每次调用writeln到stdout都会隐式刷新输出缓冲区。然而,目前还不清楚为什么第一个程序比第四个程序慢那么多。然而,添加flush(output);(见程序2)并没有太大改变时间的事实似乎意味着即使在每次write之

c - 使用 minGW gcc 未定义对 _imp____glew* 函数的引用

我正在尝试在Win7x64系统上使用MinGW编译一个相对简单的OpenGL程序,但我不断收到对几个GLEW函数的undefinedreference。我已将库设置为链接到程序,并一直在四处寻找列表中可能缺少的任何库,但链接器的输出仍然如下所示:16:35:50****IncrementalBuildofconfigurationDebugforprojecttest****Info:InternalBuilderisusedforbuildgcc-LD:/DEV/openGL/lib/x86-LD:/DEV/x86/lib-otest.exetest.o-lfreeglut-lgla

c# - 如何有效地计算大量数字的均值和标准差?

在Win7的VisualStudio中使用C#,我需要计算大量数字的均值和标准差。这些数字是从文件中读取的。可能有十万甚至更多。如果我不想将它们保存在数组或列表等数据结构中,因为这可能不是内存有效的,如何有效地进行计算。我还需要将数字打印到文件中。答案在Howtocalculateastandarddeviation[array]帮不了。如有任何帮助,我们将不胜感激!最佳 最佳答案 在一次处理一个数字的同时计算均值和标准差:将Count、Sum和SumOfSquares初始化为零。当您收到每个数字时,将1添加到Count,将数字添加