草庐IT

C++标准

全部标签

c++ - Qt Creator - calloc 因大内存而失败

我对QtCreator或其组件之一有疑问。我有一个需要大量内存(大约4GBytes)的程序,我使用calloc来分配它。如果我使用mingw/gcc(不使用Qt框架)编译C代码,它可以工作,但是如果我在QtCreator中编译它(使用C++将C代码嵌入到Qt框架中),使用mingw/gcc工具链,calloc返回空指针。我已经搜索并找到了qt-pro选项QMAKE_LFLAGS+=-Wl,--large-address-aware,它适用于某些情况(大约3.5GBytes),但如果我超过4GBytes,它只适用于用gcc编译的C代码,不适用于Qt。在使用QtCreator进行编译时,如

c++ - 如何在编译时或代码初始化时自动更新数组中的条目?

嗯,我有一个从我的代码运行的抽象虚拟机(“PAWN”),脚本可以执行函数,这些函数从C代码注册到脚本,由我的C++代码执行。C++代码必须以的形式提供一个数组{"name_i_want_the_function_to_have_in_the_script",function_in_my_cpp_code}如果函数不在数组中,则无法执行。(因为它不“存在”)所以这让我们想到了这一点:我的函数是这样的://PawnFunctions#definePWNFUNC(a)staticcellAMX_NATIVE_CALLa(AMX*amx,cell*params)namespacePawnFun

c++ - <ctime> 中的 clock() 函数如何访问系统时钟?

我使用的是带有最少库的STM32微Controller。我想使用clock()来自的函数(可能还有新的std::chrono)但我被困在了clock()返回-1。这并不奇怪,因为我不希望gcc-arm-none-eabi中的库了解我的微Controller的外围布局。我怎么知道clock它从哪里得到它的滴答计数?我可以简单地重新声明它,还是需要实现一个较低级别的功能? 最佳答案 这通常是将libc实现移植到新平台的工作的一部分。当您编译glibc或newlib(C标准库的两个最流行的实现)的拷贝时,您必须提供一系列stub方法,其中

c++ - move 语义、标准集合和构造时间地址

当然,我想知道一些神奇的解决方法,但我对重组持开放态度。所以我有一个类DeviceDependent,具有以下构造函数DeviceDependent(Device&device);它存储对设备的引用。该设备可以更改状态,这将需要更改所有DeviceDependent依赖于该设备的实例。(你猜对了,这是我尝试驾驭directX野兽的微不足道的尝试)为了处理这个,我有函数DeviceDependent::createDeviceResources(),DeviceDependent::onDeviceLost().我计划注册每个DeviceDependent实例到DeviceDepende

c++ - Qt 5 和 QProcess 使用信号/槽 readyRead 重定向标准输出

这个问题困扰着我,因为它应该有效,但遗憾的是它没有。我试图实现的是读取某个进程的标准输出并让另一个进程处理它,即打印出来。产生输出的过程如下所示:#include#include#includeintmain(){for(inti=0;i进程是在另一个应用程序中启动的,如下所示:#include...QProcess*process=newQProcess;SomeClass*someClass=newSomeClass(process);connect(process,SIGNAL(readyRead()),someClass,SLOT(onReadyRead()));process

c++ - 读取控制台调色板的 RGB 值

肉类在C或C++中有什么方法可以直接读取调色板的RGB值吗?特别有趣的是xterm(和其他)使用的扩展颜色空间来定义多达256种终端颜色。土bean典型的例子是我想定义自己的颜色(使用ANSI转义序列,例如\e]4;3;rgb:cc/78/33\e\\,或者直接在c)中,但我需要在重新定义用户颜色之前保存它们(万一他们已经重新定义了颜色),以便我可以在程序完成时恢复它们。破坏用户设置并不好。现在我的目标是使用ANSI转义序列以客户端方式执行此操作。但由于我找不到如何获得颜色,所以我开始考虑用C或C++代替。该解决方案将编写为具有native扩展(基本上是嵌入式c或c++代码)的ruby

c++ - 为什么某些 C++ 标准库 `operator<<` 函数将其流宽度重置为 0?

如C++标准的[ostream.inserters.character]部分所述,在将char或字符串插入流后,流的宽度设置为0:templatebasic_ostream&operator&out,constunsignedchar*s);Dolotsofsensibleandexpectedthings...Callswidth(0).为什么C++标准要求调用width(0)?更改流宽度而不将其重置为原始值的合理性是什么?(据我所知,流的所有其他属性都由流插入运算符保留。)有个相关问题here,这说明了这引起的困惑,但没有解释为什么标准规定了这种行为。

c++ - 如何将 C/C++ 编译为 CP/M-86 可执行文件 (CMD)

我有这个项目:使用现代编译器将C/C++程序编译为CP/M-86可执行文件(CMD文件)。目标架构是16位x86。您可能认为我疯了,但我这样做是为了好玩,也是为了了解CP/M-86和一般的低级x86编程。我对x86汇编程序编程知之甚少,但我已经完成了一个“HelloWorld”示例,我可以使用ASM86和GENCMD生成CMD文件。它有效。ASM86是CP/M-86的汇编程序,它将生成一个H86文件,即(据我所知)英特尔十六进制代码。GENCMD读取此HEX文件并创建CMD可执行文件。CMD是DOS和Windows中已知的EXE可执行文件的CP/M-86等价物。我有一个“现代”工具,可

c++ - opencv背景减法中的过滤线和曲线

我正在使用opencv中的背景减法进行对象跟踪。我拍摄了一段足球视频样本,我的目标是跟踪球员并过滤掉较大的field标记。由于非静态相机,大线也被检测为移动,如下图所示:我利用霍夫变换来检测线条,并在设置适当的阈值后,能够过滤掉中间的线条,图像如下所示:现在我关心的是过滤这2个弧。问题1.我可以通过哪些方式做到这一点?我如何利用弧线(又长又细)和播放器(紧凑的Blob)在“属性”上的差异?此外,Hough变换函数有时会报告许多误报(将高瘦玩家检测为直线,甚至连接2个玩家以显示更长的线)。问题2、如何规定“待检测”线的最大粗细,并保持严格的标准“只”检测线?谢谢。

c++ - 如何在进程运行时捕获标准输出并打印到控制台和文件 (C++/Boost.Process)

我正在开发一个使用Boost的C++Process库启动子进程的应用程序(http://www.highscore.de/boost/process0.5)并使用以下代码将该过程中的标准重定向到一个文件:boost::process::initializers::bind_stdout(boost::iostreams::file_descriptor_sink在这里)上述解决方案和代码运行良好。但是,现在,我需要能够将子进程的标准输出到文件和控制台。我找到了下面的代码,它似乎可以完成这项工作:#include#include#include#includeusingnamespace