VC/MFC
qq506124204
这个作者很懒,什么都没留下…
展开
-
Makefile中 wildcard 用法
在Makefile规则中,通配符会被自动展开。但在变量的定义和函数引用时,通配符将失效。这种情况下如果需要通配符有效,就需要使用函数“wildcard”,它的用法是:$(wildcard PATTERN...) 。在Makefile中,它被展开为已经存在的、使用空格分开的、匹配此模式的所有文件列表。如果不存在任何符合此模式的文件,函数会忽略模式字符并返回空。需要注意的是:这种情况下规则中通配符转载 2013-07-22 00:26:59 · 800 阅读 · 0 评论 -
ACTIVEX OCX 获取 IE窗口的句柄
HWND hParent = NULL; IOleInPlaceSite *pOleInPlaceSite = NULL; if (S_OK == m_pClientSite->QueryInterface(IID_IOleInPlaceSite, (LPVOID *)&pOleInPlaceSite)) { pOleInPlaceSite->GetWind原创 2013-10-24 12:25:51 · 2985 阅读 · 0 评论 -
用IE浏览器调试ocx, 进入断点的方法设置
解决方法:--------------------------------------- Windows Registry Editor Version 5.00[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main]"TabProcGrowth"=dword:00000000--------原创 2013-10-24 19:21:37 · 3128 阅读 · 0 评论 -
OCX 控件 内部发消息,网页加载出问题
OCX 内部开线程 并在 线程内发送消息主线程,结果:1、在 "Activ&eX Control Test Container"测试工具 使用正常;2:在网页使用失败(调试得知 窗口句柄为空 )。在网上找了半天终于找到了答案:必须重载 虚函数 virtual void OnSetClientSite();void C***Ctrl::OnSetClientSite()原创 2013-10-24 14:17:36 · 1171 阅读 · 0 评论 -
OCX 控件 发生 “ 灾难性故障 ”
MFC 编写OCX 控件,必须在 C****Ctrl 类覆盖父类方法 BOOL IsInvokeAllowed ( DISPID dispID ); 否侧在调用控件接口时,可能会出现“灾难性故障 ”。CPP代码:BOOL C***Ctrl::IsInvokeAllowed ( DISPID dispID ){ return TRUE; // 父类为 FALSE原创 2013-10-24 20:54:44 · 3011 阅读 · 1 评论 -
GetMemory 讲解
void GetMemory( char *p ){ p = (char *) malloc( 100 );}void Test( void ){ char *str = NULL; GetMemory( str ); strcpy( str, "hello world" ); printf( str );} 试题5:转载 2013-11-17 22:56:52 · 913 阅读 · 0 评论 -
vc.net 学习
初始化:array^ #define SIZE 100// 方法1 动态申请空间,并初始化部分元素array^ css_keycode = gcnew array( SIZE ) {0x51, 0x67, 0x67, 0xc5, 0xe0, 0x00}; // 方法2 固定大小为6个array^ css_ = {0x51, 0x67, 0x67, 0xc5原创 2013-12-10 00:07:16 · 700 阅读 · 0 评论 -
OCX 控件使用GDI+ 问题(退出报内存 First-chance exception)
OCX 使用GDI+ 退出控件时候,报内存访问违例,。。 First-chance exception at ***.exe原创 2013-11-18 11:25:06 · 1716 阅读 · 0 评论 -
位图 截图
// vc截图.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include //#include HBITMAP CopyScreenToBitmap(LPRECT lpRect) //lpRect 代表选定区域{ HDC hScrDC, hMemDC; // 屏幕和内存设备描述表 HBITMAP hBitmap,hO转载 2013-12-05 16:13:08 · 816 阅读 · 0 评论 -
大文件操作
大文件操作原创 2013-12-09 19:20:33 · 865 阅读 · 0 评论 -
常用的宏符号
1、“/”解释:连接下一行例子:#define Link(tokenname) aa + / bb + / (tokenname)调用:a = Link(b);输出:a = aa + bb + b;2、“#@tokenname”解释:将tokenname变为字符'tokenname'例子:#define makechar(tokenname)原创 2013-12-28 19:57:00 · 1349 阅读 · 0 评论 -
导入库和静态库的区别
导入库编辑导入库只包含了地址符号表等,确保程序找到对应函数的一些基本地址信息。目录1静态库2导入库和静态库的区别1静态库编辑目前以lib后缀的库有两种,一种为静态链接库(Static Library,以下简称“静态库”),另一种为动态连接库(DLL,以下简称“动态库”原创 2014-01-25 20:10:39 · 1515 阅读 · 0 评论 -
抛异常问题
用C#编写dll ,VC2008调用该Dll。C# 函数抛出异常:String ^ str = "My Exception"; throw new Exception( str );testDll.exe : catch (char * e )调试报错: 在 System.Runtime.InteropServices.SEHException 中第一次偶然出现的“te原创 2013-07-12 00:23:06 · 1079 阅读 · 0 评论 -
C/C++ 获取命令行返回信息
std::string GetCmdInfo(const char * pszCmd){ //创建匿名管道 SECURITY_ATTRIBUTES sa = {sizeof(SECURITY_ATTRIBUTES), NULL, TRUE}; HANDLE hRead, hWrite; if (!CreatePipe(&hRead, &hWrite, &原创 2012-11-18 20:46:52 · 3352 阅读 · 1 评论 -
CreateThread, AfxBeginThread,_beginthread, _beginthreadex的区别
CreateThread 是Windows的API函数(SDK函数的标准形式,直截了当的创建方式,任何场合都可以使用),提供操作系统级别的创建线程的操作,且仅限于工作者线程。不调用MFC和RTL的函数时,可以用CreateThread,其它情况不要轻易。在使用的过程中要考虑到进程的同步与互斥的关系(防止死锁)。线程函数定义为:DWORD WINAPI _yourThreadFun(LPVOID p转载 2012-07-07 18:54:36 · 624 阅读 · 0 评论 -
决不应该调用CreateThread
在写c++代码时,一直牢记着一句话:决不应该调用CreateThread。相反,应该使用Visual C++运行期库函数_beginthreadex。好像CreateThread函数就是老虎,既然这样为什么微软要开发这个函数呢?从网上找到的相关资料,现在汇总一下,在此对相关人员进行感谢! 摘自《windows 核心编程》: CreateThread函数是用转载 2012-07-09 00:20:12 · 2317 阅读 · 0 评论 -
Windows编程的剪贴板机制
Windows剪贴板 Windows剪贴板是一种比较简单同时也是开销比较小的IPC(IntERProcess Communication,进程间通讯)机制。Windows系统支持剪贴板IPC的基本机制是由系统预留的一块全局共享内存,用来暂存在各进程间进行交换的数据:提供数据的进程创建一个全局内存块,并将要传送的数据移到或复制到该内存块;接受数据的进程(也可以是提供数据的进程本身)获取原创 2012-06-27 21:59:34 · 897 阅读 · 0 评论 -
闲来无事 练习基础知识
1、创建进程: STARTUPINFO si ; si.cb = sizeof(si); memset(&si,0,sizeof(si)); PROCESS_INFORMATION pi; si.wShowWindow = TRUE; BOOL bRet = CreateProcess(NULL,"notepad.exe",NUL原创 2012-06-21 00:36:58 · 1108 阅读 · 1 评论 -
VC中如何使非模态对话框不随主窗口最小化
CLoadKeyDlg *dlg = new CLoadKeyDlg;dlg->Create(IDD_LOADKEY_DLG, this );dlg->showWindow(SW_NORMAL); this->ShowWindow(SW_HIDE); // 隐藏主窗口只需把第二句 this 改成 桌面窗口 即可dlg->Create(IDD_LOADKEY原创 2012-08-13 21:44:14 · 1566 阅读 · 0 评论 -
数据类型转换 符号扩展
================ = 关于符号扩展 = ===================一、短数据类型扩展为长数据类型1、要扩展的短数据类型为有符号数的 进行符号扩展,即短数据类型的符号位填充到长数据类型的高字节位(即比短数据类型多出的那一部分),保证扩展后的数值大小不变如1:char x=10001001b;原创 2012-08-18 14:07:00 · 2293 阅读 · 0 评论 -
计算机基础部分 数据转换 移位问题
unsigned long i; /* unsigned long 类型为4字节*/char c1=0xa4;char c2=0x31;i = c2问:i = (用16进制格式) 如果:unsigned long i; /* unsigned long 类型为4字节*/char c1=0x74;char c2=0x31;i = c2原创 2012-06-08 15:18:42 · 910 阅读 · 0 评论 -
MFC窗口隐藏 --对话框--单文档
MFC窗口隐藏 因为最近我的不良网页过滤引擎--上帝之手的开发进入实际开发阶段,因此开始了很多方面的系统编程比如说进程隐藏,窗口隐藏等等,因为这是监控类的软件,最好是运行在用户不知情的情况下,所以最好是把窗口隐藏起来,然后通过hotkey来呼唤.在如何实现窗口隐藏的时候,我可以说是费尽周章. 一开始,我想到的是在CMainFrame里的OnCreate写上一句this->转载 2012-09-07 16:33:03 · 2080 阅读 · 3 评论 -
CEdit 文本编辑框添加常用快捷键
BOOL CBuild****Dlg::PreTranslateMessage(MSG* pMsg) { int ch = (int)pMsg->wParam; if(WM_KEYDOWN == pMsg->message) { if( (GetKeyState( VK_CONTROL) & 0xFF00 ) == 0xFF00)原创 2012-10-11 21:43:25 · 830 阅读 · 0 评论 -
C_C++ 各种计时函数
对Windows平台下常用的计时函数进行总结,包括精度为秒、毫秒、微秒三种精度的5 种方法。分为在标准C/C++下的二种time()及clock(),标准C/C++所以使用的time()及clock()不仅可以用在Windows 系统,也可以用于Linux系统。在Windows系统下三种,使用Windows提供的API接口timeGetTime()、 GetTickCount()及QueryP原创 2012-11-01 00:25:04 · 4090 阅读 · 5 评论 -
大端模式和小端模式
union 共用体名{ 数据类型 成员名; 数据类型 成员名; ... } 变量名; 共用体变量的地址和它的各个成员变量的地址相同,在不同的时间保存不同的数据类型和不同长度的变量。在union中,所有的共用体成员共用一个空间原创 2012-11-04 17:39:16 · 940 阅读 · 0 评论 -
8421码与5421码区别 BCD
8421是最常用的二进制码,叫这个是因为四位8421码时,从左到右每个"1"代表的十进制数分别是"8"、"4"、"2"、"1" 如下: "1000" 为十进制 "8" "0100" 为十进制 "4" "0010" 为十进制 "2" "0001" 为十进制 "1" 5421码与此相同,每位一代表的是十进制的"5"、"4"、"2"、"1" 即: "1000" 为原创 2014-03-15 17:25:04 · 17397 阅读 · 1 评论