草庐IT

uses-sdk

全部标签

c++ - 未使用值警告 : C vs C++ using gcc

是否有可能使gcc像g++那样处理C++的未使用值警告?对于像C中的p&&++*p;这样的指令,有一个警告,但对于C++则没有。设置-wno-unused-value并不是真正的解决方案,因为它还会删除有用的警告(如下面的第2行)。示例:$(gcc--version|head-1;ls-lqwe.*;catqwe.x;echo$sep;gcc-c-O2-Wallqwe.c;echo$sep;g++-c-O2-Wallqwe.cc)2>&1|sed's/^//'gcc(Debian4.9.2-10)4.9.2lrwxrwxrwx1tmltml5Jul2310:12qwe.c->qwe.x

c++ - "using namespace"在 C++ 中是可传递的吗?

令我惊讶的是,以下代码在VC++2017上编译并打印“X”:#include#includenamespaceA{usingnamespacestd;}namespaceB{usingnamespaceA;}namespaceC{usingnamespaceB;stringa;}intmain(){C::a="X";std::cout看起来usingnamespacestd从命名空间A通过命名空间B进入命名空间C。这是VisualC++中的错误还是符合语言规范?我曾预计usingnamespacestd在封闭范围的末尾结束,也就是在命名空间A定义的末尾。编辑:据我所知,对thisque

c++ - 为什么 Visual C++ 2010 提示 'Using uninitialized memory' ?

我有一个函数,它接受一个指向缓冲区的指针,以及该缓冲区的大小(通过指针)。如果缓冲区不够大,它会返回一个错误值并在输出参数中设置所需的长度://FillBufferisdefinedinanothercompilationunit(OBJfile).//Wholeprogramoptimizationisoff.intFillBuffer(__int_bcount_opt(*pcb)char*buffer,size_t*pcb);我这样调用它:size_tcb=12;char*p=(char*)malloc(cb);if(!p)returnENOMEM;intresult;for(;;

c++ - 在 Qt Creator 中使用 Windows SDK 7.1

我有一个我正在处理的个人项目,它需要MicrosoftSAPI5--文本到语音和语音识别。我已经构建了很多应用程序,但我决定切换并尝试学习Qt框架,因为它会使很多事情变得更加简单。项目无法构建,因为它无法从WindowsSDK中找到头文件。我不知道我哪里出错了。我已尽力编辑我的.pro文件。除了下面的内容,我还尝试了一个明确列出头文件的版本,但仍然找不到该文件。错误:sapi.h:没有那个文件或目录speech.h中包含:#include#include我的.pro文件:QT+=coreguiTARGET=QT_RiverTEMPLATE=appINCLUDEPATH+="C:\Pro

c++ - COM 互操作 : how to use ICustomMarshaler to call 3rd party component

我想使用COM互操作从C#调用COM组件中的方法。这是方法签名:longGetPrecursorInfoFromScanNum(longnScanNumber,LPVARIANTpvarPrecursorInfos,LPLONGpnArraySize)这是在C++中调用它的示例代码(我检查过它确实有效):structPrecursorInfo{doubledIsolationMass;doubledMonoIsoMass;longnChargeState;longnScanNumber;};voidCTestOCXDlg::OnOpenParentScansOcx(){VARIANTv

c++ - 链接错误 : Boost Library on Windows using MinGW

我正在使用Windows764x并安装了MinGW。我的目标是在Eclipse上使用boost库(此处:boost_program_options)。boost库已正确安装,我可以在C:\MinGW\boost_1_53_0\stage\lib下看到文件libboost_program_options-vc90-mt-gd-1_53.lib>我现在尝试通过转到Properties->C/C++Build->Settings->MinGWC++Linker->Libraries在Eclipse中链接它:我在这里输入库搜索路径(-L):C:\MinGW\boost_1_53_0\stage

C++ LZMA SDK : Uncompress function for LZMA2 compressed file

我正在尝试创建一个解压缩LZAM2压缩数据的函数。我的灵感来自thistutorial这对LZMA非常有效,我尝试将其改编为LZMA2。我成功地为LZMA2创建了压缩函数,但我没有成功创建解压缩函数。这里是压缩函数:staticvoidCompress2Inc(std::vector&outBuf,conststd::vector&inBuf){CLzma2EncHandleenc=Lzma2Enc_Create(&SzAllocForLzma,&SzAllocForLzma2);assert(enc);CLzma2EncPropsprops;Lzma2EncProps_Init(&p

FPGA----Vivado SDK创建并使用静态链接库(C/C++代码移植)

1、在进行SoC开发时,PS端的C/C++代码可能涉及到核心算法需要移植操作,为此,本文讲述了如何将C/C++代码打包为.a文件供程序调用2、文章以我的程序为例,逐步讲述代码生成静态链接库并调用的方法。下面是我程序的目录结构,Util调用了Eigen矩阵运算库。load_circuit_from_case调用了xilffs(SD卡读取功能包)以及Util。circuit_sim调用了load_circuit_from_case。emtp_start调用了circuit_sim。default_main调用了emtp_start以及output_data。其中,load_circuit_from

c++ - VC++ 2013 : using-declaration + redefinition of member function leads to compile error

我想通过指定策略允许修改我的类的行为。该策略应该用作boost::variant的访问者。有适合大多数情况的默认策略,但用户可能需要添加或替换一些重载。我发现vc++2013没有编译此代码并出现错误C3066:Therearemultiplewaysthatanobjectofthistypeofcanbecalledwiththesearguments。相同的代码在gcc和clang中按预期编译和工作。是vc++2013的错误吗?#includestructDefaultPolicy{voidoperator()(bool){std::coutUPD这个例子适用于vc++2010。看

c++ - 线程构建 block : Deadlocks because all threads used up

在英特尔线程构建block框架中,如何确保所有线程不忙于等待其他线程完成。例如考虑以下代码,#include#include#include#include#includestd::futurerun_something(std::functionfunc,boolb){autotask=std::make_shared>(std::bind(func,b));std::futureres=task->get_future();tbb::task_groupg;g.run([task](){(*task)();});returnres;};intmain(){tbb::parallel