
VisualC++
文章平均质量分 53
Car12
嵌入式开发,爱好者
展开
-
从ListControl控件导出数据到指定路径的的EXCE文档中
函数说明::AttachDispatch() 是操作EXCEL的函数,位于CRange类中,可以用来锁定和读取EXCEL中的对应单元格。CRange::void AttachDispatch(LPDISPATCH lpDispatch,BOOL bAutorelease =1)lpDispatch:锁定的目标指针。bAutorelease:是否自动释放。代码:原创 2016-01-15 13:56:09 · 652 阅读 · 0 评论 -
vs2015打开EXCEL文档范例及其注意事项!!!
基于MFC的Dialog创建一个工程;导入EXCEL相关类资源;注释 :://#import "C:\\Program Files (x86)\\Microsoft Office\\OFFICE12\\EXCEL.EXE" no_namespace注意:在导入的资源中把Get开头的函数换成了get_;把Set开头的函数换成了put_开头的函数; 下载地址 :http://do原创 2016-01-15 12:08:11 · 7117 阅读 · 2 评论 -
关于EXCEL相关类的一些函数解释
1,向Excel表格中写入数据时需要使用Range类的SetItem方法,该方法的语法如下: void SetItem(const VARIANT& RowIndex, const VARIANT& ColumnIndex, const VARIANT& newValue); 参数说明: RowIndex:要插入数据的单元格行索引。 ColumnI原创 2016-01-15 20:21:37 · 629 阅读 · 0 评论 -
IEEE 754 的标准对浮点数的处理
参考文章:https://blog.youkuaiyun.com/weixin_42066185/article/details/88559936作者在工作中现在就面临这个浮点数通过modbus协议向上位机传输的问题的存在,遇到的是,我们应该怎么样合适的处理这个float 4个bytes 的数据,下面总结一下 个人的调研的结果:通过网上的调研结果有下面的两种的解决的方案:方案一:通过将你所得到的带小数的放大一定的倍数,都变成整数进行处理,例如:3.24 --放大100 变成 324 ,然后...原创 2021-08-04 17:17:56 · 542 阅读 · 0 评论 -
MFC 获取其他窗口的Edit文本和单击Button
auto hmain = ::FindWindow(NULL, L"MFCApplication2"); if (hmain) { //获取窗口句柄 CRect rect; ::GetWindowRect(hmain, rect); CString str; CPoint user_pt; //将user_pt点定位到用户名框内 user_pt.x = rect.left + 109+10; user_pt.y = rect.top + 148+10.原创 2021-07-06 10:30:17 · 854 阅读 · 0 评论 -
TCP超时设置的客户端重发5次
代码bool AsioAsyncTcpClient::SendDataTcp(string msg){ bool re = false; int sendcnt = 5; int nNetTimeout=500;//ms uint8_t readbuf[1024]; SOCKADDR_IN addrSrv; addrSrv.sin_family = AF_INET; a...原创 2020-01-04 17:45:07 · 847 阅读 · 0 评论 -
win32 串口阻塞的方式发送接收数据
参考博文https://blog.youkuaiyun.com/liuzhuomju/article/details/7479507#pragma once#define RX_CHAR WM_USER+1class CMySerialPort{private: HANDLE m_hThread; bool m_IsOpen; public: OVERLAPPED m_tOv...原创 2019-11-08 09:48:15 · 1148 阅读 · 0 评论 -
WIN32 串口发送数据
本来开始使用boost::asio::serial的库发送数据,已发送到stm32单片机就跑飞了,最终还是选择了原生的Windows APIvoid WritSerialData(string data){ HANDLE hComm; CString com; CString filename; boost::asio::io_service service; m_ser...原创 2019-11-05 16:01:11 · 361 阅读 · 0 评论 -
完成端口的回射服务器,给别人的代码添加了补丁(竞争问题,发送数据)
cpp文件#include "StdAfx.h"#include "IOCPModel.h"#include "MainDlg.h"// 每一个处理器上产生多少个线程(为了最大限度的提升服务器性能,详见配套文档)#define WORKER_THREADS_PER_PROCESSOR 2// 同时投递的Accept请求的数量(这个要根据实际的情况灵活设置)#define MAX_转载 2016-11-05 15:54:46 · 974 阅读 · 0 评论 -
动态布局控件
核心思想:1,设置控件的起始位置和大小即可;2,起始坐标计算法法是:计算 x坐标相对于 父窗口宽度的位置的百分比,计算 y坐标相对于 父窗口高度的位置的百分比3,起始大小计算法法是:计算 长度 相对于 父窗口宽度的位置的百分比,计算 宽度相对于 父窗口高度的位置的百分比计算百分比函数void CMFCApplication2Dlg::addArray(CWnd *m_p原创 2016-12-03 20:56:34 · 310 阅读 · 0 评论 -
memset() 初始化类对象
今天看到迅雷2014校招一道笔试题如下:[cpp] view plain copy #include using namespace std; class parent { public: virtual void output(); }; void parent::output()原创 2017-04-11 17:25:42 · 2662 阅读 · 1 评论 -
关于静态成员变量的谈论
关于静态成员变量的谈论静态成员变量属于类,不属于任何一个对象,没有this指针静态成员变量使用前必须初始化,否则编译不过 初始化必须在程序文件 初始化不可以在头文件,防止多次初始化 初始化不可以在构造函数,防止多次初始化 #include "iostream" class A { public: static int cnt; int原创 2017-04-14 10:53:52 · 303 阅读 · 0 评论 -
WSAAsyncSelect() 非阻塞模式WinSock
测试资源地址所幸的是,WinSock同时提供了非阻塞模式,并提出了几种I/O模型。最常见的I/O模型有select模型、WSAAsyncSelect模型及WSAEventSelect模型,下面选择其中的WSAAsyncSelect模型进行介绍。使用WSAAsyncSelect模型将非阻塞模式引入到应用程序中的过程看起来很简单,事实上你只需要多添加一个函数就够了。int WSAAsy转载 2017-08-09 16:08:22 · 556 阅读 · 0 评论 -
MFC 设置应用程序开机启动并设置运行路径
//每次运行时设置运行路径void SetCurrentPath_MFC(){ TCHAR strExeFullDir[MAX_PATH]; GetModuleFileName(NULL, strExeFullDir, MAX_PATH); PathRemoveFileSpec(strExeFullDir); SetCurrentDirectory(strExeFullDir); /原创 2017-11-20 10:09:32 · 1057 阅读 · 0 评论 -
MFC 布尔控件
头文件#pragma once// CJBoolControlclass CJBoolControl : public CButton{ DECLARE_DYNAMIC(CJBoolControl)public: CJBoolControl(); virtual ~CJBoolControl(); void SetFasle(); void SetTrue(); boo...原创 2018-03-19 11:52:45 · 624 阅读 · 0 评论 -
查看系统进程、杀死一个进程、启动一个程序
#include <Windows.h>#include <iostream>#include"tlhelp32.h"int ProcessList(){ PROCESSENTRY32 pe32; pe32.dwSize=sizeof(pe32); int count=0; HANDLE hProcessSnap=::CreateToolhelp32Sna...原创 2018-03-27 14:01:33 · 548 阅读 · 0 评论 -
vs2010 导出创建dll 导入使用dll 导出有命名空间的类 函数 外部函数
2、#include "targetver.h"// dlltest.cpp : 定义 DLL 应用程序的导出函数。//#include "stdafx.h"#include "stdafx.h"#include "targetver.h"//#include <iostream>//using namespace std;int Add(int plus1, in...原创 2018-03-29 10:10:34 · 1521 阅读 · 0 评论 -
Windows核心编程条件变量
当想让写入者线程和都去这线程以独占的方式或共享的方式访问一个资源的时候,可以使用SRWLock。在这些情况下,如果都去这没有数据可以读取,那么它应该将锁释放并等待,直到写入者线程产生了新的数据为止。如果用来接收写入者线程的数据结构已满,那么写入者同样应该释放SRWLock并进入睡眠状态,直到读取这线程把数据结构清空为止。我们希望线程以原子的方式把锁释放并将自己阻塞,直到某一个条件成立为止。要实现...原创 2018-05-12 17:27:16 · 1339 阅读 · 0 评论 -
Windows核心编程之线程池在回调函数和定时调用(定时器)
#include"stdafx.h"#include<windows.h> #include<iostream>using namespace std;void CALLBACK Work(PTP_CALLBACK_INSTANCE instance,PVOID context,PTP_WORK work){ int *p=static_cast<int...原创 2018-05-14 21:46:27 · 554 阅读 · 0 评论 -
VS2013 生成sqlite3动态连接库
一,生成sqlite3动态连接库1,去sqlite官网上下载最近的sqlite源码包,解压后得到四个文件:shell.c,sqlite3.c,sqlite3.h,sqlite3ext.h此处还需要sqlite3.def文件,它在sqlite官方生成的dll包中,下载下来,解压即可。其中,shell.c文件是做来生成exe可执行文件用的。2,打开vs2008 新建sqlite3的非mfc的D...转载 2019-05-17 21:46:40 · 250 阅读 · 0 评论 -
动态链接库的问题解决
在目录下放置cvtres.exe文件,搜索计算机所有的cvtres.exe文件删除,除开目录下《C:\Program Files\Microsoft Visual Studio 10.0\VC\bin》原创 2016-01-09 18:30:26 · 566 阅读 · 0 评论 -
完成端口可用回射服务器
// IOCP.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include#include #pragma comment(lib, "ws2_32.lib") #define PORT 5150#define DATA_BUFSIZE 8192typedef struct{ OVERLAPPED Overla原创 2016-11-04 20:57:50 · 427 阅读 · 0 评论 -
事件选择WSAEventSelect
WSAEventSelect模型是类似于WSAAsyncSelect模型的另一个有用的异步I/O模型。它允许应用程序在一个或者多个套接字上接收以事件为基础的网络事件。 在这里,最主要的差别是在于网络事件会投递到一个事件对象句柄。并不是投递到一个窗口。我们使用事件模型前,我们的应用程序针对使用的每一个套接字首先要创建一个事件对象:[cpp] view plain转载 2016-04-23 10:56:53 · 616 阅读 · 0 评论 -
动态库加载的函数总结
1,HMODULE WINAPI LoadLibrary( _In_ LPCTSTR lpFileName);f返回值:HMODULE 实际就是 void * 指针成功则返回库模块的句柄,零表示失败。参数 类型及说明lpLibFileName String,指定要载入的动态链接库的名称2, GetProcAddress函数检索指定的动态链接库(DL原创 2016-01-10 11:57:51 · 570 阅读 · 0 评论 -
静态加载库dll
1,将show.h ,show.dll,show.lib 3个文件放到编译环境2,包含头文件#include"show.h"#pragma comment (lib,"show.lib")3,直接向普通函数一样直接调用show('调用");原创 2016-01-09 20:56:09 · 424 阅读 · 0 评论 -
动态库调用库
1,将show.dll文件加入编译环境2,加入函数指针 typedef void (__stdcall * funShowInfo)(char* pchData); //动态3,调用 { HMODULE hMod = LoadLibrary("show.dll"); if (hMod != NULL) { funShowInfo ShowInfo; S原创 2016-01-09 20:48:33 · 429 阅读 · 0 评论 -
动态链接库的创建
1,创建dll(show)工程;2,添加头show.h文件;3,添加导出函数关键字__declspec(dllexport) 4, 在showmain.cpp中添加函数的实现5,添加show.def文件6,LIBRARY show.dll EXPORTshow = show原创 2016-01-09 19:21:53 · 301 阅读 · 0 评论 -
MFC中Combo 下来菜单不能展开(只显示一点点)
解决办法:在选中该控件后,再点一下下拉三角,然后把下侧的调整框往下拉,就可以了.如下图,调整之后,编译就可以显示下拉框里的内容了。原创 2015-10-24 10:42:53 · 2796 阅读 · 0 评论 -
动态创建视图窗口
总结了几个步骤,只要根据这几个步骤来创建就会很简单。具体步骤如下:(1)定义一个视图窗口对象,调用Create方法创建视图窗口。(2)调用视图窗口的OnInitialUpdate方法初始化更新视图。(3)调用视图窗口的SetDlgCtrlID方法设置视图窗口在框架中的ID。(4)调用框架类的GetActiveView方法获取当前的视图窗口,将其隐藏。(5)调用框架类的SetAc原创 2016-01-14 11:21:11 · 751 阅读 · 0 评论 -
MF图C中作流程
theApp(全局对象的产生)-->winMain--> AfxWinMain-->AfxWinInit(内部初始化) -->InitApplication(全局初始化)-->InitInstance(指定初始化)-->Run(消息循环)-->AfxWinrterm(终止应用注销环境) Run(){peekMessage(检查是否空闲)-->PumpMessage(取消息)-->原创 2016-04-30 10:22:07 · 295 阅读 · 0 评论 -
给窗口添加背景图的案例
HINSTANCE 介绍是“句柄型”介绍数据类型。相当于装入到了内存的资源的ID。HINSTANCE对应的资源是instance.句柄实际上是一个 无符号长整数AfxGetInstanceHandle()函数的介绍HINSTANCE AfxGetInstanceHandle( );返回值 :代表应用程序的当前实例的HINSTANCE值。如果是从与MFC的USRDLL版本原创 2016-04-30 09:13:39 · 1450 阅读 · 0 评论 -
关于CSplitterWnd类窗口静态分割总结
1,在MainFram中添加CSplitterWnd类的对象;2,重载MainFrame类的OnCreateClient()函数;3,使用CreateStatic()分割窗口;4,使用CreateView()创建视图;5,子窗口ID获取 :IdFromRowCol() :相关函数介绍:BOOL CreateStatic( CWnd* pParentWnd,i原创 2016-01-10 12:53:11 · 1017 阅读 · 1 评论 -
分割窗口
分割窗口概述 分割窗口,顾名思义,就是将一个窗口分割成多个窗格,在每个窗格中都包含有视图,或者是同一类型的视图,或者是不同类型的视图。 MFC分割窗口的方式有两种,动态分割和静态分割。 动态分割窗口通常用于创建同一个文档对应的多个视图,而且这些视图一般都是同一类型的视图,能够在用户编辑文档的不同部分时提供方便。 大家看下转载 2016-01-11 14:03:08 · 928 阅读 · 0 评论 -
VC:CString用法整理(转载)
1.CString::IsEmptyBOOL IsEmpty( ) const;返回值:如果CString 对象的长度为0,则返回非零值;否则返回0。说明:此成员函数用来测试一个CString 对象是否是空的。示例:下面的例子说明了如何使用CString::IsEmpty。// CString::IsEmpty 示例原创 2016-01-13 10:02:16 · 539 阅读 · 0 评论 -
异步模型
一:select模型二:WSAAsyncSelect模型三:WSAEventSelect模型四:Overlapped I/O 事件通知模型五:Overlapped I/O 完成例程模型六:IOCP模型老陈有一个在外地工作的女儿,不能经常回来,老陈和她通过信件联系。他们的信会被邮递员投递到他们的信箱里。这和Socket模型非常类似。下面我就以老陈接收信转载 2016-04-23 10:31:30 · 368 阅读 · 0 评论 -
异步选择WSAAsyncSelect
大家用这个模型,可以让应用程序在一个套接字上接收以windows消息为基础的网络事件通知。我们想要用这个操作,具体的做法就是我们建立一个套接字,然后调用WSAAsyncSelect函数, 也就是说,这个模型的核心就是我们的这个函数;来看一下函数原型:[cpp] view plain copyint WSAAsyncSelect(转载 2016-04-23 10:28:09 · 364 阅读 · 0 评论 -
winsocket(1)
/************************************************************************* * * Copyright (c) 2002-2005 by Zhang Huiyong All Rights Reserved * * FILENAME: EchoSrv.c * * PURPOSE : ECHO 协议转载 2016-04-23 08:13:43 · 304 阅读 · 0 评论 -
给单文档框架添加背景图
在view中添加消息处理函数OnEraseBkgnd()BOOL CMy123View::OnEraseBkgnd(CDC* pDC){// TODO: 在此添加消息处理程序代码和/或调用默认值CBitmap bit; bit.LoadBitmap(IDB_BITMAP1); BITMAP bm; bit.GetBitmap(&bm); CD原创 2016-03-22 22:01:21 · 684 阅读 · 0 评论 -
关于new 和delete的灾祸
char *p = new char[5];memcpy(p,"12345",sizeof("12345");delete [] p;这是deleted会失败!原因是内存越界!原创 2016-02-23 16:10:24 · 384 阅读 · 0 评论 -
串口API(2)
一,异步非阻塞串口通讯的优点读写串行口时,既可以同步执行,也可以重叠(异步)执行。在同步执行时,函数直到操作完成后才返回。这意味着在同步执行时线程会被阻塞,从而导致效率下降。在重叠执行时,即使操作还未完成,调用的函数也会立即返回。费时的I/O操作在后台进行,这样线程就可以干别的事情。例如,线程可以在不同的句柄上同时执行I/O操作,甚至可以在同一句柄上同时进行读写操作。"重叠"一转载 2016-01-19 14:09:42 · 544 阅读 · 0 评论