WM_COPYDATA传送指针数据类型的问题

WM_COPYDATA传送指针数据的问题

  • var
           cdds:TcopyDataStruct;
         strAnsi:string;
    begin
          cdds:=PCopyDataStruct(M.lParam)^;
     strAnsi:=strpas(pchar(cdds.lpData ));
  • Memo1.Lines.Add(strAnsi);

以上代码在delphi2000执行没问题,但到xe5问题就来了

  • 改为strAnsi:=strpas(PAnsiChar(cdds.lpData));  正常
时间: 2024-08-01 06:10:14

WM_COPYDATA传送指针数据类型的问题的相关文章

c语言之指针数据类型的不同定义含义

定义 含义 int i; 定义整型变量i int* p; p为指向整型数据的指针变量 int a[n]; 定义整型数组a,它有n个元素 int* p[n]; 定义指针数组p,它由n个指向整型数据的指针元素构成 int (*p)[n]; p为指向含n个元素的一维数组的指针变量 int f(); f为返回整型值的函数 int* p(); p为返回一个指针的函数,该指针指向整型数据 int (*p)(); p为函数指针.该函数返回一个整型值 int **P; p是一个指针变量,它指向一个指向整型数据的

C# 进程间通信之二传递复杂数据类型(转)

从C#下使用WM_COPYDATA传输数据说到Marshal的应用 笔者曾在一个项目的实施过程中,需要使用WM_COPYDATA在本地机器的两个进程间传输数据.在C++中实现非常简单,但在C#中实现时却出现了麻烦.由于没有指针,使用COPYDATASTRUCT结构传递数据时,无法正确传递lpData.从网上搜寻文档,找到一个例子,是将COPYDATASTRUCT结构的lpData声明为string.这样虽然能传递字符串,但不能传递随意的二进制数据. 偶然地,我查阅MSDN帮助时,发现了Marsh

C学习笔记 - 指针

指针与数组 int a[] = {1,2,3,4,5}; int *p; p = a; printf("*a = %d\n",*a); printf("*p = %d\n",*p); printf("a[1] = %d\n",a[1]); printf("p[1] = %d\n",p[1]); 数组名就是数组的首地址.以上输出结果都一样.数组名基本上和指针等价.但a是常量,不可以进行a++或者a+=1等操作,而指针p则可以.

深入理解C指针之一:初识指针

简单来说,指针包含的就是内存地址.理解指针关键在于理解C的内存管理模式.C里面有三种内存: ①.静态全局内存(生命周期从程序开始到程序结束,全局变量作用域是全局,静态变量作用域在定义它们的函数内部): ②.自动内存(在函数内部声明的变量,在函数被调用时创建,作用域和生命周期都在函数内部): ③.动态内存(内存分配在堆上,根据需要释放,通过指针引用,作用域局限于引用的指针): 下面先来生命一个指针并打印其地址和值,这里p%指的是以十六进制的形式返回数据: #include <stdio.h> m

关于指针

指针是什么? 指针是C语言中的一类数据类型的统称.这种类型的数据专门用来存储和表示内存单元的编号,以实现通过地址得以完成的各种运算. 9.1.3 指针是一类数据的泛称 当某个数据 的数据类型是指针时,通常也简称这个数据是一个指针.很显然,在这里”指针“具有”名词“的含义.而指针表示 ”数据类型“含义时,显然具有“形容词”的意味.这种“一词多用”的现象,对于熟悉C语言特点的人来说并不值得大惊小怪,C语言本身也是这样的.比如,"[]"即可以作为类型说明符也可以作为运算符. 9.1.5 指针

《从零开始学Swift》学习笔记(Day 71)——Swift与C/C++混合编程之数据类型映射

原创文章,欢迎转载.转载请注明:关东升的博客 如果引入必要的头文件,在Objective-C语言中可以使用C数据类型.而在Swift语言中是不能直接使用C数据类型,苹果公司为Swift语言提供与C语言相对应数据类型.这些类型主要包括:C语言基本数据类型和指针类型. C语言基本数据类型 如表所述是Swift数据类型与C语言基本数据类型对应关系表. Swift语言中的这些数据类型与Swift原生的数据类型一样都,本质上都是结构体类型.我们可以他们的构造函数创建这些数据类型的实例.示例代码如下: va

C语言:指针的几种形式二

一.const指针 1.const int* p和int const* p:两者意义是相同的.指向的内容是只读数据,不可以q改变:但是指向的地址可以改变. 2.int* const p:必须先对指针初始化,而且指向的地址是只读的,不可以再被改变:但是指向的内容可以改变. 3.const int* const p:既不可以改变指针指向的地址,也不可以改变指针指向的内容. 二.指针数组:元素类型全是指针 类型名称*数组名[数组长度] 例如: char* pc[10]:字符指针数组,常用来可以表示一个

ios学习之旅---指针也不难

1.认识指针 #include <stdio.h> //基本数据类型作为函数參数传递是值传递 //void moveFront(int x ,int y) //{ // x = x + 2; //} void test() { // 确定当前坐标 int x = 20; int y = 150; printf("%p\n",&x); printf("%lu\n",&x); *((int *)(0x7fff5fbff76c)) = 22;

Delphi 指针大全

- 1 -目 录1 DELPHI 的指针-引用.................................................................................- 1 -2 delphi 的"引用/值"模型..............................................................................- 5 -3 谈谈 Delphi 的类型与指针.................