拓展
Eosin_Sky
软件工程专业,现在开始把遇到的问题和总结的一些东西都写入博客!
展开
-
VisualAssistX 安装失败 安装异常解决
真的是无语,再安装,就提示已经安装好了,但是进vs啥都没有。这个时候,立即打开Eeverting,搜索*.vsix。转载 2023-05-09 15:45:33 · 1069 阅读 · 3 评论 -
Win32程序获取屏幕的HDPI放大倍数
目前高分辨率的显示器越来越高,我们不得不让程序适配系统的HDPI,其中需要知道系统当前的缩放倍率。可以使用一下函数获取:double GetDeviceDpiFactor(){ double dDpi = 1; // Get desktop dc HDC desktopDc = ::GetDC(NULL); // Get native resolution float horizontalDPI = ::GetDeviceCaps(desktopDc, LOG原创 2021-10-26 17:53:46 · 1045 阅读 · 0 评论 -
处理(定制)CHtmlView的弹出页面
在使用CHtmlView的时候会遇到这样的问题,点击某些页面的弹出链接之后CHtmlView会使用默认的浏览器来弹出该链接的页面。如果想改成用我们自己设计的浏览器或者是窗口来弹出该怎么做呢?已下是解决方案,class CDIYAD: public CHtmlView{private: virtual void OnNewWindow2( LPDISPATCH* ppDisp, BOOL* Cancel); //重载OnNewWindow2来自定义弹窗消息。};void C原创 2021-10-26 17:45:40 · 218 阅读 · 0 评论 -
WIN32解决CHtmlView在程序退出的时候崩溃的问题
最近在WIN32平台下于CDialog上使用了CHtmlView这个控件,但是随后而来的就是程序在退出或者是在该CHtmlView窗口释放之后莫名其妙的崩溃。我的类:class CDIYAD: public CHtmlView{}对基本类CHtmlView一点都没改动。出现这样的情况大概率是使用不正确导致的释放问题,经过查证在释放该窗口之前应做这样的操作来避免释放不完全导致的崩溃:字段:CDIYADm_wndMessageAds;在OnDestroy中(或要释放时):.原创 2021-10-14 09:44:33 · 223 阅读 · 0 评论 -
Chromium Embedded Framework 编译
Chromium Embedded Framework 编译需要安装svn、git、python环境。确保编译时调用的python是python2。编译时会通过多种方式访问网络,需要多种方式设置代理。 1.IE全局代理2.环境变量:HTTP_PROXY=http://127.0.0.1:1081NO_AUTH_BOTO_CONFIG=C:\code\depot_tools\boto.cfg3.命令netsh winhttp set proxy http://127.0.0.1:..转载 2021-07-05 14:12:02 · 548 阅读 · 0 评论 -
CEF3使用Visual Studio 2010编译libcef_dll_wrapper.lib
Visual Studio 10 编译libcef_dll_wrapper.lib步骤如下:一、给libcef_dll_wrapper生成VS工程要在Windows下使用CEF开发,C++接口比较方便(libcef.dll导出的是c接口的api),对应的静态库文件是libcef_dll_wrapper.lib,但从cefbuilds.com下载的cef_binary中没有带这个库,需要自己手动编译。可惜cef_binary中也没有libcef_dll_wrapper.lib对应的VS工程。不过有原创 2021-07-05 14:06:56 · 776 阅读 · 0 评论 -
配置Win32程序在运行的时候不显示控制台黑框
我们时常会运行一些后台程序,但如果不把黑框去掉之后就会很low,比如:图1.显示出了console界面的后台程序该怎么关掉呢?在VS项目中这样设置:property->linker->system->SubSystem: Windows (/SUBSYSTEM:WINDOWS)图2.设置SubSystemproerty->linker->Advanced->Entery Point: mainCRTStartup图3.设...原创 2021-07-02 16:55:53 · 1692 阅读 · 0 评论 -
Win32下使用VC++创建桌面快捷方式
首先包含头文件:#include <Windows.h>#include <ShObjIdl.h>#include <ShlGuid.h>创建快捷方式的函数:CreateLinklpszPathObj为要创建快捷方式的exe路径lpszPathLink为快捷方式的路径lpszDesc为快捷方式的描述NULL为没有lpszArgs为启动方式的启动参数 NULL表示没有启动参数lpszIcon为使用的图标 NULL 则使用exe的图标.原创 2021-03-24 16:48:32 · 1227 阅读 · 3 评论 -
VC在Windows下让指定程序兼容高分屏(HDPI)模式
有这样的可能:某用户的显示器是4K显示器而我们开发的APP的尺寸最大也就1080,那么这时候用户打开这应用就会很小。这种情况下用户一般是会开启系统的高清分屏的:一般都会选择缩放125%以上:这时候我们的程序如果不默认支持高清分屏那么就还是以前(未缩放)之后的大小。本例就是提供一个操作让指定的exe支持高清分屏模式。指定某exe支持或停止支持高清分屏://* absAppPath : exe的绝对路径//* enabled : 是否支持//* return .原创 2021-01-08 16:23:38 · 851 阅读 · 1 评论 -
Windows下的字符集转换(ASCII、UICODE、UTF8、GB2312和BIG5互转)
我们在使用字符串的时候会遇到各种各样的编码问题不胜其烦。本例例举了一些windows下常用的字符集转换函数。方便使用Unicode和Ascii的互转//unicode转为asciistd::string UnicodeToAscii( const std::wstring& in_str ){ int nNeedChars = WideCharToMultiByte( CP_ACP, 0, in_str.c_str(), -1, 0, 0, 0, 0 ); if (nNeedC原创 2021-01-05 11:33:04 · 1620 阅读 · 0 评论 -
C++对数据进行16进制编码&解码(hex encode)
本例演示使用16进制对数据进行编码先定义几个工具函数用于将数字转为16进制表示或者将16进制表示转换为数字://* 将数字转为16进制(大写)inline char ToHexUpper(unsigned int value) { return "0123456789ABCDEF"[value & 0xF];}//* 将数字转为16进制(小写)inline char ToHexLower(unsigned int value) { return "0123456789a原创 2020-12-21 15:50:51 · 7337 阅读 · 1 评论 -
Windows下C++解析程序的启动参数
为了方便控制程序的各种功能的开关和特性我们往往会在程序启动的时候加入各种参数来控制程序的某些特性,或是传入一些数据。本例提供了比较方便的代码段来供处理这些事宜。代码段是[CmdlineParser]类的具体实现CmdlineParser.hpp#pragma once#include <string>//#include <tchar.h>#include <stdint.h>#include <map>#include &l原创 2020-11-24 10:57:21 · 1032 阅读 · 0 评论 -
从零开始使用InnoSteup进行程序打打包以及调用dll中的函数
本示例涉及:程序的打包和数字签名InnoSetup的快数上手以及一个产品从编译到安装的过程演示首先,我提供一份InnoSteup的脚本文件,小伙伴们可直接使用这个脚本进行打包(不过得修改一下相关的变量为你自己电脑上需要打包的内容); 脚本由 Inno Setup 脚本向导 生成!; 有关创建 Inno Setup 脚本文件的详细资料请查阅帮助文档!//创建一些在打包过程中可能会自定义变动的变量#define MyAppName "安装包制作示范程序"#define My.原创 2020-11-17 14:54:57 · 2541 阅读 · 0 评论 -
手把手教如何制作数字证书并进行程序的数字签名
在网上申请证书:https://myssl.com/create_test_cert.html然后会得到若干文件:图1,网络上生成的测试证书相关文件接下来我们需要用到OpenSLL来通过cret.pem和full_chain.pem来生成自带密码的认证证书xxx.pfx打开OpenSSL:输入:OpenSSL> pkcs12 -export -out eosin_sky.pfx -inkey private.key -in cert.pem会两次提示输..原创 2020-11-17 14:43:45 · 4388 阅读 · 0 评论 -
WIN32删除注册表项及其子项
也许有时会需要删除注册表的某一项(比如在卸载程序的时候)因为要删除一项注册表项需要这一项的子项都被删除才能删除成功,所以在实际操作中需要递归遍历要删除的这项注册表是否有子项我这里就从MFC中提取了相关的处理。以下是代码://*************************************************************//// RegDelnodeRecurse()//// Purpose: Deletes a registry key ..翻译 2020-11-16 16:13:55 · 629 阅读 · 0 评论 -
使用bat脚本读取ini配置文件
脚本ReadConfig.bat@echo off@rem 传入本bat文件的第一个参数即为配置文件名set CONFIG_FILE_PARAM=%1echo config:%CONFIG_FILE_PARAM%for /f "usebackq skip=1 tokens=1,2 delims==" %%a in (%CONFIG_FILE_PARAM%) do ( @rem if %2==%%a set %3=%%b& @echo ReadConfig: %%a=%%b if原创 2020-06-08 20:25:27 · 5721 阅读 · 0 评论 -
使用VS2010将VC、MFC工程转为Qt-Addin工程
如果你有需求是这样的:目前在做的项目时纯VC项目或MFC项目,但是现在想在项目中使用Qt。那么本例可能帮到你。尽管我们可以自己将Qt的库和头文件包含进项目以便使用Qt相关的东西但是在涉及到生成moc文件或ui_xxx.h文件和其他qt相关的资源处理时就会很复杂(也可以通过手动去完成比如customer-build-tools等,但是效率实在是太慢了还容易出错)。因为不是Qt-addin的话我们的插件是不起作用的,就像这样:那么为什么不考虑吧VC项目或者是MFC直接转成Qt-a..原创 2020-05-21 14:48:56 · 3222 阅读 · 0 评论 -
C++/MFC简单实现HTTP通信(基于CHttpFile)
本例介绍一下用MFC中的CHttpFile来简单的实现Http通信,简单有效。源码:HttpTools.h#pragma once#include <iostream>#include "afxinet.h"namespace HttpTools{ enum HttpResult { HTTP_SUCCESS = 0, //成功 HTTP_FAILURE = 1, //失败 HTTP_OUTTIME = 2, //超时 }; enum Http.原创 2020-05-12 14:18:09 · 3114 阅读 · 2 评论 -
C++实现解zip解压缩功能:将一个目录内的内容打包到zip文件以及将zip文件解压到某个目录(windows平台)
本例用来简单实现windows平台下如何将一个目录下的文件压缩到指定的zip文件中,亦或是将一个zip文件的内容解压缩到某个目录。以下是源码,代码中的注释解释了相关操作,一看就懂。注:本例将这两个功能封装在了一个叫ZipPack的命名空间中。代码中使用到的zip.h zip.cpp unzip.h unzip.cpp可以从www.info-zip.org下载。同时我也提供了具...原创 2020-05-08 11:44:58 · 4913 阅读 · 0 评论 -
【C、C++、Windows API、 boost】多种方式判断文件、目录是否存在
转载本文是为了实际之需要,方便查阅。一、判断文件是否存在#ifdef WIN32#include <io.h> //C (Windows) access#else#include <unistd.h> //C (Linux) access #endif ...转载 2020-05-07 16:58:32 · 1388 阅读 · 0 评论 -
WIN32下C++如何简单方便的使用zip解压缩《Zip Utils - clean, elegant, simple, C++/win32》
Zip Utils - clean, elegant, simple, C++/win32Adding zip/unzip easily, no LIBS or DLLs, with an elegant and simple API.This article can be found on CodeProject at www.codeproject.com/useritems/zip_u...翻译 2020-05-07 16:31:47 · 2175 阅读 · 0 评论 -
使用GPU硬件加速FFmpeg视频转码
最近看了些视频处理相关的文章,这里有一篇是讲如何使用Nvidia显卡为视频的编解码进行加速的,为了方便查阅就转载了:本文内容包括:在Linux环境下安装FFmpeg 通过命令行实现视频格式识别和转码 有Nvidia显卡的情况下,在Linux下使用GPU进行视频转码加速的方法FFmpeg编译安装在FFmpeg官网https://ffmpeg.org/download.ht...转载 2019-12-11 16:52:42 · 3054 阅读 · 0 评论 -
实现使用C++/WIN32进行DNS域名解析工具
本例主要提供使用WIN32 API实现的DNS域名解析的工具。直接上代码:.h#pragma once#include <vector>#include "Ws2tcpip.h"#include "Wspiapi.h"#include "mmsystem.h"#include <windows.h>class CDNS{public: ...原创 2019-10-24 10:34:29 · 1367 阅读 · 0 评论 -
使用js将utf16格式编码的数据和utf8格式的数据互转
function utf16to8(str) { var out, i, len, c; out = ""; len = str.length; for(i = 0; i < len; i++) { c = str.charCodeAt(i); if ((c >= 0x0001) && (c <= 0x007F)...原创 2018-10-10 10:54:31 · 1632 阅读 · 0 评论 -
使用JS进行字符串的base64加密解密
/* Copyright (C) 1999 Masanao Izumo <iz@onicos.co.jp>* Version: 1.0* LastModified: Dec 25 1999* This library is free. You can redistribute it and/or modify it.*//** Interfaces:* b64 =...翻译 2018-10-10 10:52:57 · 2829 阅读 · 1 评论 -
使用C语言实现字符串分割
之前分享了一篇使用C++(std::string 作为容器)进行字符串分割的博文:https://blog.csdn.net/r5014/article/details/82802664 现在又想用C语言做一个字符串分割的函数,大概功能是这样:需要分割的字符串“ this is a charactor raw. ” 使用 ' '分割分割之后会返回一个char** ...原创 2018-10-18 11:28:26 · 10790 阅读 · 1 评论 -
用c++实现分割字符串函数(分割std::string)
2018.09.21更新于文章尾部:第二个函数优化了处理时间,占用更少内存和时间--------------------------------------------因为之前被人问到这个问题,如果不使用别人已经做好的功能而自己写一个string分割函数该怎么做,于是我就做了一下,应该够用了。结构:需要被分割的字符串:std::string分割之后的结果:typedef ......原创 2018-09-21 16:12:09 · 32849 阅读 · 6 评论 -
一个DrectX程序的基本流程(DXD10以下)
本文章通过一个简单的示例来说明一下一个D3D程序的基本流程[注]:本程序使用DirectX 9.0实现并使用了Qt,参照的时候不要链接库链接错了哦.示例<使用D3D渲染一个jpg图像到窗口>步骤:1、创建一个Windows窗口程序2、初始化D3D3、渲染1、使用VS2010(或其他版本)创建一个标准的WIN32程序. (这个步骤不多做解释)2、以下步骤的操...原创 2018-09-18 10:58:48 · 684 阅读 · 0 评论 -
Winows下程序崩溃自动创建Dump文件以方便跟踪问题
需要头文件:#include <DbgHelp.h>和库DbgHelp.lib首先定义一个默认的异常处理回调函数:LONG CrashHandler(struct_EXCEPTION_POINTERS* pExceptionInfo){ std::string dumpFileName = "./CrashDump.dump"; HANDLE hDumpFil...原创 2018-09-17 11:18:48 · 493 阅读 · 0 评论 -
使用C++对数据进行Base64加密解密
<! 修复可能导致的加密解密后数据不一致的BUG , 2019年11月20日>定义加密选项enum Base64Option { Base64Encoding = 0, Base64UrlEncoding = 1, KeepTrailingEquals = 0, OmitTrailingEquals = 2};对数据的base64加密......原创 2018-10-24 16:19:47 · 11332 阅读 · 6 评论 -
一个简单C++躲避子弹游戏
Hello guys,This is very simple and one of my old projects I've created.It's probably the best one,as it really looks like a game,mind you the code is not very complicated.It has 11 levels you can try...翻译 2018-11-01 15:39:05 · 2200 阅读 · 3 评论 -
Windows下Socket编程TCP——应付大部分的Windows TPC编程场景。
首先是这些函数的定义:#define INTERNAL_LOG_ON 0#define INTERNAL_LOG_OFF 1#define INTERNAL_LOG_MODE INTERNAL_LOG_OFF //or INTERNAL_LOG_ON//#define INTERNAL_LOG_MODE INTERNAL_LOG_ON //or INTERNAL_LOG_OFF...原创 2018-12-17 10:39:36 · 271 阅读 · 0 评论 -
std::mutex和CRITICAL_SECTION性能比较
测试代码:#include "stdafx.h"#include <Windows.h>#include <mutex>#include <thread>#include <vector>#include <chrono>#include <iostream>const int tastCount =翻译 2018-12-18 11:52:55 · 1047 阅读 · 0 评论 -
CEF3 C++接口实现自定义浏览器[simple version]
目录目录... 1一、工具准备... 2二、编译C++接口... 2三、实现浏览器... 5浏览器定制... 5浏览器默认最大化,标题从配置文件读取... 5设置浏览器中文环境,开启npapi插件功能,并注册身份证阅读器插件(见第四节) 7文件下载... 8首先浏览器处理类要继承CefDownloadHandler 类... 8并提供回调接口(继承...原创 2019-04-29 16:32:55 · 7212 阅读 · 0 评论 -
WIN32下简单方便的日志输出工具类,支持多线程
本例展示一个WIN32下用来输出日志的小工具LogLite.因为比较简单,我们就直入主题吧.定义用于输出日志的类CWriteLogLib.h/////////////////////////////#ifndef __WRITELOG_H__#define __WRITELOG_H__#include <stdio.h>#include <time.h&g...原创 2019-06-18 14:48:00 · 622 阅读 · 1 评论 -
WIN32下实现输入法所需要的一些必要消息、函数和说明
IME消息 以下列出IME中用到的消息。WM_IME_CHAR(IME得到了转换结果中的一个字符)WM_IME_COMPOSITION(IME根据用户击键的情况更改了按键组合状态)WM_IME_COMPOSITIONFULL(IME检测到按键组合窗口的区域无法继续扩展)WM_IME_CONTROL(由应用程序直接向IME发出控制请求)WM_IME_ENDCOMPOSITION(IME...转载 2019-06-27 20:21:50 · 2559 阅读 · 0 评论 -
Chromium浏览器(CEF)的命令行列表说明
找到的Chromium浏览器的命令行说明列表,转放在这里以方便查看。List of Chromium Command Line SwitchesThere are lots of command lines which can be used with the Google Chrome browser. Some change behavior of features, ot...翻译 2019-06-27 20:31:09 · 9448 阅读 · 0 评论 -
SVG中的text文字高度ascent&baseline&descent(资料及测试)
SVG_text.文字高度ascent&baseline&descent(资料及测试)ZC:文字的 高度的测试在文章的后半部分1、html5 svg 第八章 文字text - 2030的专栏 - CSDN博客.html(https://blog.csdn.net/lcy132100/article/details/9722543) 2、baseline-...转载 2019-08-16 09:42:24 · 1939 阅读 · 0 评论 -
Window & Linux 进程间通信方式(IPC)
Windows平台下的IPC:http://blog.csdn.net/bjtbjt/article/details/7044266File Mapping(文件映射)Shared Memory(共享内存):实质上是文件映射的一种特殊情况Anonymous Pipe(匿名管道):在有亲缘关系的进程间进行通信Named Pipe(命名管道):可以在不相关进程之间和不同转载 2017-06-27 10:59:14 · 866 阅读 · 2 评论