草庐IT

main_cmd_argv

全部标签

c++ - 解析参数到 main()

在C++中,是否存在用于解析main()函数参数的实用程序的完善、完整、开源的实现?我自己写的,我看到周围有很多其他人。但是我在想是否有更好的实现可用,它提供了相应可执行文件所期望的所有功能。 最佳答案 Boost提供了一个开源实现ProgramOptions. 关于c++-解析参数到main(),我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/9943566/

c++ - 将 argv 转换回单个字符串

我正在编写一个包装另一个进程的(Win32控制台)程序;它采用以下示例中的参数:runas.exeusernotepadfoo.txt即:runas解析user,然后运行notepad,传递剩余参数。我的问题是argv被分解成单独的参数,但是CreateProcessAsUser需要单个lpszCommandLine参数。构建此命令行可能并不像将argv与空格连接起来那么简单。有什么指点吗?这只是一个例子。我的第一个参数实际上不是用户名,其中可能有空格。这使得手动解析GetCommandLine的结果变得棘手。同样,argv的简单串联将不起作用,因为它需要处理原始参数被引用并且其中可能

c++ - 在 VS cmd 提示符下运行 .bat 文件

我已经创建了一个compile.bat和run.bat文件,但是当我双击它们时,它们会在Windowscmd提示符下运行,而不是在VScmd提示符下运行。这是我的compile.bat文件中的内容:devenvFileMgr.sln/重建调试暂停Windowscmd显示“'devenv未被识别为内部或外部命令、可运行程序或批处理文件。” 最佳答案 如果我没记错的话,所有VisualStudio命令提示符本身就是一个批处理脚本,用于初始化路径和环境变量。因此,如果您只是在您的脚本顶部调用该批处理脚本,您将拥有脚本的所有这些设置。根据t

无法在 main 中访问在函数中初始化的 C++ 数组

我有一个用于在C++中初始化数组的函数。初始化后,main无法访问数组中的数据。不知道为什么。有帮助吗?voidtestArray(int*listPtr){listPtr=newint[2];listPtr[0]=0;listPtr[1]=1;}//endtestArrayvoidmain(){int*list;testArray(list);cout 最佳答案 这是因为指针是按值传递的。函数的参数被复制,函数的第一行用新表达式的结果替换指针的本地拷贝。返回main()的指针的原始拷贝不受此影响。您可以通过引用传递指针来“修复”此

c++ - 错误 LNK2019 未解析的外部符号 _WinMain@16 在函数 "int __cdecl invoke_main(void)"(?invoke_main@@YAHXZ) 中引用

这是我的剧本我不知道如何解决这个错误请帮我非常感谢floatangle=15;floatx,y,z;//forpolygonrotatevoiddisplay(){glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);//clearscreenanddepthbufferglLoadIdentity();glPushMatrix();glColor3f(1.0,0.0,0.0);glBegin(GL_POLYGON);glVertex2f(160.0,360.0);glVertex2f(300.0,360.0);glVertex2f(160.

openssl3.2 - use openssl cmd create ca and p12

文章目录openssl3.2-useopensslcmdcreatecaandp12概述笔记实验的openssl环境建立CA生成私钥和证书请求生成CA证书用CA签发应用证书用CA对应用证书进行签名将已经签名好的PEM证书封装为P12证书验证P12证书是否可用ENDopenssl3.2-useopensslcmdcreatecaandp12概述已经用官方perl脚本(CA.pl)做了关于建立CA和封装P12证书的实验(openssl3.2-helpdoc-P12证书操作).但是将官方perl脚本用的openssl命令行记录下来,自己用openssl命令行重新做一遍实验时,发现有些文件,目录的名称

c++ - C++中 "main"线程的id

在C++中有没有办法获取“主”程序线程的ID?我看到std::this_thread::get_id()获取当前正在执行的线程的ID,但我需要main的ID,即原始程序线程。我没有看到任何功能来获取它。原因是我有一些非线程安全的内部函数,它们只能在应用程序的原始线程上调用,所以为了安全我想这样做:-assert(std::this_thread::get_id()==std::main_thread::get_id());但是当然没有执行此操作的功能,而且我看不到任何获取该信息的方法。 最佳答案 您可以在this_thread仍然是

c++ - 在 main() 消失之前初始化的值

无法理解奇怪的程序行为-希望有人能解释一下。虚拟.h:#ifndefDUMMY_H#defineDUMMY_H#includeclassDummy{intval;public:intInit(intnew_val){returnval=new_val;}intGet(){returnval;}Dummy():val(-1){std::cout标题.h:#include"dummy.h"externDummydummy;虚拟.cpp:#include"dummy.h"Dummydummy;主要.cpp:#include#include"header.h"intres1=dummy.Ini

c++ - 可以单独编译任何 .c 文件(也就是说,没有 main?)

我目前有一个“类库”.c文件(如下所示)。我对此有2个问题:如果我想看看它自己是否编译良好,我该怎么做?如果我尝试对它进行gcc,它总是会给出“nomain”错误,这是有道理的,但会引发一个问题,即知道给定的.c文件是否可以“隔离”编译。我是否可以安全地得出结论,如果编译器引发的唯一错误是“nomain”错误,那么我的文件没有问题?在这里单独编译.c文件的一个例子是确定哪些包含过多。在这样一个简单的文件中是否有必要用它的方法/结构声明定义一个header,然后在这样一个很小的​​.c文件中包含代码实现?#ifndefSEMAFOROS#defineSEMAFOROS#include#i

c++ - CRT 如何调用 main ,具有不同的参数

我们可以用多种方式编写主函数,intmain()intmain(intargc,char*argv[])intmain(intargc,char*argv[],char*environment)运行时CRT函数如何知道应该调用哪个main。请注意,我不是在询问是否支持Unicode。 最佳答案 接受的答案不正确,CRT中没有特殊代码来识别main()声明的类型。它的工作是因为cdecl调用约定。它指定参数从右到左压入堆栈,调用者在调用后清理堆栈。因此CRT只是将所有参数传递给main()并在main()返回时再次弹出它们。您唯一需要