兩條Vc陳述句,轉換成Delphi怎么寫?謝謝~~~
CString m_key;
m_key = "FFFFFFFFFFFF";
m_key.GetBuffer(12)
uj5u.com熱心網友回復:
mfc 的 CString 跟 vcl 的 AnsiString 各自實作不一樣,不能直譯。CString::GEtBUffer 是在CString物件內部再分配一段指定大小的buff回傳,常用來將 CString 跟 char* 轉換。
你就說你想干嘛吧。
uj5u.com熱心網友回復:
直接 。。。PChar('FFFFFFFFFFFF');
uj5u.com熱心網友回復:
DLL 帶的函式 int a_hex(char *a,unsigned char *hex,unsigned char len);vc例子是這樣呼叫的
CString m_key;
m_key = "FFFFFFFFFFFF";
unsigned char key[7];
memset(key,0,7);
a_hex(m_key.GetBuffer(12),key,12);
m_key.ReleaseBuffer();
我想知道delphi是怎么呼叫,就是引數如何傳遞。。。。
uj5u.com熱心網友回復:
頂上去啊,呵呵uj5u.com熱心網友回復:
delphi 呼叫,第一二個引數傳遞指標,第三個傳遞byte型別var
str: string;
len: byte;
key1: array of char;
key2: array of char;
begin
str := 'FFFFFFFFFFFF';
setlength(key1, 12);
move(str[1], key1[0], 12);
setlength(key2, 7);
key2 := #0; //功能等于memset(key,0,7);
len := 12;
a_hex(@key1[0], @key2[0], len);
end;
uj5u.com熱心網友回復:
具體要看函式是干嘛用的,如何用的,如果第一個引數只是帶資料進去,第一個引數可以直接傳@str[1] 就不需要key1了uj5u.com熱心網友回復:
var m_key:string;
key:array[0..7] of ansichar;
begin
fillchar(key,7,0);
m_key = "FFFFFFFFFFFF";
a_hex(pcahr(m_key),@key,12);
uj5u.com熱心網友回復:
var
m_key:PChar ;
s:string;
begin
s = "FFFFFFFFFFFF";
GetMem(m_key,12);
StrPCopy(m_key,Copy(s,1,12));
FreeMem(m_key);
end;
uj5u.com熱心網友回復:
如果是僅僅拿來使用可以簡單直接譯,如果是作函式形參等需要規定記憶體長度的,可用delphi定義array [0..1024] of char
使用StrPCopy進行字串裝載。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/88764.html
