delphi是有BYTE类型的,和VC的一样,unsigned 8-bitvar Buffer: Pchar;
begin
GetMem(Buffer, Size);
然后将Buffer传给strCard
begin
GetMem(Buffer, Size);
然后将Buffer传给strCard
解决方案 »
- Fastreport是不是发春了
- 如何控制项目进程数
- 拦截WM_NCHITTEST消息进行处理后.图片相关控件(如TImage)的事件失效了
- 关于FastReport3的小问题
- 十万火急,indy中的readbuff过程应该写在哪个事件里面
- 哪位大哥有rational rose2003的lisence key
- unicode与ascii码的有什么不同?如何把UNICODE转成ASCII呢?
- 100分,不够再给,什么都缺,唯一不缺的是分,添加记录的问题,有点怪,高手请进,在线等待
- 如何列出并存取网上邻居文件夹中的文件资料?
- 菜鸟问题,如何知道当前是第几条记录???
- 考高级程序员的资格。
- 那些函数能返回当前的时,分,秒 ?
interface
function IssueCard(var Name:array of Byte):integer;StdCall;implementationconst
W_DLL ='wdll2000.dll';function IssueCard;external W_DLL;用以下方式调用:
var
SerialNo:array[0..10] of Byte;
begin
IssueCard(SerialNo);
end;
可是会出错
function IssueCard(var Name:PChar):integer;StdCall;
这样使用:
var
a:array[0..10] of char;
SerialNo:PChar;
begin
SerialNo:=@a;
IssueCard(SerialNo)
end;
也不对.
如果是输入的,那么使用PBYTE类型!!
如果是输出的,那么使用BYTE类型!!
不都是字节型的!
一般Delphi出现access violation提示时,是因为访问了一个不存在的地址造成的,可是我明明用a:array[0..10] of char;声明过空间了,奇怪...
BYTE nmbCard[10];
IssueCard((BYTE*)nmbCard);
extern "C" AFX_EXT_API int WINAPI IssueCard(BYTE *strCard);各位高手:在Delphi中如何定义 BYTE *strCard 指针?????????????????????
所以可以试试function IssueCard(PBYTE strCard): Integer; stdcall; external 'Your_Dll_Name';又如 gfzhx(小小) 所言,PByte初始化是需要分配内存