
C++
荔枝娘娘
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
将一个控制台应用程序转换成动态链接库dll
我们在写C++程序时,经常遇到与其他语言的交互,要求C++生成.dlld文件,供其他语言调用。但在一开始搭建程序时,由于调试程序的需要,往往需要我们在本地完成一个完整的应用程序,之后再将程序转换为动态链接库。下面为转换步骤:1.右键点击解决方案->添加->新建项目->控制台应用程序位置可以选择代码所在的目录,点击“创建”2.将原来的应用程序的主函数“main()”所在的cpp文件,及对应的头文件移到新建的应用程序目录中,直接鼠标左键选中,拖动即可3.删除新生成的控制台应用原创 2021-08-24 17:57:48 · 1923 阅读 · 1 评论 -
C++ 使用unordered_map, pair作为key
unordered_map与hash_map相似但hash_map不属于STL标准库,经常遇到报错,提示用unordered_map进行替换在使用unordered_map时,有时需要用pair作为key,但是会报错unordered_map中没有针对pair的hash函数,需要手动传入一个hash函数。hash函数的简单实现如下:struct hash_pair { template <class T1, class T2> size_t operator()(co原创 2021-07-02 19:01:39 · 5447 阅读 · 4 评论 -
C++读取Json数据
C++读取Json数据@TOCJava调取C++的dll时,数据交互通常使用jni,数据为json格式。C++读取json文件需要用到一些头文件,以及设置,如下,以防后面忘记。对于lib_json.lib的生成,可以参考其他博文。1.将json目录,以及lib_json目录拷贝至当前项目下。如图:2.将jni.h jni_md.h拷贝至当前目录,如图:3.将lib_json.lib拷贝到当前目录,并添加到当前项目的链接库中,如图:4.代码中引用头文件,如图:5.开始解析6.有问题再原创 2021-06-22 14:28:17 · 1298 阅读 · 0 评论 -
C++自定义类在进行计算时常常遇到“==”的重载
关于C++自定义类“==”的重载,如下:Class Code{ public: int left; int right; int bottom; int top; bool opearator==(Code& rhs) con...原创 2020-03-17 15:47:06 · 419 阅读 · 0 评论 -
error LNK1104: 无法打开文件“*.lib”解决办法
error LNK1104: 无法打开文件“*.lib”解决办法解决办法:右击项目,选择属性->配置属性->VC++目录->库目录->编辑->勾选“从父级或项目默认设置继承”,然后错误就消失了。...原创 2019-12-31 18:31:28 · 6655 阅读 · 1 评论 -
linux下vscode的c++编译“helloworld”程序
初使用linux下vscode,不是很熟悉流程,先从基础的编译“helloworld”程序开始,找到下面很不错的博文:linux下vscode的c++工程配置原创 2019-11-22 15:01:20 · 1706 阅读 · 0 评论 -
cmake编译报错需要添加-fPIC
在Linux环境下编译C++项目,并调用外部json库。json库可以直接下载,最新版就可以,需要编译生成静态链接库libjsoncpp.a(文件名可为其他),生成之后,添加到我们的项目中,编译,发现报错relocation R_X86_64_32 against `.text' can not be used when making a shared object; recompile wi...原创 2019-12-19 13:23:59 · 1263 阅读 · 0 评论 -
错误 LNK2011 未链接预编译对象;映像可能不能运行
项目属性–预编译头–不使用预编译头原创 2019-09-18 11:27:01 · 5354 阅读 · 1 评论 -
已包含头文件,仍出现未定义的标识符错误
检查头文件是否有相互包含的关系,会导致递归调用,出现报错原创 2019-08-26 15:19:46 · 7943 阅读 · 1 评论 -
cstring、string、lpwstr、lpstr、char*之间相互转换
cstring 转换为cstring 转换为 */* cstring 转 string */CString cs(_T(“cs”));string s;s = (LPCSTR)(CStringA)(cs);/* CString转换成LPCWSTR、LPWSTR、LPCSTR、LPSTR *///VS2005中CString已经改为宽字符型LPWSTR lpstr = (LPWST...原创 2019-08-26 14:58:26 · 556 阅读 · 0 评论 -
CString.Format的详细用法
在MFC程序中,使用CString来处理字符串是一个很不错的选择。CString既可以处理Unicode标准的字符串,也可以处理ANSI标准的字符串。CString的Format方法给我们进行字符串的转换带来了很大的方便,比如常见的int、float和double这些数字类型转换为CString字符串只需一行代码就可以实现。先看看Format用于转换的格式字符:%c ...原创 2019-08-26 14:25:06 · 1059 阅读 · 0 评论 -
C++ C4996'localtime': This function or variable may be unsafe
解决方法:在报错的文件中添加#pragma warning(disable:4996)原创 2019-08-21 17:55:38 · 2061 阅读 · 0 评论 -
C++ 无法打开文件“xxx.lib”错误的解决办法
在调用json库的时候,需要加载lib_json.lib 文件,出现报错“无法打开文件“lib_json.lib”原因:#pragma comment (lib,“xxx.lib”)//默认和引用的CPP文件在一个文件夹中或者:解决方法1:将xxx.lib和调用pragma comment的源文件放在一个目录(注意是调用它的源文件,不是头文件)。解决方法2:也可以在xxx.lib前加上全路...原创 2019-08-21 10:17:00 · 25327 阅读 · 3 评论 -
C++ :error C1854: 无法覆盖在创建对象文件“.obj”的预编译头过程中形成的信息
在Visual Stdio中使用预编译头,可能会产生error C1854。解决方法如下:1、将stdafx.cpp属性中预编译头改为创建。2、将工程中其余cpp属性预编译头均改为使用。3、将工程属性预编译头改为使用。4、如果还存在该error,重新生成解决方案。...原创 2019-08-21 10:06:24 · 2280 阅读 · 2 评论 -
VS2017 PCH警告,未生成IntelliSense PCH文件
解决办法:在VS2017中依次单击:工具–选项–文本编辑器–C/C++–高级–禁用 IntelliSence,将“false”改为“true”。原创 2019-08-20 10:58:48 · 3466 阅读 · 0 评论 -
关于hash_map用unordered_map替代
hash_map是C++非标准STL,因为标准化的推进,hash_map属于非标准容器,未来将要用unordered_map替代。建议我们使用unorder_map替代hash_map解决办法(1)使用<unorder_map>替换<hash_map>或者(2)加宏定义忽略这个错误#define _SILENCE_STDEXT_HASH_DEPRECATION_...原创 2019-07-22 17:10:42 · 872 阅读 · 0 评论 -
error C2019, error link2019:无法解析的外部符号
error C2019, error link2019:无法解析的外部符号可能是由于引用的函数只有函数声明与error C2001, error 无法解析的外部符号 相似原创 2019-04-26 09:31:45 · 695 阅读 · 0 评论