求助:OCX如何通过widestring传递Byte数组的问题.(200分)

  • 主题发起人 主题发起人 real2001
  • 开始时间 开始时间
R

real2001

Unregistered / Unconfirmed
GUEST, unregistred user!
如题所述.请高手帮忙.谢谢.
 
你到以下地址去找找,可能找得到你需要的答案。
http://iinsnian.cnblogs.com/
这地址里介绍了很多DELPHI的技巧,不知道你的运气好不好。
 
type
PByteArr = ^TByteArr;
TByteArr = array of Byte;

function ByteArrayToWideString(Data: TByteArr): WideString;
var
Len: Integer;
begin

Len := Length(Data);
SetLength(Result, Len shr 1);
Move(Data[0], Pointer(Result)^, Len);
end;


function WideStringToByteArray(const Data: WideString): TByteArr;
var
Len: Integer;
begin

Len := Length(Data);
SetLength(Result, Len shl 1);
Move(Pointer(Data)^, Result[0], Len shl 1);
end;


procedure TForm1.Button1Click(Sender: TObject);
var
W: WideString;
D: TByteArr;
begin

W := 'abc汉字';
D := WideStringToByteArray(W);
Caption := ByteArrayToWideString(D);
end;
 
非常感谢 QQ在线 的回答,你提供的答案是对的.
我发现我的问题不是在这.具体是这样的,现有一个OCX组件,函数原型是如A(byte * src),可通过delphi导入后,生成的lib.pas文件中,接口变成了A(var src :widestring),那我具体应该怎么传递byte数组进去呢?
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
911
SUNSTONE的Delphi笔记
S
后退
顶部