- 博客(12)
- 资源 (3)
- 收藏
- 关注
原创 DLL和EXE怎样共享全局变量?
全局共享数据 #pragma data_seg ("shareddata") HWND sharedwnd=NULL;//共享数据 #pragma data_seg() 编译选项加入 /SECTION:shareddata,rws ============================用pragma设置共享数据:
2010-05-21 17:23:00 2148
原创 使用DLL在多个进程间共享全局变量
默认情况下,同一个程序启动多个进程,它们各自的变量值是不会相互影响的。第二个实例启动后,在修改全局变量的时候,系统会运用内存管理系统copy- on-write的特性来防止修改了第一个实例的数据,即系统会再分配一些内存,并将全局变量复制到这块内存中,每个实例使用自己的内存空间上的数据而互不影响。有时候我们想在多个进程间共享数据,windows提供了这种方法,就是创建自己的共享数据节,并将需要共
2010-05-21 17:13:00 5251 2
原创 DLL中导出函数的两种方式(dllexport与.def文件)(
DLL中导出函数的声明有两种方式:一种方式是:在函数声明中加上__declspec(dllexport);另外一种方式是:采用模块定义(.def)文件声明,(.def)文件为链接器提供了有关被链接程序的导出、属性及其他方面的信息。方式一:在函数声明中加上__declspec(dllexport)/// 在动态链接库程序中/// 声明动态链接库(**.dll)的对外接口函数TestFuc
2010-05-21 17:02:00 1219
原创 DLL中导出全局变量
DLL定义的全局变量可以被调用进程访问;DLL也可以访问调用进程的全局数据,我们来看看在应用工程中引用DLL中变量的例子(单击此处下载本工程)。#ifndef LIB_H#define LIB_Hextern int dllGlobalVar;#endif#include "lib.h"#include int dllGlobalVar;BOOL APIENTRY DllMai
2010-05-21 17:01:00 6602 1
原创 Message Map
struct AFX_MSGMAP //消息映射表{AFX_MSGMAP* pBaseMessageMap; //基类消息映射表的指针;AFX_MSGMAP_ENTRY* lpEntries; //消息入口表的指针;};struct AFX_MSGMAP_ENTRY //消息映射入口表{UINT nMessage; //消息;UINT nCode; //控件的通知码或WM_NOTIFY的通知码
2010-05-20 21:37:00 904
原创 vc模拟鼠标键盘操作实用类
//****************** 类mk头文件mk.h **************************#if !defined(AFX_MK_H__B024D48F_090A_4F6F_A199_32996DF699B3__INCLUDED_)#define AFX_MK_H__B024D48F_090A_4F6F_A199_32996DF699B3__INCLUDED_
2010-05-13 09:19:00 1271
原创 vc模拟键盘输入的一些资料
vc模拟键盘输入keybd_event(VK_LWIN, 0, 0 ,0); keybd_event(M, 0, 0 ,0); keybd_event(M, 0, KEYEVENTF_KEYUP ,0); keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP,0); 方法1: HWND hwnd=::FindWi
2010-05-13 09:18:00 7144 2
原创 CArray,CMap,CList详解
1. 数组--CArray 访问方法及效率和普通的数组一样,比普通数组强大的功能是可以改变数组的大小。 Array采用队列方式存储数据,因而其内部数据元素是以物理方式顺序排列的, 所以检索、顺序执行GetAt()等函数的速度是相当快的。但是由于每次队列长度变化后,数据都要重新申请内存、拷贝内存、释放内存,因而 Insert/Add/RemoveAt()的速度都很慢。如果你使用
2010-05-12 10:03:00 3063
原创 实战DeviceIoControl之一:通过API访问设备驱动程序
Q 在NT/2000/XP中,我想用VC编写应用程序访问硬件设备,如获取磁盘参数、读写绝对扇区数据、测试光驱实际速度等,该从哪里入手呢?A 在NT/2000/XP中,应用程序可以通过API函数DeviceIoControl来实现对设备的访问—获取信息,发送命令,交换数据等。利用该接口函数向指定的设备驱动发送正确的控制码及数据,然后分析它的响应,就可以达到我们的目的。 DeviceIoCon
2010-05-10 13:46:00 831
原创 位运算补充
前言 看到有些人对位运算还存在问题,于是决定写这篇文章作个简要说明。 什么是位(bit)? 很简单,位(bit)就是单个的0或1,位是我们在计算机上所作一切的基础。计算机上的所有数据都是用位来存储的。一个字节(BYTE)由八个位组成,一个字(WORD)是二个字节或十六位,一个双字(DWORD)是二个字(WORDS)或三十二位。如下所示:
2010-05-08 16:44:00 519
原创 C位运算
12.1 位运算符C语言提供了六种位运算符: & 按位与 | 按位或 ^ 按位异或 ~ 取反 >> 右移12.1.1 按位与运算 按位与运算符"&"是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对
2010-05-08 16:34:00 1024
原创 DLL的工程DEBUG
方法1: 对DLL的工程DEBUG,在DLL工程的Project Setting->Debug->Executable for debug session中加入你的.exe的路径和名字。可以在dll中设置断点,.exe程序必须要调用dll中函数。方法2: 有个更好的方法:(我也没试过)在settings/debug中category选additional dlls,然后将你要调试的dll加进来。这
2010-05-07 14:43:00 3607
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人