自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(142)
  • 收藏
  • 关注

原创 VS命令参数 $(SolutionDir)\..\test中“..”含义

..是返回上一级目录,从你的这个来看应该是解决方案的目录的上一级目录一般来说一个“.”是当前目录,二个“..”就是上一级目录

2020-05-29 09:33:16 1066

转载 vs中能编译通过,但是会有红色下划线提示未定义标示符问题

原文声明:版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。项目能编译通过,但是代码中会有红色下划线提示未定义标示符。就连BOOL TRUE FALSE等都会有下划线。这通常是该代码文件包含在项目文件夹的子文件夹中。解决办法是配置包含项目目录即可:打开项目属性-》配置属性-》C/C++常规-》附加包含目录-》填入:$(Proje...

2019-10-23 16:42:00 1104

原创 正确调用DLL时,依然出现无法解析外部文件

C++开发时,正确调用外部DLL时,出现无法解析外部文件的错误,可能的原因:接口文件中存在以下代码#ifdef EXPORT_STDCALL#define CALL_STACK __stdcall#else#define CALL_STACK __cdecl#endif“属性” - “C/C++” - "预处理器" - "预处理器定义" 内添加 :EXPORT_STDCALL...

2019-07-20 15:37:07 1249

原创 string 转换为 LPCWSTR

LPCWSTR stringToLPCWSTR(std::string orig) { size_t origsize = orig.length() + 1; size_t convertedChars = 0; wchar_t *wcstring = (wchar_t *)malloc(sizeof(wchar_t)*(orig.length()-1)); mbstowc...

2019-04-23 10:58:34 579 1

原创 获取dll所在路径

string GetPath() { string dllPath; TCHAR tcFullPath[MAX_PATH]; char* pChPath = new char[MAX_PATH]; memset(pChPath,'\0',MAX_PATH); GetModuleFileName(::LoadLibrary(L"动态库名称.dll"),tcFullPath,...

2019-04-22 14:58:46 1084

转载 签名,验签的理解

点击打开原文链接一、公钥加密假设一下,我找了两个数字,一个是1,一个是2。我喜欢2这个数字,就保留起来,不告诉你们(私钥),然后我告诉大家,1是我的公钥。我有一个文件,不能让别人看,我就用1加密了。别人找到了这个文件,但是他不知道2就是解密的私钥啊,所以他解不开,只有我可以用。数字2,就是我的私钥,来解密。这样我就可以保护数据了。例如:我的好朋友x用我的公钥1加密了字符a,加密后成...

2019-04-09 11:13:04 367

转载 获取打印机设备环境DC的方法

点击打开原文地址

2019-04-09 09:56:41 840

转载 MFC中Invalidate() 和UpdateWindow()的用法

点击打开原文链接Invalidate()是强制系统进行重画,但是不一定就马上进行重画。因为Invalidate()只是通知系统,此时的窗口已经变为无效。强制系统调用WM_PAINT,而这个消息只是Post,就是将该消息放入消息队列,当执行到WM_PAINT消息时才会对窗口进行重绘;UpdateWindow向窗体发送WM_PAINT消息,在发送之前判断GetUpdateRect(hWnd,...

2019-04-04 15:17:17 2231

转载 WritePrivateProfileString等读写.ini配置文件

点击打开原文链接1、写入.ini文件:BOOL WritePrivateProfileString( LPCTSTR lpAppName, // INI文件中的一个字段名[节名]可以有很多个节名 LPCTSTR lpKeyName, // lpAppName 下的一个键名,也就是里面具体的变量名 LPCTSTR lpString, // 键值,也就是数据 LPCT...

2019-04-04 13:45:45 455

转载 LoadLibrary函数详细说明

点击打开原文链接1、作用:将指定的模块加载到调用进程的地址空间中。2、使用语法HMODULE WINAPI LoadLibrary( _In_ LPCTSTR lpFileName);3、参数lpFileName:模块的名称。这可以是库模块(.dll文件)或可执行模块(.exe文件)。指定的名称是模块的文件名,与模块定义(.def)文件中的LIBRARY关键字所指定...

2019-04-04 13:30:53 4252

转载 CFileFind用法总结

点击打开原文地址CFileFind用法总结:头文件:afx.h功能:本地文件查找具体类型文件:.格式,例如:.pdf:查找.pdf文件所有 文件:.CFileFind类的构造函数::CFileFind()和关闭函数::Close(),成对使用。成员函数根据操作特性分成三类:查找操作类、获得文件属性类和判断文件属性类。(1) 查找操作类:::FindFile():...

2019-04-04 10:32:59 1521

转载 CreateThread与_beginthreadex本质区别

点击打开原文链接一、预热:下面这个程序的主线程会创建了一个子线程并等待其运行完毕,子线程就输出它的线程ID号然后输出一句经典名言——Hello World。整个程序的代码非常简短,只有区区几行。//最简单的创建多线程实例#include <stdio.h>#include <windows.h>//子线程函数DWORD WINAPI ThreadFun...

2019-04-04 10:08:27 313

转载 线程中CreateEvent和SetEvent及WaitForSingleObject的用法

点击打开原文链接一、CreateEvent是创建windows事件的意思,作用主要用在判断线程退出,线程锁定方面.EVENT有两种状态:发信号,不发信号。SetEvent:将EVENT置为发信号。ResetEvent:将EVENT置为不发信号。WaitForSingleObject():等待,直到参数所指定的OBJECT成为发信号状态时才返回,OBJECT可以是EVENT...

2019-04-03 17:35:19 728

转载 DeleteDC() 与 ReleaseDC() 的区别

点击打开原文链接DeleteDC该函数删除指定的设备上下文环境(DC)。原型:BOOL DeleteDC(HDChdc);参数:hdc:设备上下文环境的句柄。返回值:成功,返回非零值;失败,返回零。调用GetLastError获取扩展错误信息。说明:如果一个设备上下文环境的句柄是通过调用GetDC函数得到的,那么应用程序不能删除该设备上下文环境,它应...

2019-04-03 16:30:12 762

转载 m_hWnd和this指针

点击打开原文链接一、m_hWnd1、m_hWnd这个成员变量最早是定义在类CWnd中,而且是类CWnd的第一个数据成员。它是窗口类的一个句柄,凡是从CWnd派生的类都有这个句柄,凡是以CWnd派生的类定义的对象内部也都有这个句柄,它是类或者对象标识自己的句柄。凡是窗口都有一个句柄用来标识自己,在CWnd类中将这个句柄作为一个成员变量直接封装了,所以CWnd类的成员函数都没有句柄这个参数...

2019-04-03 16:00:09 397

转载 MFC中的模态对话框与非模态对话框

点击打开原文链接模态对话框创建:MyDialog mydlg;mydlg.DoModal()当前只能运行此模态对话框,且停止主窗口的运行,直到模态对话框退出,才允许主窗口运行。模态对话框的关闭顺序:OnClose:按关闭符号X后,响应WM_CLOSE消息;OnKillFocus:窗口即将失去输入焦点,响应WM_KILLFOCUS消息;OnDestroy:窗口即将被销...

2019-04-03 15:12:33 536

转载 扩大下C盘空间

点击打开原文链接1、在桌面“我的电脑”右键,找到“管理”,如图:2、在“管理”对话框内,找到“磁盘管理”,如图:3、在“磁盘管理”里面找到D盘,鼠标右键,“压缩卷”,在如下图的红框内,填入压缩的大小。4、鼠标右键C盘,点击“扩展卷”,即可。注意:1、若C盘的“扩展卷”为灰色,则借助于“分区助手”软件。(下载链接)2、使用“分区助手”软件时,每次尽量不要合并太...

2019-04-01 19:27:31 232

转载 new对象时,类名后加括号与不加括号的区别

点击打开原文链接#include <iostream>using namespace std;// 空类class empty{};// 一个默认构造函数,一个自定义构造函数class Base{public: Base() { cout << " default Base construct " <&l...

2019-04-01 09:59:35 1264

转载 Unicode 和 UTF-8 有何区别?

点击打开原文链接简单来说: Unicode 是「字符集」 UTF-8 是「编码规则」其中: 字符集:为每一个「字符」分配一个唯一的 ID(学名:码位 / 码点 / Code Point) 编码规则:将「码位」转换为字节序列的规则(编码/解...

2019-03-31 17:19:10 236

转载 WideCharToMultiByte和MultiByteToWideChar函数的用法

点击打开原文链接辅助链接WideCharToMultiByte的代码页用来标记与新转换的字符串相关的代码页。MultiByteToWideChar的代码页用来标记与一个多字节字符串相关的代码页。常用的代码页有CP_ACP和CP_UTF8两个。使用CP_ACP代码页就实现了ANSI与Unicode之间的转换。使用CP_UTF8代码页就实现了UTF-8与Unicode之间的转换。...

2019-03-31 15:54:33 277

转载 RSA加密算法c++简单实现

点击打开原文RSA是一种非对称加密算法,在公开密钥和电子商业中RSA被广泛使用。它是基于一个很简单的数论事实,两个素数相乘很容易,对两素数乘积因式分解很困难。原理就不再阐述了,我谈谈算法的编程实现过程。一、RSA加密和解密过程是基于以下形式,其中明文为M,密文为C,公匙PU={e, n},密匙PR={d, n}。1、准备工作,选择两个大素数p和q,计算p和q的乘积n,计算p-1和q-...

2019-03-29 13:59:20 9585 1

转载 利用libqrencode生成二维码并保持成bmp图片

点击打开原文链接QR code二维码简介及Qrencode库的移植与使用//QRGenerator.h#pragma once #include <string> using std::string; #define OUT_FILE_PIXEL_PRESCALER 8 class QRGenerator{public: QRGenerator...

2019-03-29 10:47:08 1166

转载 RSA加密 -- 选择padding模式需要注意的问题

点击打开原文链接 RSA - 原理、特点(加解密及签名验签)及公钥和私钥的生成RSA加密常用的填充方式有下面3种:1、RSA_PKCS1_PADDING 填充模式(最常用的模式)输入:必须 比 RSA 钥模长(modulus) 短至少11个字节, 也就是 RSA_size(rsa) – 11如果输入的明文过长,必须切割, 然后填充输出:和modulus一样长根据这...

2019-03-27 21:25:07 9842

转载 #include 出错

点击打开原文链接xxx\GdiPlusImaging.h(67) : error C2501: “MIDL_INTERFACE” : 缺少存储类或类型说明符xxx\GdiPlusImaging.h(67) : error C2440: “初始化” : 无法从“const char [37]”转换为“int”该转换要求 reinterpret_cast、C 样式转换或函数类型...

2019-03-26 09:51:53 904

原创 pb90 调 dll

1、建立一个pb窗体https://blog.csdn.net/mpp_king/article/details/887071402、所调用的dll放在工程目录下3、在pb中的任何一个Object上双击打开该object的面板并进入脚本编辑框。选择Declare,Global ExternalFunctions。4、在一个编辑框内调用接口注:操作时所碰到的一些...

2019-03-24 19:05:50 587

原创 string 转为char* 作为函数参数回传后变成空字符串

int ReturnPoint(char* pStr){ string temp = "hello"; //是一个临时变量,函数结束时,就会被释放 //第一种方法 pStr = (char*)temp.c_str(); //pStr最后指向的内容是乱值,因为temp对象被析构,其内容被处理 //第二种方法 strcpy(pStr,(char*)temp.c_str()); /...

2019-03-23 16:25:26 2233 1

转载 string、char *、char[] 相互转换转换

点击打开原文链接一、string 转 char*主要有三种方法可以将 str 转换为 char* 类型,分别是:data(); c_str(); copy;1、data() 方法:string str = "hello world";const char *p = str.data(); //加const 或用 char *p = (char*)str.data(); 的形式...

2019-03-23 12:07:43 61215 4

原创 整型数组转字符串

int d[5]={4,5,3,2,5}; char a[80]; int i; for(i=0;i<5;i++) { a[i]=d[i]+'0'; } a[i]='\0'; //这个很重要,是字符串结束符 printf("%s\n",a);

2019-03-22 17:54:33 4652

转载 WString与String互相转换

点击打开原文链接std::wstring StringToWString(const std::string& str) { int num = MultiByteToWideChar(CP_UTF8, 0, str.c_str(), -1, NULL, 0); wchar_t *wide = new wchar_t[num]; MultiByteToWid...

2019-03-22 13:39:57 529

转载 MFC:创建dll和调用dll

点击打开原文

2019-03-21 15:50:50 814

转载 PB90使用-零基础入门

点击打开原文链接

2019-03-21 09:36:58 2160

转载 VS2008无法调试,报错MSVCR90.DLL丢失

点击打开原文地址1. 在“属性”-&gt;“C/C++”-&gt;“代码生成”-&gt;“运行时库”里面设为“多线程DLL”2. 在程序里添代码:#pragma comment(linker, "\"/manifestdependency:type='Win32' name='Microsoft.VC90.CRT' version='9.0.21022.8' processorArch...

2019-03-11 19:10:58 600

转载 APDU命令的结构、处理、常用指令

点击打开原文1、智能卡学习资料APDU(ApplicationProtocol data unit), 是智能卡与智能卡读卡器之间传送的信息单元;IFD(接口设备)与IC卡之间的通讯:a、首先,IFD发送5个字节的命令头给IC卡,这5个字节的内容告诉了IC卡要做什么操作;b、然后,IC卡回传一个过程字节给IFD,告诉IFD,IC卡是否支持该操作;c、如果返回的过程字节告诉IF...

2019-03-06 14:44:26 9543

转载 MFC TabCtrl 控件修改标签尺寸

点击打开原文标签注意:需要先设置Tab控件的Style属性为fixed width.MFC,tabcontrol控件改变标签大小 - CSDN博客https://blog.csdn.net/u012702039/article/details/22668161 CSize size, size1; size.cx = 150; size.cy = 4...

2019-03-05 09:26:30 1745

转载 gdiPlus的imag::fromFile函数调用返回为空

点击打开原文地址gdiPlus需要初始化,在调用imag::fromFile()之前需要做如下的初始化才行:GdiplusStartupInput gdiplusStartupInput;ULONG_PTR gdiplusToken;GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NUL...

2019-02-28 19:12:02 673

转载 转换到 COFF 期间失败: 文件无效或损坏

点击打开原文地址亲测有效用VS2010编译C++项目时出现这样的错误:复制 C:\Windows\winsxs\x86_netfx-cvtres_for_vc_and_vb_b03f5f7f11d50a3a_6.1.7601.17514_none_ba1c770af0b2031b 目录下的 cvtres.exe 到C:\Program Files\Microsoft Visual...

2019-02-28 10:14:20 257

转载 cannot open shared object file: No such file or directory解决方法

点击打开原文链接错误:cannot open shared object file: No such file or directory文件明明存在但是却找不到是由于当前目录并不在查找范围内,因此显示无法找到。解决办法:sudo vi /etc/ld.so.conf添加库路径  ./ (表示当前目录)添加保存然后sudo ldconfig ...

2018-12-04 15:28:08 9588

转载 GetPrinter 获取到的状态为 0

HANDLE hPrinter=0;DWORD dwNeeded=0;PRINTER_INFO_2* pPrinterInfo= (PRINTER_INFO_2 *)malloc( 0 );/*此处应判断返回值*/::OpenPrinter("Samsung SCX-4200 Series",&amp;hPrinter,NULL);if(!::GetPrinter(hPrinter,...

2018-11-14 17:25:30 2955

原创 VC++编译别人代码提示fatal error C1083: 无法打开包括文件:“afxcontrolbars.h”: No such file or directory

安装 VS2008SP1。 

2018-11-14 15:11:13 868

转载 解决This function or variable may be unsafe

点击打开原文地址 验证可行。

2018-09-30 10:48:17 127

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除