
c++笔记
执笔乄画浮生
码农进阶之路
展开
-
c# 接收c++动态库返回的字符串
c++ 的动态库在很多地方被调用,比如我们想在动态库里面返回一个字符串该怎么做呢?在这里我以自己做过的一个项目为例:PCSC读写器Reset复位拿到ATR返回给c#上层。/*---------------------------------------------------------函数说明 : 卡片复位(查询获取ATR值)输入参数 : CString strName输出参数 :...原创 2019-12-12 20:32:51 · 1243 阅读 · 0 评论 -
串口通讯原理以及读写器操作详解
http://wangbaiyuan.cn/c-serial-communication-write-reading.html[展开]文章目录在工业控制中,工控机(一般都基于Windows平台)经常需要与智能仪表通过串口进行通信。串口通信方便易行,应用广泛。一般情况下,工控机和各智能仪表通过RS485总线进行通信。RS485的通信方式是半双工的,只能由作为主节点的工控PC机依次轮询网络上的各...转载 2019-11-19 14:48:16 · 1996 阅读 · 0 评论 -
关于 MFC 错误 1 error C2039: “GetCheck”: 不是“CWnd”的成员 解决方法
加个强转即可:if(((CButton*)(GetDlgItem(IDC_RADIO_NO)))->GetCheck()){ ...}原创 2019-07-29 10:48:14 · 1739 阅读 · 0 评论 -
c/c++ 遇到的坑
如果C语言是0,那么C++是多少?先来点个题,与本文其他内容无关。这可能是宇宙中最难以回答的问题了,它似乎牵扯到了哲学和伦理。不管怎样,C++起初都被认为是带类的C(C with classes),那他起码也得比C语言更厉害一点,那似乎应该是1。真的是这样吗?回到代码本身:int c = 0;printf("%d", c++);这个……好像还是0!函数声明被误以为创建对象假设Foo是一...转载 2019-07-29 13:25:50 · 288 阅读 · 0 评论 -
在子窗口初始化某一个radio button的默认勾选状态
所选工具:vs2010以我的项目为例:我想在点击“WriteData”这个按钮的时候弹出一个框,而且这个框上面要默认选上其中一个radio button(NO),我的OK按钮下的相应函数直接return OnOK();void CWriteDataDialog::OnBnClickedBtnWriteOk(){ // TODO: 在此添加控件通知处理程序代码 bWriteProtec...原创 2019-07-29 17:26:33 · 1402 阅读 · 0 评论 -
DLL中导出函数的两种方式(dllexport与.def文件)
DLL中导出函数的声明有两种方式:一种方式是:在函数声明中加上__declspec(dllexport);另外一种方式是:采用模块定义(.def)文件声明,(.def)文件为链接器提供了有关被链接程序的导出、属性及其他方面的信息。方式一:在函数声明中加上__declspec(dllexport)/// 在动态链接库程序中/// 声明动态链接库(**.dll)的对外接口函数TestFuct...转载 2019-08-03 16:25:27 · 2605 阅读 · 0 评论 -
MFC实现智能水平滚动条,重写滚动条方法
第一步、首先创建添加一个新类这里以我的项目为例:右键点击=》类向导添加一个新类:CDJListBox,基类为:CListBox接下来VS就会自动帮你生成2个文件:DJListBox.h 和 DJListBox.cpp我们在DJListBox.h头文件里面添加:注意看图添加位置int AddString( LPCTSTR lpszItem );int m_nMaxWidth;...原创 2019-07-26 16:33:11 · 730 阅读 · 1 评论 -
函数指针2种基础用法实例以及介绍
函数指针的三种形式:1、函数格式:(返回值类型)(*函数名)(参数列表)例:#include "stdafx.h"#include<stdlib.h>//定义一个指针变量function,它指向一个参数是2个int类型,返回值是int的函数,要赋值才能使用int (* function)(int,int);//定义一个函数,函数名就是这个函数的地址,也就是指针int a...原创 2019-08-19 13:13:09 · 524 阅读 · 0 评论 -
C+++结束异常的函数terminate
C++中处理异常的过程是这样的:在执行程序发生异常,可以不在本函数中处理,而是抛出一个错误信息,把它传递给上一级的函数来解决,上一级解决不了,再传给其上一级,由其上一级处理。如此逐级上传,直到最高一级还无法处理的话,运行系统会自动调用系统函数terminate,学会使用terminate函数有助于异常处理一 当一个异常产生的时候调用terminate函数,代码:[cpp] view plai...转载 2019-08-21 16:16:24 · 1849 阅读 · 0 评论 -
MFC RadioButton分组用法详解
环境:VS2010分组将radio1、radio2、radio3分为1组,radio4、radio5分为另一组;方法:设置 radio1 的 属性: group、tabstop、auto均为true设置 radio2 的 属性: group设为false, tabstop、auto均为true设置 radio3 的 属性:group设为false, tabsto...转载 2019-07-29 10:25:48 · 1837 阅读 · 0 评论 -
CSting 转char*的四种方法
CString strSource;//宣告CStringchar* charSource; //宣告char*法1:charSource = (char*)strSource.GetBuffer(0);法2:charSource = (char*)strSource.GetBuffer(strSource.GetLength());法3:charSource = (char*...转载 2019-07-23 16:50:49 · 515 阅读 · 0 评论 -
cximage配置环境与实例
我在这里测试所用的是VS2010新建的一个MFC的程序,通过点击按钮来做图片的相关处理。对于像cximage这样的第三方库,我们一般都会包含头文件(*.h),静态库文件(*.lib)和动态库文件(*.dll)。1. 文件位置:为了提高程序的可移植性,将第三库放在解决方案(*.sln)或者工程(*.vcxproj)文件所在的文件夹下。而不要放在其他地方,比如放在D:\某个位置,这样的话,程序在...原创 2019-06-28 16:56:02 · 1452 阅读 · 0 评论 -
关于静态链接库与动态链接库的区别和实例
所谓静态链接库(Static Link Library),是在编译的链接阶段将库函数嵌入到应用程序的内部。但是如果多次调用,则该库函数会被调用多次,会极大的造成空间浪费以及链接器的负担(缺点)。它的优势在于,应用程序可以独立运行,因为在静态链接的时候已经将所需的组件都已经加载到了该应用程序中,不需要对应的DLL,但是应用程序比较大。所谓动态链接库(Dynamic link library),与静...原创 2019-06-21 11:40:31 · 3369 阅读 · 0 评论 -
c++ MFC弹窗以及保存文件窗口
弹窗:比如我们要弹出这个窗口:我们要做的是,在MFC中新建该窗口,并且添加一个窗口类CSavepictureDlg。比如我们设置点击某个按钮弹出该框,那我们就再该按钮的消息响应函数里面写上两句就够了:CSavepictureDlg dlg; //为该窗口类实例化一个窗口对象dlg.DoModal(); //然后调用该对象调用该类的方法即可。接下来点击上图上的select按钮,...原创 2019-06-21 13:28:57 · 2583 阅读 · 0 评论 -
cximage合并4张图片
需要注意的是:建议用24位彩图合并,不然会出现保存的图片0字节的错误直接上代码:void CMergePicturesDemoDlg::OnBnClickedBtnMergepic(){ // TODO: 在此添加控件通知处理程序代码 CxImage img1,img2; int img1_wide,img1_height,img2_wide,img2_height; int bpp...原创 2019-07-01 16:07:13 · 853 阅读 · 0 评论 -
关于MFC界面list控件文件头乱码问题解决
将代码里面创建字体部分屏蔽掉就OK了接着调试就出现:这是正常的,达到了我想要的效果。原创 2019-06-26 14:02:29 · 678 阅读 · 0 评论 -
cximage函数总结
1、加载图片Load():bool Load(const TCHAR* filename, uint32_t imagetype=0);参数1:图片名字参数2:图片格式(下面列举)以下是所有类型枚举:----------------------------------------------------------------------------------enum ENUM_CX...原创 2019-06-28 16:24:29 · 6785 阅读 · 0 评论 -
vs2010使用GDI+配置以及手动添加ExitInstance()
要使用gdi+绘图,首先我们要将环境配好,具体步骤如下:1、首先在stdafx.h或者其他头文件里面加上以下代码,以包含GDI+的头文件和lib文件:#include <gdiplus.h>using namespace Gdiplus;#pragma comment(lib, "gdiplus.lib")2、然后在CWinApp继承下来的应用程序类里面声明两个变量:p...原创 2019-07-09 17:55:35 · 897 阅读 · 0 评论 -
c/c++预定义名字笔记
c/c++小笔记简单介绍一下这几个好用的预定义名字:FUNCTION,DATE,TIME,FILE,LINE话不多说上代码:输出结果:原创 2019-06-14 13:37:29 · 299 阅读 · 0 评论