可以这样么?
function aa(const prim_len:Integer; var Buffer:pChar;
const wait_seconds,trace :Integer):Integer;
或者
function aa(const prim_len:Integer; var Buffer:Array of Char;
const wait_seconds,trace :Integer):Integer;
function aa(const prim_len:Integer; var Buffer:pChar;
const wait_seconds,trace :Integer):Integer;
或者
function aa(const prim_len:Integer; var Buffer:Array of Char;
const wait_seconds,trace :Integer):Integer;
解决方案 »
- dbgrid1.Options的属性怎么写
- 请问怎样设计MDI不同子窗体的界面?
- 请问delphi里的对齐按钮能让它旁边出现一个让人一目了然的对齐图标吗?
- 这段循环怎么改才对?
- 有关delphi中的rave报表分栏问题,其实在我看来也不太难,高分请教,在线等!!!
- 在D5编译过的控件,在D7居然没了那种效果
- 高分求助,在dll中传递参数的问题
- 一个关于线程的问题
- 刚起步,有些问题不是很清楚,请高手详解
- 恭喜delphi版!贺喜delphi版!有两位斑竹啦!!!繁荣昌盛!!耶!!!
- 求救:我在编程时用的数组的大小如果大于内存时会发生什么运行期的错误?
- 怎样使用install shield发布ACTIVEX控件
后面的stdcall是要注意是什么参数传递类型,还可以是cdecl,safecall,register等
结果因为:在Delphi中定义的Array of Char类型,使地址分配错位,怎么?
错位成:
var Buffer:pChar;
aa: Array [0..22] of char;
ii: Integer; Buffer := AllocMem(32);
StrpCopy(Buffer,'A000020001000000000100');
for ii:= 0 to 22 do
aa[ii] := Buffer[ii];
如果在Delphi中传入的是C_Send(23,aa,30,1);
但是在VC调试信息中看到的是C_Send(23,aa,22,30);
把数组的大小作为一个地址的值传给了第三个参数,使参数错位。
该怎么解决呢?
const wait_seconds,trace :Integer):Integer;