Delphi 中的 Var buffer 开类型参数
以下是在网上收集的一些对无类型参数的说明.个人理解无类型变量就是一个指针.
象Delphi中function Read(var Buffer; Count: Longint): Longint; override;象Buffer这样没有类型的参数究竟应该怎么给参数????
这说明Buffer是通过地址方式传递的,一般说来只要是一段内存区域就行。
var Buffer; const buffer;
这些没类型说明的形参说明是取地址的首地址。
类型 首地址
string string[1]
char 自己
integer 自己
record 自己
array arr[0]
pchar pchar()^
pointer pointer()^
otherPointer otherPointer()^ PInteger()^之类的
一般用首地址的方法或函数除了首地址外,都有一人count的参数,一般我们用
length(string), sizeof(record), sizeof(type) * lengh
如果你在写reocord中有string,请为它分配内存: string[len], or str: array[0..len] of char
Buffer1:Array of char;
Buffer2:Array [0..2048] of char;
Buffer1 和 Buffer2 在使用上是没有区别的,如:
Buffer1[10] 和 Buffer2[10]等价----char 类型
Buffer1 和 Buffer2等价 ----------pointer 类型
所以: &
相关文档:
[code=Delphi(Pascal)]
unit uThreadPool;
{ aPool.AddRequest(TMyRequest.Create(RequestParam1, RequestParam2, ...)); }
interface
uses
Windows,
Classes;
// 是否记录日志
// {$DEFINE NOLOGS}
type
TCriticalSection = class(TObject)
protected
FSec ......
var
ExcelFile:string;
SourceRange,DesRange:Variant;
Row,Column,i:integer;
begin
if OpenDialog1.Execute then
begin
ExcelFile:=OpenDialog1.Files[0];
if not FileExists(ExcelFile) then Exit;
end
else
Exit;
try
ExcelApp:=CreateOleObject('Excel.Application');
......
用VC++6.0编写了一个简单的dll,里面包含一个减法函数subtract(int a,int b),Dll命名为ff.Dll
代码如下:
1.ff.cpp:
// ff.cpp : Defines the entry point for the DLL application.
//
#include "StdAfx.h"
#include "ff.h"
BOOL APIENTRY DllMain( HANDLE hModule,
......