`

LPVOID类型

 
阅读更多

LPVOID是一个没有类型的指针,也就是说你可以将任意类型的指针赋值给LPVOID类型的变量(一般作为参数传递),然后在使用的时候再转换回来。 可以将其理解为long型的指针,指向void型。

头文件windef.h中有
typedef void far *LPVOID

32-bit指针,指向一个未指定类型的数据

例如:

class CMyClass {   
    void Start();  
    static UINT StartThread(LPVOID lParam);   
};   
void CMyClass::Start() {   
   AfxBeginThread(StartThread, this);   
}   
UINT CMyClass::StartThread(LPVOID lParam) {   
  CMyClass * pMyClass = (CMyClass*)lParam;  
  ...   
  return 0;   
}

 

那么void是什么东西?
 void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。

far又是什么东西

  far关键字就是和内存寻址有关。因为代码段和数据段都有一定的限制,比如64K。默认是near近指针,数据和代码可以从本段内调用。如果要调用段外的变量或函数就要声明成far远指针,典型的用法就是调用DLL的远堆变量,它是“远”的。far和near在现在Win32平台下没什么关系了 因为现在内存寻址是flat模式, 也就是平坦的4GB寻址

分享到:
评论

相关推荐

    C++数据类型与C#数据类型之间的对应关系

    * LPVOID:在C++中,LPVOID类型是一个指针类型,而在C#中,它对应的是IntPtr或Object类型。 三、其他类型 在C++中,我们还有其他一些类型,如HRESULT、HANDLE、LPARAM等,而在C#中,我们也有相应的类型。下面是C++...

    vb-pb数据类型对照

    #### Lpvoid类型 - **VB**: 不直接支持 `Lpvoid` 类型,但在处理通用数据指针时,会使用 `Long` 类型。 - **PB (16Bit)**: 使用 `RefStructstruct_inst` 类型。 - **PB (32Bit)**: 使用 `RefStructstruct_inst` 类型...

    易语言CreateThread启动线程传递多个类型参数.rar

    2. **线程参数**:通常,`CreateThread`函数只能传递一个LPVOID类型的参数,这个参数可以是一个指针,指向包含所有需要传递的数据的结构。在易语言的示例中,为了传递多个不同类型参数,我们需要创建一个自定义数据...

    VC 创建内存映像文件对象并使用.rar

      //将文件的视图映射到一个进程的地址空间上,返回LPVOID类型的内存指针   lpData=(LPSTR)MapViewOfFile(hMapping,FILE_MAP_ALL_ACCESS,0,0,0);   if(lpData==NULL)   {   AfxMessageBox(...

    在Windows2000下取得系统CPU占有率.pdf

    - `SystemInformation`:一个LPVOID类型的指针,用于接收返回的系统信息数据。 - `SystemInformationLength`:指定`SystemInformation`缓冲区的大小,根据所需信息类型确定。 - `ReturnLength`:如果`...

    VC++ 多线程编程入门教程(PDF)

    线程函数通常定义为返回DWORD类型的函数,接受一个LPVOID类型的参数。 其次,线程同步是确保多线程程序正确运行的关键。在VC++中,可以使用各种同步对象,如临界区(Critical Section)、互斥量(Mutex)、信号量...

    操作系统实验-线程的创建和撤消.pdf

    - 每个线程函数都有一个指向LPVOID类型的参数,可用来向线程函数传递数据。 2. 线程的挂起与恢复: - SuspendThread()函数用于挂起线程的执行,而ResumeThread()函数用于恢复线程的执行。在多线程编程中,这两种...

    VC++通过内存映射实现Exe程序间的数据交换

    VC++通过内存映射在程序间交换数据,通过这个小实例,你会了解到以下技巧:在内存映像中创建对象,将文件视图映射到一个进程的地址空间上、返回LPVOID类型的内存指针、给映像内存数据赋给本地变量、释放映像内存、...

    c++与pb的数据类型转换关系.txt

    ### C++与PB的数据类型转换关系 在C++与PB(PowerBuilder)之间进行数据交换时,正确地处理数据类型转换至关重要。本文将详细介绍这两种语言之间的数据类型转换规则及其应用场景,帮助开发人员更好地理解并应用这些...

    VC++6.0常用数据类型及其操作详解

    + LPVOID:指向一个未指定类型的 32 位指针。 + LPDWORD:指向一个 DWORD 型指针。 * 句柄型: + HANDLE:Object 句柄。 + HBITMAP:bitmap 句柄。 + HBRUSH:brush 句柄。 + HCURSOR:cursor 句柄。 + HDC:...

    Cstring与其他类型的转换

    22. LPVOID:32位,指向未指定类型的指针。 23. 其他如LPBOOL、LPBYTE等,表示对应类型的指针。 二、数据类型转化 2.1 数学类型与字符串转换 数学类型如int、double可以转换为字符串,反之亦然。例如,可以使用...

    VC常用数据类型介绍,数据类型

    - `LPVOID`:32位指针,用于指向未知类型的内存地址。 - 其他`LP*`和`P*`类型:如`LPBOOL`、`PBYTE`等,它们是对应基本类型的指针,用于传递或接收参数。 3. **其他类型和关键字**: - `UCHAR`、`UINT`、`ULONG`...

    c++,c#函数类型对照表

    - 当将C++中的`HANDLE`、`LPDWORD`和`LPVOID`类型映射到C#时,通常使用`IntPtr`类型。 - 对于C++中的字符串类型如`LPCTSTR`、`LPCTSTR`、`LPSTR`、`Wchar_t*`、`LPWSTR`等,在C#中一般映射为`String`或`...

    Win Api与C#数据类型对照表\api对照表

    5. `LPVOID`:对应于C#的`void*`,通常映射为`IntPtr`。 6. `LPCSTR` 和 `LPCTSTR`:表示字符串,C#中可以使用`string`,但在P/Invoke中通常需要转换为`StringBuilder`或使用`[MarshalAs(UnmanagedType.LPStr)]`属性...

    win api 编程中的数据类型

    11. **LPVOID**: 通用的指针类型,可以指向任何类型的内存。 12. **LPSTR/LPWSTR**: 分别表示指向`char`和`wchar_t`字符数组的指针。 13. **LPCSTR/LPCWSTR**: 常量版本的`LPSTR/LPWSTR`,通常用于函数参数,表明...

    MFC中的数据类型.pdf

    12. **LPVOID**: 32位指针,指向一个未指定类型的数据,可用于泛型编程。 13. **LPRESULT**: 32位数值,作为窗口函数或回调函数的返回值。 14. **UINT**: 在Win16中是16位无符号整数,在Win32中是32位无符号整数。 ...

    API中常用数据类型

    12. LPVOID:32位指针,用于指向任何类型的数据,灵活性很高,但需要类型转换。 13. LPRESULT:32位数值,用作窗口函数或回调函数的返回值。 14. UINT:无符号整数,根据平台(Win16或Win32)可能是16位或32位。 ...

    VC数据类型详解

    - 指针类型如`LPBOOL`, `LPBYTE`, `LPCOLORREF`, `LPCSTR/LPSTR/PCSTR`, `LPCWSTR/LPWSTR/PCWSTR`, `LPCTSTR/LPTSTR/PCTSTR`, `LPVOID`, `LPDWORD`等,用于指向不同类型的数据或字符串。 - `VARIANT`:变体类型,...

    VC数据类型 (摘) PDF文档

    23. **LPVOID**:通用指针类型,可以指向任何类型的变量。 #### 三、总结 通过以上介绍,我们可以看到VC中定义了大量的数据类型,这些类型大多是对C++标准类型的一种扩展或者别名定义。了解这些数据类型对于使用VC...

    VC常用数据类型列表.pdf

    指针类型如LPVOID、LPDWORD等,LP前缀表示Long Pointer,表示32位指针,而在16位系统中LP和P可能有区别。 MFC库中还有一些特有的数据类型,如POSITION,它用于标记集合中元素的位置,常用于容器类如CList或CMap。...

Global site tag (gtag.js) - Google Analytics