lpvoid在msdn中的描述为:

LPVOID Generic pointer type, equivalent to (void *). Should be used instead of LPSTR.

可以理解为 void *

但是在使用的时候经常感到疑惑。

比如创建线程 传值的时候  会碰到这个类型

HANDLE CreateThread (SEC_ATTRS SecurityAttributes,ULONG StackSize,SEC_THREAD_START StartFunction,PVOID ThreadParameter,ULONG CreationFlags,PULONG ThreadId
);

还有 读取内存的时候

BOOL ReadProcessMemory(  HANDLE hProcess,              // handle to the processLPCVOID lpBaseAddress,        // base of memory areaLPVOID lpBuffer,              // data bufferSIZE_T nSize,                 // number of bytes to readSIZE_T * lpNumberOfBytesRead  // number of bytes read);

有时候需要将类型转换成

int m = 10;

(lpvoid)&m;
但是有时候 不需要取地址符号

int m = 10;

(lpvoid)m;

这也是一种情况到底什么时候使用什么情况呢 ? 这也许每个人都思考过我是这样想的(不知道对不对,要是不对,请大家指点一下,感激不尽) 一个函数有传进参数的时候就需要  使用  不取地址的样式就像上面的这个  读取进程内存的函数

BOOL ReadProcessMemory(  HANDLE hProcess,              // handle to the processLPCVOID lpBaseAddress,        // base of memory areaLPVOID lpBuffer,              // data bufferSIZE_T nSize,                 // number of bytes to readSIZE_T * lpNumberOfBytesRead  // number of bytes read);
Parameters
hProcess
[in] Handle to the process whose memory is being read. The handle must have PROCESS_VM_READ access to the process.
lpBaseAddress
[in] Pointer to the base address in the specified process from which to read. Before any data transfer occurs, the system verifies that all data in the base address and memory of the specified size is accessible for read access. If this is the case, the function proceeds; otherwise, the function fails.
lpBuffer
[out] Pointer to a buffer that receives the contents from the address space of the specified process.
nSize
[in] Specifies the requested number of bytes to read from the specified process.
lpNumberOfBytesRead
[out] Pointer to a variable that receives the number of bytes transferred into the specified buffer. If lpNumberOfBytesRead is NULL, the parameter is ignored

.

传进参数不需要去地址  ,  是因为  有时候传进去的时候是局部变量,传进去之后,内存释放了。

加入是传地址,那么就出问题了 ,这时候只适合传  值!

相反,另一种情况,还是这个读取进程内存的函数。

我想将东西从 函数里面读取出来,相信只要基础过关的人都基本上只这时候用什么了 ,

没错 这时候就需要用  取地址的这种形式!  
 
int m = 10;

(lpvoid)&m;

lpvoid 在 win32 api 中的使用相关推荐

  1. Win32 API中内存的申请与释放

    之前在做内存泄漏分析模块功能开发时,发现在windows下的输出结果并不是很准确,很多内存泄漏都显示是在windows的api或crt函数中,比如CoInitializeEx,stderror,IsO ...

  2. 串口编程之一: WIN32 API 中串口DCB 结构的介绍

    在应用WIN32  API 对串口进行编程时, 必定会使用到DCB 结构. 下面的DCB 结构的一些介绍. 首先是DCB 结构. typedef struct _DCB {           DWO ...

  3. win32 api中的Beep,PlaySound,MessageBeep等一系列函数编译通过但是没有声音的原因

    1.win32 api是基于x86架构的应用接口,也就是32位的,如果使用了x64的架构这几个函数就无法发出声音. 2.如果出现了链接错误一般是你的项目中没有包含相关的库文件,Beep,Message ...

  4. 深入浅出VC++串口编程之基于Win32 API

    1.API描述 在WIN32 API中,串口使用文件方式进行访问,其操作的API基本上与文件操作的API一致. 打开串口 Win32 中用于打开串口的API 函数为CreateFile,其原型为: H ...

  5. 深入浅出VC++串口编程--基于Win32 API

    1.API描述 在WIN32 API中,串口使用文件方式进行访问,其操作的API基本上与文件操作的API一致. 打开串口 Win32 中用于打开串口的API 函数为CreateFile,其原型为: H ...

  6. C#调用Win32 api学习总结

    转载:https://blog.csdn.net/bcbobo21cn/article/details/50930221 从.NET平台调用Win32 API Win32 API可以直接控制Micro ...

  7. Win32 API 概论

    1.1为什么使用 Win32 API 在Windows程序设计领域处于发展初期时,Windows程序员可使用的编程工具唯有API函数.这些函数在程序员手中犹如"积木块"一样,可搭建 ...

  8. Win32 API概论

    1.1为什么使用 Win32 API 在Windows程序设计领域处于发展初期时,Windows程序员可使用的编程工具唯有API函数.这些函数在程序员手中犹如"积木块"一样,可搭建 ...

  9. WIN32 API:绘图函数

    二.创建GDI绘图对象 今天我们要讨论的是Win32 API中最有有趣的部分───用绘图函数完成图形输出.可以说,所有前面讲的内容都是本课程的前期准备.当时,我们在一些试例程序中偶尔用了一些绘图函数, ...

最新文章

  1. 删除排序链表中的重复元素
  2. Recover Binary Search Tree
  3. 云闪付怎么设置不跳华为支付_【教程】华为Pay用闪付券撸京东E卡!
  4. Hack Into Linux Packet Schedulers
  5. kotlin学习笔记——委托属性
  6. CentOS 7安装nginx+php+mysql环境
  7. 关于javafx支持IOS、android等智能手机解决方案
  8. php 随机码类,php随机类型验证码
  9. java jdbc close原理_Java开发笔记(一百四十六)JDBC的应用原理
  10. ...三个点es6用法
  11. 【信号与系统-可视化】基本信号的产生( Python Numpy和Matplotlib实现)
  12. 计网学习记录,burp抓包等学习记录
  13. 将加密的pdf转化成word
  14. Android 判断邮箱格式是否正确
  15. (轉貼)《程序员》推荐C++ 图书三人谈 (C/C++)
  16. 【机器学习算法实践】AdaBoost是典型的Boosting算法,加法模型多个弱分类器流水线式的提升精度,更关注那些难处理的数据
  17. Expat XML parser
  18. 获取谷歌语音库单词发音
  19. 在一张表中过滤出同一张卡号对应多个户名数据
  20. MQTT Web Toolkit - MQTT 在线测试工具正式发布

热门文章

  1. 玩转华为ENSP模拟器系列 | 配置单段动态VPWS示例 - 使用LSP隧道
  2. 机器学习基础以及在pynq-Z2上部署Faster-RCNN的项目学习1
  3. 涿州阳光计算机学校学历,涿州职教中心计算机专业高考班人才培养方案.pdf
  4. [Data Structure]11. 图的实现和遍历
  5. 京东妙手如何去淘特搜同款低价货源?
  6. qt与python结合_pyqt5与matplotlib的完美结合实例
  7. 【HTTP协议与网络编程】HTTP概念和消息
  8. 关于互联-这些你可能很想知道
  9. 小米假android8.0,小米的Bug太多?小米A1已暂停Android 8.0升级
  10. 计算机硬件的基本配置