- 博客(70)
- 资源 (32)
- 收藏
- 关注
原创 老版MFC工程迁移到VC2019编译EXE太大的问题
有个老版静态链接MFC库的MFC程序需要迁移到VC2019编译,直接用VC2019打开就会自动迁移过去,然后编译一下,生成的EXE大小将近3MB,老版的工程编译出来也就600多KB。好一顿研究之后发现原来默认会把MFC控件编译进去,然后EXE体积就会变得很大了,把MFC控件关掉就好了。在预编译头加上这句代码就好了,编译出来的大小瞬间变回几百KB。
2023-08-03 10:06:21
1355
原创 WIN10/WIN11打开文件夹卡住问题
网上找了很多优化攻略,按照步骤操作之后都没用,还是会卡。今天忽然灵机一动,发现卡住的都是EXE或者DLL比较多的文件夹,联想到可能是杀毒软件搞的鬼。经过测试,把卡住的文件夹添加到Windows安全中心的排除项里,再重启打开文件夹不卡了。Win10/Win11电脑经常遇到打开某个文件夹会显示“正在处理”,然后卡住好几秒钟的问题,被这个问题折腾的很难受。
2023-06-25 18:12:18
2207
原创 UsbTreeView中设备驱动信息获取方法
UsbTreeView是一个专门解析USB设备描述符的工具,可以显示USB设备的一系列属性值。其中包括驱动路径,和inf配置文件路径,查询了一下,没找到可以获取这些驱动信息的SetupApi。好奇这个软件是怎么实现的,于是对它调用的API抓了一下包,找到了它的实现方法。(1)驱动路径获取方法可见驱动路径是通过读取注册表HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\services\usbccgpHKEY_LOCAL_MACHINE\SYSTEM\C...
2021-10-11 18:55:14
1944
2
原创 Windows UVC DShow IMoniker对象获取位置等属性的方法
(1)获取设备路径通过IMoniker的BindToStorage(0, 0, IID_IPropertyBag, (void **)&pBag)方法可以获取IPropertyBag对象,然后通过IPropertyBag对象的Read(L"DevicePath", &varDevPath, NULL)方法获取设备路径。void GetMonikerDeviceInfo(IMoniker *pM){ HRESULT hr; IPropertyBag *pBag = 0; U
2021-10-11 18:31:32
642
原创 如何一劳永逸的修改MFC工程默认图标
MFC工程的默认图标如上图那样,一点也不好看,太挫了,经过研究发现替换掉这个默认图标的方法很简单:选好一个图标,替换 VS根目录\VC\VCWizards\AppWiz\MFC\Application\templates\2052\root.ico 图标就可以啦,以后每次新建工程的图标都改过来了,爽歪歪啊。...
2020-08-06 09:35:26
263
原创 一个坑爹的VS2005段优化问题
今天遇到一个坑爹的数据段优化问题,编译器是VS2005,问题是这样的:声明了一个HELLO段,并且把myData放到段里,然后编译,查看生成的map文件,死活木有HELLO段,以为是编译器优化问题,打开工程设置,把所有可能的优化设置项都关掉了,依然木有生成HELLO段。后来各种测试,搞半天才发现是const引起的问题,只要去掉const修饰,HELLO段就有了。不知道是啥原理, 坑爹啊,有时候问题就是这么莫名其妙,解决问题得靠猜,要善于猜测...
2020-07-07 16:57:05
125
原创 XShell CDC控制台无回显问题分析
最近RTT项目需要通过CDC(USB虚拟串口)控制台执行命令函数并显示结果。正常情况应该是这样的。finsh />ls()Directory /:0 <DIR> event ...
2020-03-13 15:45:43
1791
原创 Linux Shell打印文件大小
项目对编译好的文件大小有限制,为了方便,搞了个shell,每次编译完成自动输出文件大小。如下:printFileSize(){ for fname in "$@" do filesize=`ls -l $fname | awk '{ print $5 }'` kb=1024 awk 'BEGIN{printf "'$fname' size is %.2f ...
2020-01-17 09:22:16
878
转载 Git 之 恢复修改的文件
对于恢复修改的文件,就是将文件从仓库中拉到本地工作区,即 仓库区 ----> 暂存区 ----> 工作区。对于修改的文件有两种情况:只是修改了文件,没有任何 git 操作 修改了文件,并提交到暂存区(即编辑之后,gitadd但没有gitadd但没有git commit -m ....) 修改了文件,并提交到仓库区(即编辑之后,gitadd和gitadd和git comm...
2020-01-16 16:03:12
371
转载 虚拟机Ubuntu16.04无法进入图形界面 The system is running in low-graphics mode
安装的虚拟机Ubuntu16.04 64位本可以正常使用,在安装了许多软件包(caffe)后不知哪里配置出现问题,出现The system is running in low-graphics mode错误,尝试多种方法,以下方法适用:1.Ctrl+ALT+F1 进入控制台2.输入用户名和密码进入系统3.输入以下命令:cd/etc/X11 sudocpxorg...
2019-12-16 17:42:35
160
转载 Linux驱动相关
驱动参数 对于如何向模块传递参数,Linuxkernel提供了一个简单的框架。其允许驱动程序声明参数,并且用户在系统启动或模块装载时为参数指定相应值,在驱动程序里,参数的用法如同全局变量。通过宏module_param()定义一个模块参数:module_param(name,type,perm);name既是用户看到的参数名,又是模块内接受参数的变量。type表示参数的数据类...
2019-12-09 19:09:34
113
原创 vc的container_of宏
linux内核中有个宏container_of,可以由struct的某个成员地址获取struct的起始地址,该宏移到vc下之后编译出错。原来gcc支持typeof关键字,msvc不支持。参考网友代码,修改如下:#define container_of(ptr, type, member) ((type *)(((char *)ptr) - (int)(&(((type*)0)->...
2019-08-07 17:28:25
377
原创 wireshark USB抓包过滤
wireshark是Linux下的USB抓包利器,启动抓包之后,会把同一总线的所有USB包抓下来。如果想只看特定的设备的话就需要对数据包进行过滤。如在上面的过滤栏中输入:usb.device_address == 12这样下面显示的就全是设备地址为12的数据了。怎么知道要抓包的USB设备的地址呢?可以用lsusb命令...
2019-08-07 16:29:06
5461
原创 Ubuntu启动器几种用法
1、双击启动终端,并且定位到特定目录[Desktop Entry]Name=cdRootDirComment=cd root dirExec=gnome-terminal --working-directory=/Type=Application保存为cdRootDir.desktop,加上可执行权限,双击即可启动终端,并且进入根目录。2、双击启动终端,运行指定的终端命令...
2019-07-12 17:14:13
1228
转载 Ubuntu 设置程序双击启动
1 添加一个Terminal到桌面Terminal在home中搜索Terminal,找到后拖到桌面上。2 设置Terminal启动命令在Terminal图标上邮件——Properties,然后在Command那一栏中填入以下指令:gnome-terminal -x <脚本绝对路径/脚本.sh>例如: /home/qking/Document...
2019-07-12 14:31:56
2272
原创 多行文本框滚动到特定字符串所在的行
UpdateData(TRUE); CStringArray sa; GetDlgItem(IDC_EDIT_STRDATA)->GetWindowText(m_strDataText); SplitString(m_strDataText, TEXT("\r\n"), sa); int RxLine = 0; int n; for...
2019-06-12 15:06:53
174
转载 VC字符串分割
int SplitString(const CString str, TCHAR *split, CStringArray &strArray){ strArray.RemoveAll(); CString strTemp = str; int iIndex = 0; while (1) { iIndex = strTemp.Fi...
2019-06-12 15:00:24
818
转载 仿system函数,运行不弹出命令提示符窗口
int nb_system(const char *cmd){ STARTUPINFOA si; ZeroMemory(&si, sizeof(si)); si.cb = sizeof STARTUPINFO; PROCESS_INFORMATION pi={0}; if(CreateProcessA(NULL,(LPSTR)cmd,NULL,...
2019-06-12 14:59:19
1148
原创 VC获取exe所在目录
CString GetExePath(void) { CString strExePath; GetModuleFileName(NULL, strExePath.GetBuffer(MAX_PATH), MAX_PATH); strExePath.ReleaseBuffer(); strExePath = strExePath.Left(st...
2019-06-12 14:55:10
655
原创 MFC RichEdit使用方法
1、首先新建一个对话框MFC工程,把RichEdit空间拖拽到对话框上。空间绑定变量m_EditData。2、BOOL CXXXApp::InitInstance()函数里增加控件初始化函数:AfxInitRichEdit2();3、对话框OnInitDialog()函数里增加如下测试代码: m_EditData.SetWindowText(TEXT("这是一个富文本编辑...
2019-06-11 11:09:32
8477
转载 -/bin/sh: ./XX.sh: not found 嵌入式LINUX系统执行sh脚本错误问题处理
命令./test2.sh错误返回-/bin/sh: ./test2.sh: not found原因是.sh脚本在windows系统下用记事本文件编写的。不同系统的编码格式引起的。转行文件的编码格式:1、确保用户对文件有读写及执行权限oracle@linux-106:~/RMAN/bin> chmod a+x test.sh2、然后修改文件格式(1)使用...
2019-04-11 10:54:15
2076
转载 【转】解决virtualbox共享文件夹没有访问权限的问题
原文链接https://www.cnblogs.com/xia-weiwen/p/8215350.htmlVirtualbox是一款免费试用的虚拟机软件。基本功能完全可替代需要购买或crack的VMware。在Windows主机上用Virtualbox搭建Linux虚拟机,虚拟机和主机之间传递文件最方便的方法就是共享文件夹。假设将Windows下的share文件夹作为共享文件夹。设置...
2019-04-04 08:27:59
1353
转载 [转]git常用命令
文章来源:https://github.com/yanqiangsjz/git-study/blob/master/git.md1、 git(在git bash中操作) 明确一些git中的概念 -) git版本管理工具中四个区域概念: (1)Workspace:工作区 (2)Stage:暂存区 (3)Repository:仓库区(或本地仓库) ...
2019-03-26 08:43:20
152
原创 Windows 下scons执行编译错误 'cl' 不是内部或外部命令,也不是可运行的程序 解决方法
系统是Win10,最近研究scons编译脚本,pip下载了scons。然后写了一个简单的c文件/* file: hello.c */#include <stdio.h>int main(int argc, char** argv){ printf("Hello, world!\n"); return 0;}创建SConstruct文件Program('pro...
2019-03-13 15:57:48
5954
1
原创 python生成数据全排列算法
Life is short,use python!1、自己写算法实现#coding=utf-8def genPermutation(n): listResult = [[1]] for curIdx in range(2, n+1): listTemp = [] for listData in listResult: ...
2019-01-30 09:30:42
2640
原创 python最小解释器制作
平时经常用用到python脚本来实现一些小功能,可以通过pyinstaller之类的工具把py文件编译成exe程序,可是编译出来的程序动辄3mb以上,太大了很不爽。、、我就想能不能把py编译成更小一点的exe。首先想到的是把py代码转换为c++代码,网上搜了很久也木有这样的工具。又一想,有没有python精简版之类的python库,又搜索很久没找到。后来想到,自己编译python核心库,通...
2019-01-23 19:24:36
1590
原创 python碎片整理
1、获取文件长度,有两种方法。a、打开文件,seek到文件末尾,通过tell方法返回当前位置即文件长度.binFile = open('test', 'rb')binFile.seek(0,os.SEEK_END)size = binFile.tell()binFile.seek(0,os.SEEK_SET)b、通过os.path.getsize获取size2 = os.pa
2017-04-09 22:07:07
532
转载 Android连接MySQL方法,测试成功
使用jdbc,代码如下:package com.example.mysql;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public c
2017-03-15 18:04:31
4193
转载 mysql 10038错误解决方案
百度师傅高质屏和好师傅,解救你的碎屏机连接mysql数据库时遇到“2003-Can’t connect to mysql server on ‘localhost‘(10038)”这个远程连接错误应该怎么解决,下面以图文的形式带大家一步步解决这个问题。希望能够帮助到有需要的朋友。有两种方案。新建一个规则
2017-03-15 17:18:30
1123
转载 [转]完整的VC下SQLite的使用
SQLite在VC下的使用(转)http://www.sqlite.com.cn/MySqlite/4/523.Html一、SQLite简介 SQLite 是用C语言编写的开源数据库,主要用于嵌入式,你也可以把它集成在自己的桌面程序中,也有人将其替代Access,用作后台数据库。SQLite 支持多数SQL92标准,例如:索引、限制、触发和查看支持。支持 NULL、INTEGE
2017-03-09 11:21:26
372
原创 获取程序编译时间, 用于自动生成版本号
我们写软件的,总希望程序有变动时可以自动生成版本号,不用手动去改,这样多方便啊。VS编译器就可实现这个功能。如下所示:/*获取程序编译时间, 用于自动生成版本号很好 __DATE__ "Mar 25 2013" "Mar 1 2013"__TIME__ "21:42:20"*/void GetProgramCompileTime(SYS
2016-06-14 10:21:28
8625
2
原创 Python与C++交互
1、C调用python,并且获取返回值#include "stdafx.h"#include #include void test(){ PyRun_SimpleString("x = 10" ); PyRun_SimpleString("y = 20" ); PyObject* mainModule = PyImport_ImportModule("
2016-06-02 15:44:41
660
原创 好用的工具合集
快速打开命令提示符 CmdOpenInstall-2.1.0,该软件安装之后可以在任意一个文件夹右键弹出菜单多出一个打开命令提示符的选项,秒进命令提示符,非常方便
2016-06-02 09:21:29
322
原创 超简单的python生成二维码图片
先安装qrcode模块,然后代码如下就欧了,简单又粗暴哇。# -*- coding: utf-8-*-import qrcodechar = raw_input('please input string: ').decode('gbk')img = qrcode.make(char)img.save('test.png')img.show()
2016-06-01 17:14:53
3278
原创 python模块整理
数字处理 numpy图像处理 pillow opencv界面UI pyQt Tk种子 libtorrent相关库支持 VCForPython27
2016-06-01 16:51:36
307
转载 【转】VS 2005中实现对Python 2.5.2的模块扩展实验
以下为实验步骤:一、VS 2005:1. 新建Win32 Application, Application type: DLL, Additional options: Empty project.2. 在工程属性页 C/C++/附加包含目新增\include目录, 链接器/附加库目录添加\libs目录3. 新增Source Files:hello.c:#include
2016-03-01 11:43:00
438
转载 【转】Android sdk content loader 0%的解决方案
Eclipse在启动时,经常会碰到半天启动不起来的情况,罪魁祸首就是“Android sdk content loader 0%”,题主经常是受这玩意的百般折磨,大早上一来就被这扫了工作的激情,浪费了大把时间。Eclipse初始化不成功就干不了活,所以这事必须得解决。经过自己多次亲身测试,发现没有一种办法的百试百灵的,只有通过以下几种方案来一步一步地解决。方法一(关闭后重启):
2015-11-07 09:56:53
320
BusHound+v6.0.1.zip
2019-11-26
zipunzip.zip
2019-06-12
python最小解释器
2019-01-23
org.eclipse.jface.text_3.8.2.v20121126-164145.jar
2014-10-11
WINCE程序IAT函数查看源码
2011-07-02
Windows 网络编程 Network Programming for Microsoft Windows
2010-06-01
微型操作系统 KolibriOS_0.7.7.0 源代码
2010-05-29
Base64转Hex算法程序
2008-08-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人