草庐IT

g_main_loop_run

全部标签

c++ - 在 C++ main() 执行之前处理 Mac OS X 文件打开事件

我在谷歌上搜索了很多,但仍然找不到好的解决方案:/因此,我正在将一个复杂的Qt5应用程序(某些网络服务的客户端)移植到MacOSX(10.7.0“Lion”及更高版本)。我需要处理像*.xyz这样的自定义文件和像xyz://这样的自定义URL方案。好的,Qt5有QFileOpenEvent类来处理OSX适当的事件。但是:此事件仅在应用程序事件循环开始后才到达(显然)!而且我需要“捕获”并处理OSX的文件打开事件BEFOREmain启动,因为程序逻辑旨在处理命令行参数仅处理。简化的main函数代码:intmain(intargc,char[]*argv){QApplicationapp(

c++ - 给定范围内的完美正方形 : abnormal execution of loops

程序编号1:在给定的a和b范围内,其中ab,我想找出一个数字是否是一个完美正方形,如果是,则打印其根。因此,我编写了如下代码:#include#include#include#includeusingnamespacestd;floatsquaredroot(intn){floatlow=0.0,mid;floathigh=(float)n+1;while((high-low)>0.00001){mid=(low+high)/2;if(mid*mid>a>>b;floatroo=0.0;for(i=a;i对于给定的输入15,输出应该是2。但是,上面的程序没有打印任何值。然而,当我尝试使

c++ - pre-main 全局初始化程序是否保证运行单线程?

例如,以下代码段中的node::node()构造函数访问全局变量node::count和::tail没有任何多线程保护。C++标准是否保证输出始终是012的排列(无论顺序如何)?#includestructnode*tail;structnode{staticintcount;intindex;node*prev;node(){index=count++;prev=tail;tail=this;}};intnode::count;nodeone,two[2];intmain(intargc,char*argv[]){for(node*p=tail;p;p=p->prev)printf(

c++ - 如何在 C++ 中忽略动态链接库中的 main 方法

在我们的应用程序中,我们使用了几个动态链接库。我们最近更新了其中一个库的版本。自这个新版本以来,该库的开发人员提供了一个主要方法(除了打印HelloWorld之外什么都不做)。问题是我们使用的是GTest和GMock,它们生成自己的main方法。当我们现在运行我们的测试二进制文件时,我们只得到“HelloWorld”,所以采用了错误的main方法。我们如何强制使用测试的主要方法?更新:这似乎是一个GMock/GTest问题。main方法正常生成,但不是这样,因为它现在找到了一个已经存在的main方法。 最佳答案 您的情况没有解决办法

c++ - main() 中下面 'i' 的类型。为什么是int&?

我知道main()中i的类型是int&。这就是必须对其进行初始化的原因。int&f(){staticinti=1;returni;}intmain(){decltype(f())i=f();}但使用标准中的段落5p5,我得出结论,表达式f()的类型为int,因为引用被删除了。从7.1.6.2p4开始,假设从函数返回中删除了引用,怎么能说表达式f()是左值? 最佳答案 在评估表达式的类型时(根据§5/5),引用被删除,但这不会改变函数调用表达式f()是一个的事实左值。根据C++11标准的第5.2.2/10段:Afunctioncall

c++ - g++ : can't link with a main executable file

我正在开发一个使用统计攻击来破解wepkey的应用程序。当我用我的makefile编译时(如上)我得到这个错误:ld:can'tlinkwithamainexecutablefile'execStatAttack'forarchitecturex86_64clang:error:linkercommandfailedwithexitcode1(use-vtoseeinvocation)make:*[statAttack]Error1我的项目包含那些文件:statAttack.cpp:包含主要功能,使用上面的文件rc4.h+rc4.cpp:具有那些功能#include#include#i

c++ - 关于 main 函数的命令行参数

它看起来像intmain(intargc,char*argv[]);。我的问题是:1我可以在argv[]中添加多少个数组项?2每个char*的最大大小是多少? 最佳答案 你可以试试:$getconfARG_MAX2180000http://pubs.opengroup.org/onlinepubs/007904975/basedefs/limits.h.htmlARG_MAXismaximumlengthofargumenttotheexecfunctionsincludingenvironmentdata.也就是说,对参数的数量或

c++ - 错误 MSB6006 : "cmd.exe" exited with code 1 running QT application

我使用visualstdio2012命令提示符编译了QT5.0.1。当我创建控制台应用程序时,一切都很好并且可以正常工作,但是当我创建QT应用程序时,它会抛出此错误:Error1errorMSB6006:"cmd.exe"exitedwithcode1(已安装QTvisualstdioqt-vs-addin-1.2.0) 最佳答案 打开详细构建输出以查找您的确切问题,工具->选项->项目和解决方案->构建和运行->构建输出和构建日志详细信息。我的问题是错误地使用了“CONST”。(CleanandRebuild似乎可以暂时解决问题,

c++ - 无法将信号连接到 main() 内的函数

我知道要在类中使用Qt的信号和槽机制,该类必须包含Q_OBJECT宏,但我试图在main(),不使用任何类。到目前为止,这是我的代码:#include#include#include#includevoidsaveText();intmain(intargv,char**args){QApplicationapp(argv,args);QTextEdittextEdit;QPushButtonsaveButton("Save!");QPushButtonexitButton("Exit!");QObject::connect(&exitButton,SIGNAL(clicked()),

c++ - 你怎么知道 main 是否已经退出?

在C和C++中,atexit函数在exit内部调用,或者在main返回后调用(名义上调用exit:__libc_start_main(argc,argv){__libc_constructors();exit(main(argc,argv));).有没有办法查明我们是否在退出序列内?C++全局和局部静态的析构函数是用atexit注册的,所以你的代码当然可以在这个阶段被调用。(有趣的是,在某些平台上,如果您尝试在exit中创建C++本地静态对象,它会在退出锁上死锁!)到目前为止我最好的尝试如下:staticboolmainExited=false;staticvoidwatchMain(