Visual C/C++开发
Visual C/C++开发
haimianjie2012
专注AI Complier,异构并行计算,HPC高性能计算,计算机视觉,深度学习和机器学习,C++开发;也写一些随笔读书笔记,面试题解析和求职攻略
展开
-
windows系统下,C++统计进程内存使用情况
C++统计进程内存使用情况原创 2022-11-14 14:47:33 · 1986 阅读 · 0 评论 -
opengl学习笔记
随笔分类 - OpenGLopengl Getting Started原创 2022-01-17 17:00:48 · 167 阅读 · 0 评论 -
QT源代码编译与调试
1.C++ pdb调试C++,PDB和dump文件进行调试的方法调试之pdb文件(C++)2.如何在visual studio中调试源代码在 Visual Studio 中调试源代码在 Visual Studio 调试器(C#、C++、Visual Basic、F#)中指定符号 (.pdb) 和源文件3.QT源代码编译与调试教程QT 源码编译–windows编译、安装Qt源代码...原创 2021-11-29 17:20:17 · 773 阅读 · 0 评论 -
C++字符串string比较:strcmp与==
string字符串比较:#include <iostream>#include <string>using namespace std;int main(){ string str = "0"; if (str == "0") { printf("str==0\n"); } if (str == "5") { printf("str == 5\n"); } if (strcmp(str.c_str(), "0") == 0) {原创 2021-10-22 17:03:22 · 1197 阅读 · 0 评论 -
NMAKE makefile内容和功能(1):描述块
描述块构成makefile的核心。它们描述了要创建的目标或文件,以及它们的依赖关系,以及创建目标所需的文件。描述块可以包括描述如何从依赖项创建目标的命令。描述块是一个依赖项行,可以选择后跟一个命令块:targets... : dependents... commands...依赖行依赖项行指定一个或多个目标,以及零个或多个依赖项。如果目标不存在,或者其时间戳早于依赖项,则NMAKE将执行命令块中的命令。如果目标是伪目标,NMAKE还会执行命令块。下面是一个依赖关系行示例:hi_bye.ex原创 2021-10-09 16:40:33 · 200 阅读 · 0 评论 -
NMAKE makefile内容和功能
一个makefile包括:描述块命令宏推理规则Dot指令预处理指令有关示例,请参见示例makefile。NMAKE支持其他功能,例如通配符、长文件名、注释和特殊字符的转义。原创 2021-10-09 15:49:52 · 278 阅读 · 0 评论 -
如何编译designer和nmake问题解决 : fatal error U1077: “rc”: return code“0x1” Stop.
问题解决 NMAKE : fatal error U1077: “rc”: return code“0x1” Stop.https://blog.csdn.net/huangyimo/article/details/80337485原创 2021-09-18 18:14:26 · 2894 阅读 · 0 评论 -
关于vector与pthread_create的线程函数的一些思考
相关文献:面试题(55)|STL(5):vector删除指定值的元素vector复杂对象传参与拷贝构造和赋值函数面试题(48)|STL(3):使用过哪些容器,底层如何实现的?定义vector和数组使用宏#define MAXTHREADS 200vector<string> m_vec(MAXTHREADS)报错:C2059: 语法错误:“常数”未找到m_vec的函数定义但是如果定义数组,则可以通过:#define MAXTHREADS 200string vec[原创 2021-09-07 16:22:44 · 266 阅读 · 0 评论 -
windows C++开发工程师求职攻略
已完成提纲熟练掌握TCP、udp等网络协议熟悉多线程同步CSDN:秒杀多线程面试题系列想学C++多线程应该从哪些方面入手?先学《操作系统》,特别是并发与同步这一章。然后读 https://computing.llnl.gov/tutorials/pthreads/ 或 http://www.amazon.com/Programming-POSIX-Threads-Davi...原创 2018-12-07 09:39:42 · 402 阅读 · 8 评论 -
一个C++程序员关于多线程的总结
多线程面试题一份多线程面试题及参考答案华为机试:HJ49,多线程华为机试:HJ49,多线程华为机试:HJ49多线程windows版本答案你用过线程池吗?如何实现多线程无锁同步多机数据处理有 10 台机器,每台机器上保存着 10 亿个 64-bit 整数(不一定刚好 10 亿个,可能有上下几千万的浮动),一共约 100 亿个整数(其实一共也就 80GB 数据,不算大,选这个量级是考虑了 VPS 虚拟机的容量,便于实验)。编程求出:这些数的平均数。这些数的中位数。出现次数最多的 100原创 2021-08-17 11:22:35 · 246 阅读 · 0 评论 -
c语言函数返回char*时,char*指针访问失效内存地址为问号?
list结构定义:typedef struct node{ void *val; struct node *next; struct node *prev;} node;typedef struct list{ int size; node *front; node *back;} list;read_data_cfg函数中获得li...原创 2019-10-14 17:27:35 · 773 阅读 · 0 评论 -
Visual Studio GUI应用程序_弹出控制台窗口/命令行窗口/dos窗口问题解决
问题描述:启动GUI应用程序,但是每次都启动dos窗口,dos窗口也可以叫做控制台、命令行窗口。终极目标:启动GUI应用程序时,不要显示dos窗口/控制台窗口/命令行窗口。程序装载原理操作系统首先装载应用程序,然后初始化,最后转入到程序入口点执行。程序的的默认入口点,由连接程序设置。1.连接程序设置控制台程序入口函数是mianCRTStartup,mainCRStartup调用main.cpp中入口函数默认为mian()函数,也可以通过命令修改:// 通过下面这句话将入口函数改原创 2021-03-24 16:48:05 · 2750 阅读 · 0 评论 -
C++程序进程通信共享内存设计架构与实现细节
1.主程序(C#.exe程序)window_loaded()主程序启动时win_loaded()函数调用DataDll.ImportDllImportDll主要干两件事:加载动态库和获取函数指针1.加载动态库 private IntPtr hLib; hLib = Win32Native.LoadLibrary(DLLPath);2.获取函数指针获取函数指针1:.声明动态库导出函数 public delegate Boolean fn_InitMappingEx(i原创 2020-10-14 16:27:57 · 440 阅读 · 0 评论 -
关于WaitForMultipleObjects的使用
WaitForMultipleObjectsWaitForMultipleObjects是Windows中的一个功能非常强大的函数,几乎可以等待Windows中的所有的内核对象DWORD WaitForMultipleObjects(DWORD nCount, // number of handles in the handle arrayCONST HANDLE *lpHandles, // pointer to the object-handle arrayBOOL fWaitAl原创 2020-12-17 17:11:13 · 305 阅读 · 0 评论 -
常见的上位机通信协议:嵌入式相关上位机编写,了解常用通信协议如RS-232、CAN、RS485、I2C等接口及网络通信优先
作为开发人员,常常浏览一下招聘网站,了解人才市场需求,还是很有必要的。今天浏览前程无忧时,发现这样一个要求:嵌入式相关上位机编写,了解常用通信协议如RS-232、CAN、RS485、I2C等接口及网络通信优先自己的工作有涉及到上位机,主要是串口RS-232,于是跟公司的嵌入式工程师请教并学习了上位机通信协议相关的一些知识。1.串口现在串口是比较老的技术,常见的串口包括:VA...原创 2019-05-09 19:16:48 · 6150 阅读 · 0 评论 -
C++编写小软件Batch.exe通过test命令调用已经训练好的darknet模型
生成好的Batch.exe拷贝到darknet的x64文件夹下,地址栏输入cmd,即打开cmd.exe并进入x64所在路径:输入命令:Batch.exe F:\1234\imgF:\1234\img为测试图片所在路径1.修改基于对话框的MFC程序,使其可以接受参数,而且启动时隐藏对话框。修改initinstance()方法:CBatchDlg dlg; m_pMainW...原创 2019-04-24 13:40:15 · 368 阅读 · 0 评论 -
位运算测试
#define M0 0x01//Z#define M1 (0x01 << 1)//X#define M2 (0x01 << 2)//Y#define M3 (0x01 << 3)//屈光#define M4 (0x01 << 4)//光程#define M5 (0x01 << 5)//偏振安抚int nIndex = log2(motoId);原创 2020-09-10 18:09:37 · 191 阅读 · 0 评论 -
修改扫描模式
80k下面相机增益是2,40k下面相机增益是1;曝光时间增加了一倍,所以增益降低一半,信号强度就不变。1.高清六线改变高清六线,相机40K扫描速度,增益1,2000线ChangeScan中添加代码:void CNewScanModuleDlg::ChangeScan(SCANMODE scanMode)//黄斑区域切换到高清六线时,或高清六线切换到前节六线时,需要改变相机状态 if (m_scanparam.scanmode==OCT3000_HDSIXLINEDOUBLEE原创 2020-06-04 15:08:17 · 394 阅读 · 0 评论 -
VS引用目录
VS引用目录:原创 2020-06-01 15:10:13 · 435 阅读 · 0 评论 -
Visual Studio Build Events
Visual Studio Build EventsVisual Studio的Build Events拷贝common整个目录到编译目录下:xcopy /I /Y /E "$(SolutionDir)common" "$(TargetDir)"原创 2020-06-01 14:26:46 · 411 阅读 · 0 评论 -
二维数组转Mat
二维数组转Matcv::Mat image_to_mat(image img){ int channels = img.c; int width = img.w; int height = img.h; cv::Mat mat = cv::Mat(height, width, CV_8UC(channels)); int step = mat.step; for (int y = 0; y < img.h; ++y) { for原创 2020-05-28 17:48:40 · 1718 阅读 · 0 评论 -
动态链接库导出函数
https://blog.csdn.net/PeterZ1997/article/details/79326748.def方法:1、__stdcall调用类型:该调用只是通过堆栈来push和pop参数。push参数时,顺序是从右到左。2、“_stdcall”的作用 :在C/C++中函数默认Calling Conventions(调用约定)是:参数由右向左压入栈,由调用者清空栈。h...原创 2019-10-24 17:41:30 · 214 阅读 · 0 评论 -
pugixml:c++ xml 处理库
consists of a DOM-like interface with rich traversal/modification capabilities,an extremely fast XML parser which constructs the DOM tree from an XML file/buffer,and an XPath 1.0 implementation for complex data-driven tree queries.原创 2021-07-21 12:01:52 · 196 阅读 · 0 评论 -
保存内存数据为bmp图片:24位3通道1
调用实例: BYTE *pdata = new BYTE[m_iImgDataW * m_iImgDataH * 3]; int k = 0; //保存mtsd和png文件 int iCount = 3; int iPos = 0; int iWNum = m_iImgDataW * 3; for (int i = 0; i< m_iImgDataW; ++i) { iPos = i * iCount; for (int j = 0; j< m_iImgDat原创 2020-05-21 17:23:53 · 479 阅读 · 0 评论 -
windows C++保存位图系列
保存内存数据为jpg图片:先将数据加上bmp头,然后转换为opencv格式并保存1保存内存数据为jpg图片:加上bmp头然后转换成opencv格式保存保存内存数据为bmp图片:24位3通道原创 2020-05-21 14:50:29 · 551 阅读 · 0 评论 -
保存内存数据为jpg图片:先将数据加上bmp头,然后转换为opencv格式并保存1
此处图片大小为:width*height1.将图像数据加上bmp头unsigned char* ProcessFile::GetBmp32(PBYTE pOCTData, int nColorBits, int iWidth, int iHeight){ unsigned char* pszBmp32 = NULL; BITMAPFILEHEADER fileHeader; fileHeader.bfType = 'MB'; fileHeader.bfReserved1 = 0;.原创 2020-05-20 18:12:35 · 455 阅读 · 0 评论 -
保存内存数据为bmp图片:24位3通道
保存内存数据为bmp图片BOOL ProcessFile::SaveBitmapToFile(BYTE *pBuffer, int nColorBits,CString m_szFileName, int nWidth, int nHeight){ HANDLE hf = CreateFile( m_szFileName, GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_ALWAYS, NULL, NULL); if (hf == INVALI原创 2020-05-20 17:52:09 · 1220 阅读 · 0 评论 -
保存内存数据为jpg图片:加上bmp头然后转换成opencv格式保存
保存位图数据为jpg咱们的数据是没有bmp头和调色板数据的位图数据CCameraShow* m_pShowCamera;CStatic m_cameraShow1;m_pShowCamera = new CCameraShow(&m_cameraShow1);BYTE* m_pRGBCameraData = new BYTE[SIDE_CAMERA_IMG_WIDTH * SIDE_CAMERA_IMG_HEIGHT * 4];unsigned char* pBmp32;pBmp原创 2020-05-15 18:52:39 · 588 阅读 · 2 评论 -
解决Guidline muste specify type方案
常见CDialog时提示d:\rim2\rim2\src\other\MideFreqDF1\MidFreqDF.rcGuideline must specify type点击“OK”或者“Edit Code”时,提示:Error in default.htm PopulateUnusedDialogIDs():Cannot access resource informat原创 2016-06-02 20:29:05 · 1870 阅读 · 1 评论 -
VS2008常见问题解决方案
fatal error CVT1100>CVTRES : fatal error CVT1100: duplicateresource. type:DIALOG, name:510,language:0x0804这句话的意思是资源ID为510的DIALOG重复定义了,在resource.h中查找资源ID为510的资源标识IDD_AXESDLG,全工程搜索该资源标识IDD_AXESDL原创 2016-06-11 16:06:19 · 1250 阅读 · 0 评论 -
Visual C++调用WebService服务接口常见数据类型转换
本文总结了C++调用webservice接口并向其插入时间类型、时间差、二进制流、浮点类型、_int64类型、std::string类型时,数据获取方式以及插入过程中需要进行的数据处理,如ASCIIz转换为UTF-8,系统时间增加8小时等,最终进行数据类型转换并保存。原创 2016-06-17 17:39:38 · 2245 阅读 · 0 评论 -
学习中遇到的难题
1.#include #includeusing namespace std;class Student{public : Student(int n,string nam){ num=n; name=name; } Student(){} void display() { cout原创 2014-10-08 11:31:22 · 648 阅读 · 0 评论 -
XML封装与解析
1.XML封装封装XML格式文件与封装字符串原理差不多,所以封装方法也是大同小异,需要注意的地方就是:1.XML文件中的引号要保留,封装时需要在引号前间反斜杠“\”;2.封装XML文件时,需要将对象的值进行类型转换,即由其他类型转换为CString类型。下面举一个实例,讲解XML封装方法:首先是XML文件的格式如下: 封装如上格式XML文件的C++代码:CStrin原创 2016-08-18 17:41:54 · 2504 阅读 · 0 评论 -
error C2079: 'lstr' uses undefined class 'std::basic_stringstream<_Elem,_Traits,_Alloc>'
error C2079: 'lstr' uses undefined class 'std::basic_stringstream'1> with 1> [1> _Elem=char,1> _Traits=std::char_traits,1> _Alloc=std::allocat原创 2016-09-12 15:27:11 · 3132 阅读 · 0 评论 -
std::string类型与usigned long类型相互转换
std::string类型转换为usigned long,usigned long类型别名ULONGstd::string sStationID="123";ULONG nStationID = atol(sStationID.c_str());原创 2016-09-12 14:26:33 · 1754 阅读 · 0 评论 -
网页如何调用Visual C++函数
1.在VC++工程中创建继承CHtml类的CMapView类,该类用于实现网页与VC++代码交互接口。2.在CMapView类构造函数中添加:原创 2016-09-05 16:08:56 · 1834 阅读 · 0 评论 -
error C2065: 'IDD_MONDATAREPLYDLG' : undeclared identifier解决方法
每个资源都需要在resource.h中定义一个唯一的ID号,具体定义格式如下:#define IDD_MONDATAREPLYDLG 27104出现此错误(error C2065: 'IDD_MONDATAREPLYDLG' : undeclared identifier)会有两个原因:(1)ID号重复,即多个资源共用了一个ID号,解决方法就是修改ID值;(原创 2016-09-07 11:31:50 · 650 阅读 · 0 评论 -
error LNK2019: unresolved external symbol
error LNK2019: unresolved external symbo出现这个错误的原因在于,你所使用的方法、类或组件没有加入到工程,右键工程名,选择"添加(add)"---->”已经存在的项(existing item)“。原创 2016-09-12 10:52:27 · 1640 阅读 · 0 评论 -
GDI+环境初始化
第一步. 包含头文件我们需要首先将 gdi+ 的头文件包含到我们的工程中, 这里我们可以将 #include 语句放入 atdafx.h 头文件中, 打开 atdafx.h 文件, 加入如下语句 :#include gdiplus.h>using namespace Gdiplus;第二步. 为链接库输入库文件在 类视图 的 项目图标 上单击鼠标右键, 在弹出的原创 2016-11-03 20:15:32 · 395 阅读 · 0 评论 -
Visual C++解决error C2859问题
今天把原来写的max插件与新引擎整合下, MAXSDK又恶心了一次. 居然有core.lib这种第三方库导致与我的core.lib链接冲突, 真是霸道, 没办法, 只有我让步,我改名.之后,发现每次即便每次完整编译完成,开始调试时,所有工程都会重复编译一次,Clean后,再编译,报了 一个vc90.pdb有关的C2859错误.error C2859: x:\XXX\vc60.pdb转载 2017-02-17 09:54:15 · 1589 阅读 · 0 评论