Windows在C语言的基础之上又定义了一些Windows下的数据类型;下面学习一下LPSTR;
LPSTR和LPWSTR是Win32和VC++所使用的一种字符串数据类型。LPSTR被定义成是一个指向以NULL(‘\0’)结尾的32位ANSI字符数组指针,而LPWSTR是一个指向以NULL结尾的64位双字节字符数组指针。
先看LPSTR;
#include <stdio.h>
#include <Windows.h>
int main()
{
LPSTR szstr1 = "windows data type, string";
CHAR lpstr[50];
MessageBox(NULL, szstr1, "LPSTR", MB_OK);
CopyMemory(lpstr, szstr1, lstrlen(szstr1)+1);
MessageBox(NULL, lpstr, "CHAR[]", MB_OK);
system("pause");
return 0;
}
包含 Windows.h 之后可以调用 Win32 API 和使用Windows数据类型;
在开发环境转到定义看一下;
在 winnt.h 中,
typedef CHAR *LPSTR, *PSTR;
typedef CONST CHAR *LPCSTR, *PCSTR;
LPSTR由 typedef 定义为指向 CHAR 类型的指针;
而 CHAR 类型,在 winnt.h 中,
#ifndef VOID
#define VOID void
typedef char CHAR;
typedef short SHORT;
typedef long LONG;
#endif
CHAR是 typedef 定义的char,但是是包含在一个 #if 中;
CopyMemory是一个Windows API函数,它能将一块内存数据从一个位置复制到另一个位置;
运行如下,
可以参考下面两文的相关描述,
VC++ 字符串操作学习总结_bcbobo21cn的博客-CSDN博客
C语言typedef和Windows数据类型_typedef word_bcbobo21cn的博客-CSDN博客