
VC
文章平均质量分 69
普通网友
这个作者很懒,什么都没留下…
展开
-
VC编程时关于 WM_MOUSEENTER 和 WM_MOUSELEAVE消息
关于 WM_MOUSEENTER 和 WM_MOUSELEAVE消息这两个消息比较古怪,虽然你能找到他们的定义,看起来也似乎挺有用,但是却接收不到。如果要处理这两个消息需要手动在WM_MOUSEMOVE消息处理函数中添加:添加变量:BOOL m_bTracking;m_bTracking = FALSE;添加消息处理函数:afx_msg LRESULT OnMo原创 2012-10-25 17:18:12 · 7885 阅读 · 0 评论 -
多进程浏览器下ActiveX插件调试技巧
概述:现在主流的浏览器都是多进程浏览器,这却给ActiveX插件的调试带来了很大的不便!最近在使用VS2010开发ActiveX插件,由于要在真实的浏览器环境下调试,发现在附加到进程时想找到真正的宿主进程比较麻烦!于时想到了一个工具“Process Explorer”,使用它很容易就可以找到真正的宿主进程。使用方法:打开“Process Explorer”,点击“Find原创 2014-03-12 10:31:58 · 4316 阅读 · 0 评论 -
Windows热键注册原理
要像系统注册一个全局热键,需要用到RegisterHotKey,函数用法如下(MSDN):BOOL RegisterHotKey( HWND hWnd, int id, UINT fsModifiers, UINT vk); 函数功能:该函数定义一个系统范围的热键。 函数原型:BOOL Re转载 2014-05-05 14:55:58 · 10562 阅读 · 0 评论 -
IntelliSense 无法重载仅按返回类型区分的函数
IntelliSense:无法重载仅按返回类型区分的函数 d:\programfiles (x86)\microsoft sdks\windows\v7.0a\include\winbase.h 3540在VS2010下用C语言写Windows系统服务,从另一个c#的项目中Copy过来一段代码,修改后再编译,就产生了这个错误!在网上搜索得到的答案是:“无法重载仅按返回类原创 2014-05-18 17:50:35 · 14978 阅读 · 0 评论 -
VS2010中wmain入口函数中使用wprintf输出中文乱码问题
正确代码:#include "stdio.h"#include "Windows.h"#include int wmain(int argc, wchar_t* argv[]){ setlocale(LC_ALL, "chs"); wprintf(L"%s\n", L"中文字符");}其关键代码为:setlocale(LC_ALL, "chs");配置地域化信息函数为什么一定要调用原创 2014-05-18 19:52:59 · 4634 阅读 · 0 评论 -
C语言获取文件的SHA1哈希值
安全哈希算法(Secure Hash Algorithm)主要适用于数字签名标准 (Digital Signature Standard DSS)里面定义的数字签名算法(Digital Signature Algorithm DSA)。对于长度小于2^64位的消息,SHA1会产生一个160位的消息摘要。当接收到消息的时候,这个消息摘要可以用来验证数据的完整性。在传输的过程中,数据很可能会发生变化,原创 2014-05-12 00:17:43 · 14478 阅读 · 2 评论 -
CString、char*、string、int、_bstr_t、CTime、COleDateTime相互转换,判断一个字符串是一个浮点数
CString、char*、string、int、_bstr_t、CTime、COleDateTime相互转换,判断一个字符串是一个浮点数#include using namespace std; #include { CString strCString="ABC"; char strchar[256],*pstr;转载 2014-05-13 10:53:16 · 2933 阅读 · 0 评论 -
大数相加(不开辟额外空间)
大数相加可以借助多种方法来实现,这里提供了一种链表节点的数据域为int型(用char型也可以,这样更省空间)的思路。这篇文章采用常用的转变为字符串进行处理的方法,下面说下我用字符串实现大数相加的思路: 假设输入了如下两个字符串(其中上面的红色部分表示数组的下标,下面的绿色和黄色部分表示各字符): s1: s2: 很明显,s1的实际长度为4,s2的实际长度为7,将二者在最低位转载 2014-05-13 11:15:20 · 1997 阅读 · 0 评论 -
VS2010编写动态链接库DLL及单元测试用例,调用DLL测试正确性
本文将创建一个简单的动态链接库,并编写一个应用台控制程序使用该动态链接库,该动态链接库为“JAVA调用动态链接库DLL之JNative学习”中使用的DLL,只是项目及文件名称不同。创建动态链接库项目:1、打开Microsoft Visual Studio 2010,选择文件->新建->项目。2、在新建项目窗口中选择其他语言->Visual C++->Win32。3、选择Win32 项目,设置名称:原创 2014-05-27 22:46:18 · 31802 阅读 · 9 评论 -
如何定位导致Crash的代码位置
1. 在开发环境下定位Crash错误 1.1 普通的crash 1.2 较难定位的crash 1.3 注意vc的输出日志2. 定位发布在外的版本的Crash错误3. 小技巧 3.1 根据程序地址找到代码位置 3.2 根据消息值查看对应的windows消息 3.3 查看GetLastError返回值 3.4 在代码中暂停程序4. 编程小警示转载 2014-03-11 15:01:47 · 7157 阅读 · 0 评论 -
c / c + + 调用mysql存储过程
原文:c / c + + call mysql stored procedureE文好的请查看原文,菜鸟级翻译,欢迎批评指正!mysql5.0支持存储过程后,现在mysql6.0Alpha 版本也是可用的。6.0不仅支持大型数据库(如 oracle和如此的大多数功能(如存储过程、视图、触发器、作业等,并修复了这些功能存在的bug,6.0.1 版还支持windows 64 位 和表空间。C/c + + 要访问 mysql,只是一些简单的常用操作,c嵌入式简单查询、插入、更新和其他操作的使用可以。这翻译 2014-02-10 16:41:05 · 14181 阅读 · 1 评论 -
VC #define EC(x) L##x 作用说明
#define EC(x) L##x 作用说明表示L与x连接。#define Conn(x,y) x##y#define ToChar(x) #@x#define ToString(x) #xx##y表示什么?表示x连接y,举例说:int n = Conn(123,456); 结果就是n=123456;char* str = Conn("asdf", "adf")结果就是原创 2014-01-24 14:40:15 · 6377 阅读 · 0 评论 -
无法执行添加/移除操作,因为代码元素**是只读的
在vs中,大量添加窗体或者控件后,发现无法由系统IDE自动生成代码,如自动添加按钮响应函数等,rc管理器界面双击按钮添加函数,会出现 提示框 “无法执行添加/移除操作,因为代码元素**是只读的”。开始认为可能是对应的.cpp和.h被加了只读属性,后来发现是工程的ncb文件引起的。解决方案:关闭vs,删除工程对应的.ncb文件,重启vs就好了。问题原因:NCB是no compile brow原创 2012-10-25 17:08:41 · 19037 阅读 · 4 评论 -
C/C++自动调整界面布局的对话框
来源:http://blog.youkuaiyun.com/xianglitian/article/details/5667015例子:http://download.youkuaiyun.com/download/xianglitian/2425531CodeProject上的例子:EasySize - Dialog resizing in no time!http://www.codeproject.转载 2013-03-04 16:55:20 · 6097 阅读 · 0 评论 -
C/C++ For循环语句的效率测试优化及运行时错误:Stack Overflow的解决办法
C/C++ For循环语句的效率测试优化及运行时错误:Stack Overflow的解决办法在多重循环中,如果有可能,应当将最长的循环放在最内层,最短的循环放在最外层,以减少CPU跨切循环层的次数。使用以下代码对嵌套For循环的效率进行测试验证:// For嵌套性能.cpp : Defines the entry point for the console ap原创 2013-03-04 14:45:16 · 5164 阅读 · 0 评论 -
C++著名程序库的比较和学习经验
文章来源:http://www.open-open.com/lib/view/open1328670468108.html内容目录:1、C++各大有名库的介绍——C++标准库2、C++各大有名库的介绍——准标准库Boost3、C++各大有名库的介绍——GUI4、C++各大有名库的介绍——网络通信5、C++各大有名库的介绍——XML6、C++各大有名库的介绍——科学计算转载 2013-03-20 11:32:26 · 2405 阅读 · 0 评论 -
STL,ATL,WTL之间的联系和区别
一、STL即 Standard Template Library (标准模板库) STL是惠普实验室开发的一系列软件的统称。它是由Alexander Stepanov、Meng Lee和David R Musser在惠普实验室工作时所开发出来的。现在虽说它主要出现在C++中,但在被引入C++之前该技术就已经存在了很长的一段时间。STL的代码从广义上讲分为三类:algorithm(转载 2013-06-04 14:07:49 · 2231 阅读 · 0 评论 -
VC 字符描边
VC 字符描边//艺术字体void DrawTextString(CDC * pDC, LPCTSTR pszString, COLORREF crText, COLORREF crFrame, int nXPos, int nYPos, int aph){//变量定义int nStringLength=lstrlen(pszString);int nXExcurs转载 2013-06-07 10:47:41 · 3067 阅读 · 0 评论 -
IntelliSense: 无法打开 源 文件 "stdafx.h"
VS2010中包含以前的.h/.cpp文件于现在的工程中,出现IntelliSense: 无法打开 源 文件 "stdafx.h",搜寻到一些方法都不适用,比如:设置项目属性->配置属性->C/C++->预编译头->使用 (/Yu)/创建 (/Yc)/不使用预编译头三种方式都不行。虽然提示这样的错误,但是运行程序是成功的,初始化和编译运行好像使用不同的查找路径,在低版本的VS2005/VS2008转载 2013-06-25 17:55:34 · 10473 阅读 · 0 评论 -
c++ 如何使用CryptoAPI创建一个自签名证书
引文链接:How to create a self-signed certificate with CryptoAPI (C++)CryptoAPI编程(1) 微软加密服务体系微软加密服务体系CryptoAPI的结构如下图所示,微软加密服务体系包含三层结构和两个接口,分别为应用程序层、操作系统层(OS)、加密服务提供者层(Cryptographic Service Pr翻译 2013-12-14 21:16:53 · 10358 阅读 · 3 评论 -
c++命令提示符窗口下打印指定大小的菱形代码
c++命令提示符窗口下打印指定大小的菱形代码VS2010下,新建空项目,添加源文件,将代码粘贴进去就可以了。通过改maxRows值的大小,可以控制菱形的大小#include #include //添加依赖的头文件void main() { int i,j,k; int maxRows = 12;//控制菱形的大小 //先打印上边的四行 for(i=1;i<maxRows;i+原创 2014-10-03 19:11:27 · 9029 阅读 · 0 评论 -
线程,进程间的通讯和同步原理,实现用例和应用
线程/进程间的通讯方式—使用全局变量/共享内存—使用thread中的lParam参数—使用socket—使用窗口和消息—使用命名管道/匿名管道—使用cmd参数—使用environment变量线程的启动,退出和lParam参数通讯VC:#include DWORD WINAPI ThreadProc(LPVOID lParam);原创 2013-03-27 15:00:10 · 6859 阅读 · 6 评论 -
VC CreateWindow 找不到窗口类
VC CreateWindow 找不到窗口类,有提示是因为没有调用RegisterClass注册窗口类,可是我已经使用RegisterClassEx注册了! //函数:MyRegisterClass //作用:注册窗口类ATOM MyRegisterClass(HINSTANCE hInstance){WNDCLASSEX wndclass;wndclass.cbSize = sizeof原创 2015-02-09 16:10:25 · 4234 阅读 · 0 评论 -
程序的内存分配之堆和栈的区别
堆栈概述 在计算机领域,堆栈是一个不容忽视的概念,堆栈是两种数据结构。堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除。在单片机应用中,堆栈是个特殊的存储区,主要功能是暂时存放数据和地址,通常用来保护断点和现场。要点: 堆,优先队列(priority queue);普通的队列是一种先进先出的数据结构(FIFO—First-In/First-Out),元原创 2015-10-01 09:38:52 · 12382 阅读 · 11 评论 -
ActiveX .idl与.odl的区别
.odl和.idl在com中的功能相同. 前者是ActiveX中的 后者是ATL中. 可在前者的文件中 用 #import "XXXXX.idl" 的方式包含后者. 反过来没有试过. 2.When using IDL, you must declare the interfaces that will generate the C++ source files outside of the lib转载 2016-01-20 11:22:30 · 2930 阅读 · 0 评论 -
VS2010使用c++、gSOAP调用WebService 图文教程
上篇写了“VS2010使用c++、gSOAP创建的WebService 图文教程”,有创建就要有调用,这里就讲一下相同语言框架技术下的调用功能。一、下载WSDL文件上篇中 “五、启动WebService并测试》5、打开浏览器,输入你的IP:端口号/itoa?wsdl 访问看看吧,正常的话应该显示“itoa.wsdl”文件的内容”我们知道对方提供的WebService地址,理论上就可以通过以上方式取原创 2016-05-29 17:54:17 · 13621 阅读 · 4 评论 -
VS2010使用c++、gSOAP创建WebService 图文教程
VS2010使用c++、gSOAP创建的WebService 图文教程环境操作系统:Windows 7gsoap版本:2.8.32C++编译器/开发环境:Visual Studio 2010gSOAP是什么gSOAP编译工具提供了一个SOAP/XML 关于C/C++ 语言的实现,从而让C/C++语言开发web服务或客户端程序的工作变得轻松了很多。绝大多数的C++web服务工具包提供一组API函数类原创 2016-05-23 10:59:34 · 15962 阅读 · 15 评论 -
在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include "StdAfx.h"”?
错误 16 error C1010: 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include "StdAfx.h"”? c:\gsoap\gsoap-2.8\gsoap\stdsoap2.cpp 18894 1 AddServer错误原因:在创建工程时勾选了:预编译头解决方法:1、在错误提示的文件中添加预编译头#include "stdafx.h"2、取消 预编译头选择VS20原创 2016-05-20 11:19:01 · 54641 阅读 · 7 评论 -
gSoap的“error LNK2001: 无法解析的外部符号 _namespaces”解决方法
错误 2 error LNK2001: 无法解析的外部符号 _namespaces解决方法:1. 在工程中定义 WITH_NONAMESPACES 宏2.尝试 "#include "add.nsmap" "这个扩展名是.nsmap的文件是哪里来的?是通过 soapcpp2 工具生成的。比如以下命令:soapcpp2 -S -I C:\gSOAP\gsoap-2.8\gsoap\import add原创 2016-05-20 11:33:30 · 7701 阅读 · 0 评论 -
SHA-1算法c语言实现
安全哈希算法(Secure Hash Algorithm)主要适用于数字签名标准 (Digital Signature Standard DSS)里面定义的数字签名算法(Digital Signature Algorithm DSA)。对于长度小于2^64位的消息,SHA1会产生一个160位的消息摘要。当接收到消息的时候,这个消息摘要可以用来验证数据的完整性。在传输的过程中,数据很可能会发生变化,原创 2014-05-14 09:59:05 · 34722 阅读 · 6 评论 -
远程线程注入技术 屏蔽ctrl+alt+del
在NT/2000中怎么禁用Ctrl+Alt+Delete?(不能用gina,键盘驱动) 在Windows2000中Ctrl-Alt-Delete组合键的处理如下:Winlogon初始化的时候,在系统中注册了CTRL+ALT+DEL Secure Attention Sequence(SAS)热键,并且在WinSta0 Windows 系统中创建三个桌面。 SAS热键的注册使得Winlogon成为第转载 2017-02-15 09:25:14 · 5036 阅读 · 8 评论 -
无法解析的外部符号 EVP_EncryptFinal_ex
无法解析的外部符号 EVP_EncryptFinal_ex 原因是缺少对应版本的Lib; Win32下编译是没有问题的,但平台配置为x64的就不行了。 需要引用 对应的64位的Lib.原创 2015-05-23 16:32:46 · 5981 阅读 · 4 评论 -
vs2010发布时去除msvcp100.dll和msvcr100.dll图解说明
最近开发个程序,Copy到虚拟机环境中测试时提示缺少msvcr100.dll,于是想到编译时设置选项去除依赖。什么是 msvcr100.dll MS = Microsoft V = Visual C = C program language R = Run-time 100 = Version什么是 msvcp100.dllMS = Microsoft V = Visual CP = C++ 10原创 2014-05-25 20:34:09 · 27610 阅读 · 12 评论 -
error LNK2019: 无法解析的外部符号 __imp_GetUserObjectInformationW,该符号在函数 OPENSSL_isservice 中被引用
error LNK2019: 无法解析的外部符号 __imp_GetUserObjectInformationW,该符号在函数 OPENSSL_isservice 中被引用参考MSDN:https://msdn.microsoft.com/en-us/library/ms683238(VS.85).aspxRequirementsMinimum supported clientWindows 200原创 2015-05-30 18:13:41 · 28752 阅读 · 2 评论 -
RegisterClass和RegisterClassEx有什么区别?
引言继上篇文章“VC CreateWindow 找不到窗口类”中将RegisterClassEx改为RegisterClass问题就解决了,究竟是什么原因,RegisterClass和RegisterClassEx有什么区别呢? 经过一番查找和测试,终于找到了答案:不同之处:The RegisterClass function has been superseded by the Register原创 2015-02-09 16:51:48 · 12141 阅读 · 4 评论 -
不能将参数 2 从“char [8]”转换为“LPCWSTR”
在编译一个网上的小项目的代码时,出现以下错误: 不能将参数 2 从“char [8]”转换为“LPCWSTR” 错误原因: 项目属性使用的Uncode字符集,与代码要求的不匹配; 解决办案: 选中项目,然后点击菜单中的项目——>属性——>配置属性——>常规——>项目默认值——>字符集,选为“使用多字节字符集”原创 2015-02-09 15:21:11 · 4382 阅读 · 10 评论 -
《Visual c++2013入门经典(第7版)》上机练习:为 Win32 控制台应用程序创建项目
看到《那些年我们追过的Wrox精品红皮计算机图书》有奖活动下载了《Visual c++2013入门经典(第7版)》的试读PDF,开始学习。这本书的读者对象本书针对任何想要学习如何使用 Visual C++编写在 Microsoft Windows 操作系统下运行的 C++应用程序的读者。阅读本书不需要预先具备任何特定编程语言的知识。如果属于下列 3 种情形之一,你就适合学习本教程:● 属于编程新手原创 2015-01-25 14:50:15 · 12883 阅读 · 11 评论 -
VC Windows API应用之GetDesktopWindow ——获得桌面所有窗口句柄的方法
Windows APIWindows 这个多作业系统除了协调应用程序的执行、分配内存、管理资源…之外, 它同时也是一个很大的服务中心,调用这个服务中心的各种服务(每一种服务就是一个函数),可以帮应用程式达到开启视窗、描绘图形、使用周边设备等目的,由于这些函数服务的对象是应用程序(Application), 所以便称之为 Application Programming Interface,简称 API原创 2015-04-19 14:49:26 · 33837 阅读 · 9 评论 -
error C2065: “GAA_FLAG_SKIP_ANYCAST”: 未声明的标识符
在编译文章: 使用GetAdaptersAddresses函数获取物理MAC地址中的代码时,出现以下错误: 错误 2 error C2065: “GAA_FLAG_SKIP_ANYCAST”: 未声明的标识符 f:\ccprojects\获取网卡物理地址mac地址\获取网卡物理地址mac地址\temporary.cpp 11 1 获取网卡物理地址MAC地址解决办法: 添加头文件原创 2015-05-31 08:34:15 · 2761 阅读 · 1 评论 -
error C2039: “CRegKey”: 不是“ATL”的成员
在编译文章: 使用GetAdaptersAddresses函数获取物理MAC地址中的代码时,出现以下错误: 错误 1 error C2039: “CRegKey”: 不是“ATL”的成员 f:\ccprojects\获取网卡物理地址mac地址\获取网卡物理地址mac地址\temporary.cpp 62 1 获取网卡物理地址MAC地址解决办法: 添加头文件:#include <a原创 2015-05-31 08:44:32 · 5728 阅读 · 0 评论