![](https://img-blog.csdnimg.cn/20190918140129601.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C总结
C总结
仗剑走天涯hyc
这个作者很懒,什么都没留下…
展开
-
c++之WinApi(一)--Process
#include <windows.h>#include <stdio.h>#include <tchar.h>void RunExe(){ STARTUPINFO stStartUpInfo; ::memset(&stStartUpInfo, 0, sizeof(stStartUpInfo)); stStartUpInfo.cb = sizeof(stStartUpInfo); PROCESS_INFORMATION stProcessInf.原创 2021-09-29 09:30:23 · 472 阅读 · 0 评论 -
c++之WinApi(二)--Logon
#include <windows.h>#include <iostream>#ifdef _WIN32#include <codecvt>#include <string>static std::wstring string2wstring(std::string srcStr){ std::wstring_convert<std::codecvt_utf8<wchar_t>> cvs6; return cvs6.f原创 2021-09-29 09:30:10 · 112 阅读 · 0 评论 -
c++之WinApi(三)--MadeCarsh
#include <Windows.h>#include <iostream>#include "hsysrealinfo.h"//madecraseint mainmadecrase(){#if 1 int pid = 7728;#else std::string name = "electrical"; int pid = getPidByName(name);#endif // 0 HANDLE process_handle = OpenProce.原创 2021-09-29 09:29:39 · 88 阅读 · 0 评论 -
c++之WinApi(四)--MemLeak
#include <iostream>#include <memory>#define USE_CRTDB 0#if USE_CRTDB #define _CRTDBG_MAP_ALLOC#include <stdlib.h>#include <crtdbg.h>#define new new(_NORMAL_BLOCK, __FILE__, __LINE__)void EnableMemLeakCheck(){ int tmpFl.原创 2021-09-29 09:29:26 · 124 阅读 · 0 评论 -
c++之代码片段(一)
Bmp赋值for (int i = 0; i < height; i++){ for (int j = 0; j < width; j++) { float Light = Imagedata[j][i]; if (step == 1) { outImagedata[i*width + j] = Light; } else if (step == 3) {原创 2021-09-29 09:30:54 · 149 阅读 · 0 评论 -
c++之常犯错误(一)
QString转char*不能只用.data()实在不行可转成string.c_str()本来是该链接qt4链接成了qt5ldd SIR //查看链接库cmake编译没有指定路径odbc的配置文件可能在root家目录下qt中文编码格式错误:现象:程序编译通过,用的也没问题,但无缘无故会在程序实际数据时报错。原因: 我的程中有中文注释,我是是在linux下用qtcreator写的代码,移到windows之后,编码格式有问题。解决办法:去掉所有的中文注释,或者改变文件的编码格式,使之适应vs原创 2021-09-29 09:31:16 · 88 阅读 · 0 评论 -
c++之常犯错误(二)
注意printf少参数会崩溃modbus是独占模式结构体注意字节对齐数组注意防止越界使用short要注意范围溢出找不到错误时可以试试删除中文注释//(*imageData)[i*width * 3 + j * 3 + 2] 二级指针注意优先级c++线程只能传指针或者值,不能传引用,参数传string不要传char*文件编码,linux本地为utf-8,window下为ANSI//unsigned char **oi = new unsigned char *[Row]原创 2021-10-14 11:35:12 · 103 阅读 · 0 评论 -
c++之常犯错误(三)
QString转char*不能只用.data()实在不行可转成string.c_str()本来是该链接qt4链接成了qt5ldd SIR //查看链接库cmake编译没有指定路径odbc的配置文件可能在root家目录下qt中文编码格式错误:现象:程序编译通过,用的也没问题,但无缘无故会在程序实际数据时报错。原因: 我的程中有中文注释,我是是在linux下用qtcreator写的代码,移到windows之后,编码格式有问题。解决办法:去掉所有的中文注释,或者改变文件的编码格式,使之适应vs原创 2021-09-24 16:43:26 · 78 阅读 · 0 评论 -
c++之自我总结(一)
lambda[] 不捕获任何变量[&] 以引用方式捕获所有变量[=] 用值的方式捕获所有变量(可能被编译器优化为const &)[=, &foo] 以引用捕获foo, 但其余变量都靠值捕获[&, foo] 以值捕获foo, 但其余变量都靠引用捕获[bar] 以值方式捕获bar; 不捕获其它变量[this] 捕获所在类的this指针类类也是一种特殊的数据类型,类似结构体cin 是istream的实例化,自带锁cout是ostream的实例化,自带锁静态变原创 2021-09-29 09:31:30 · 110 阅读 · 0 评论 -
c++之自我总结(二)
1.关于数据库局域网情况下或者单机情况下使用mysql就可以。mysql的api封装以qt的(Qvarint)最好用c++可以用mysqlcppconn库(java最次最通用的就是纯c风格api(使用较为麻烦)国产数据库(人大金仓)或者Oracle使用风格类似mysql前期可以用mysql模拟,后期可以无缝切换如果数据量较小且需要本地存储则sqlite数据库最为合适qt的api最好用,没有qt可以使用纯c风格api普通缓存就用内存stl变量即可,如果要求实时性可以使用redis作缓存r原创 2021-09-29 09:31:06 · 80 阅读 · 0 评论 -
c++之自我总结(三)
移位操作 int num = 12345678999; printf("num:0x%x\n", num); int num1 = (num >> (8 * 0)) & 0x000000ff ; printf("num1:0x%x\n", num1); int num2 = (num >> (8 * 1)) & 0x000000ff; printf("num2:0x%x\n", num2); int num3 = (num >> (8 * 2原创 2021-09-29 09:31:42 · 53 阅读 · 0 评论 -
c++之数字句柄
最近琢磨了一下接口设计,感觉接口设置时为了更好的扩展,又不想直接使用指针(对非c/c++,给非c++人员调用太过麻烦)同时也要具备多线程或者多实例的功能,故参考windows系统就设计就引入了我自己的句柄概念,以下仅供参考。测试代码#include <map>#define ULLONG unsigned long long class MyClass { public: MyClass() { a = 0; } int square() { re原创 2021-09-24 16:42:50 · 98 阅读 · 0 评论 -
c++之调用python
以下是小可关于c调python的理解有不对之处希望大家指正测试环境准备vs2015 x64 release加载python头文件目录 C:\ProgramData\Anaconda3\pkgs\python-3.7.0-hea74fb7_0\include加载python库目录 C:\ProgramData\Anaconda3\pkgs\python-3.7.0-hea74fb7_0\libs链接库 python37.lib动态库 python37.dll一 print简单函数测试测试代原创 2021-09-24 16:44:01 · 89 阅读 · 0 评论 -
c++之dll动态调用
以下是小可关于c++动态调用的理解有不对之处希望大家指正配合测试动态库代码#ifndef DLLDEMO_H#define DLLDEMO_H#if defined(WIN32) || defined(_WIN32)#ifdef MYDLLEXPORT#define API_DLLEXPORT extern "C" __declspec(dllexport)#else#define API_DLLEXPORT extern "C" __declspec(dllimport原创 2021-09-24 16:42:10 · 1291 阅读 · 0 评论 -
c++之linux下udp
client#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/socket.h>#include <sys/types.h>#include <unistd.h>#include <arpa/inet.h>int main(int argc, const char *argv[]){ int sockfd; ch原创 2021-09-29 09:30:40 · 953 阅读 · 1 评论 -
c++之linux下dump
以下是小可关于coredump的理解有不对之处希望大家指正简单的崩溃可以 通过日志和堆栈信息定位复杂的则需要借助 coredump 文件定位coredump调试步骤如下写入测试程序vim test.c#include <stdio.h>#include <string.h>int main(){ int *ptr = NULL; *ptr = 10; return 0;}编译并执行在程序启动时打开coredump,并设置co原创 2021-09-24 16:40:08 · 907 阅读 · 0 评论