
C++ 基础
文章平均质量分 52
benobug
这个作者很懒,什么都没留下…
展开
-
C++编程 使用MSBuild编译器编译项目
在Windows上写小的C++程序文件的时候我比较喜欢用MinGW的g++编译器来编译工程,简单一条命令语句就能够搞定。但是当写稍微大一点的项目时,可能就需要配合makefile文件来进行编译,或者是visual studio IDE来编辑和编译。今天我突发奇想想用微软的编译器MsBuild来像g++一样编译工程。在查阅各种资料和询问同事之后有了一点小结果首先新建一个项目文件夹,我这里起名叫"demo_msbuild_prj",实际命名可以自己确定。然后可以从以前用Visual Studio IDE建立的原创 2021-06-08 16:49:51 · 2869 阅读 · 0 评论 -
C++ 可执行文件输入输出重定向
编写程序包含iostream库时,会自动创建cin和cout对象,标准输入流对象通常连接着键盘,而标准输出流对象通常连接着屏幕。不过Windows和Linux操作系统支持重定向,在命令行窗口运行程序时,可以通过输入重定向符(’<’)和输出重定向符(’>’),来从特定的文件中读取输入,输出到特定的地方(可以是文件,或者打印机啥的)举个例子:现有可执行文件tmp.exe,保存输入数据的文件input.txt,和保存输出数据的文件output.txt,可在命令行窗口输入如下命令tmp.exe &原创 2021-05-26 13:02:12 · 1088 阅读 · 0 评论 -
使用C++ regex库 正则表达式注意事项
在编写C++程序使用到正则表达式的时候,我使用如下代码std::regex name_scheme("\\\\.\\COM[1-9][:digit:]*");std::string str = "\\\\.\\COM6";std::string str1 = "\\\\.\\COM15";bool rst = std::regex_match(str, name_scheme);bool rst1 = std::regex_match(str1, name_scheme);得到的rst和rst原创 2021-05-25 11:35:40 · 587 阅读 · 0 评论 -
VS2019 生成的exe文件在其他环境下运行失败的问题——静态编译
有时候我们在自己电脑上编写程序,生成可执行文件之后放到别人的电脑上运行会出现运行环境不兼容或者确实dll文件的尴尬局面。如下图所示这通常是由于我们的IDE选择了动态编译所致。该方法生成的可执行文件比较轻省,需要的一些东西要从计算机中存在的dll库,如果运行的计算机中不存在所需的库,就会出现如上的情况。解决的方法是在VS2019中打开项目项目 》项目属性 》 配置属性 》 C/C++ 》 代码生成 》 运行库 》选择多线程调试(/MTd) (PS:如果配置是release模式的话要选择多线程(/MT原创 2021-05-23 20:37:23 · 7044 阅读 · 1 评论 -
C++17 新特性 constexpr if——按条件编译
C++17新特性中,constexpr if为我们提供了按条件编译的功能。它可以在编译阶段,根据模板参数的值编译相应的段落。与普通的if相比,好处是避免生成多余的if…else…条件判断分支,影响效率。坏处是会使生成的文件变大(下面的例子中将编译出两个版本的函数fun)vector<int> *ptr1 = new vector<int>{1, 2, 3};vector...原创 2020-04-20 15:56:38 · 4442 阅读 · 0 评论 -
C++ 生成dll时没有顺带生成lib的原因
C++ dll库只生成dll文件,而未生成lib文件,问题在于没有在接口函数前面加上前缀__declspec(dllexport)在VS的工程中,此前缀常常被宏定义为:工程名_API#ifdef RADONCUDA_EXPORTS#define RADONCUDA_API __declspec(dllexport)#else#define RADONCUDA_API __declspec...原创 2020-04-02 22:23:08 · 4292 阅读 · 1 评论