delphi string转WideString的问题
需要用delphi调用vc写的dll中的一个函数,需要传递1个参数,该参数是WideString类型。
例如
SetPram(const prm:WideString);
如果在Delphi中传递空字符串SetPram('');就报错,说无效参数,空字符串中加个空格就没事,但是我的程序必须要传递一个空字符串,不能是空格,需要怎么做。我想应该是string类型的空字符串'',转成WideString不认造成的。
[解决办法]
procedure TForm1.Button1Click(Sender: TObject);
var
S:WideString;
begin
S:=StringOfChar(' ',1);
ShowMessage(S);
end;
[解决办法]
用PWideChar
[解决办法]
不行?你了。。。SHOW出看一下。。。
procedure TForm1.Button1Click(Sender: TObject);
var
s:WideString;
begin
s:=StringOfChar(' ',1);
ShowMessage(s);
Edit1.Text:=s+'sss';
end;
[解决办法]
肯定不行,以widestring返回是一空值,不是空格。。。
[解决办法]
急,先不要往自己的程序套,先把以下句show出看下果?(主要看下edit1的text中示的sss前有有一空格字符),再查你VC的DLL的widestring〈最好跟一下代,必要show出看下果〉步看果。。。
procedure TForm1.Button1Click(Sender: TObject);
var
s:WideString;
begin
s:=StringOfChar(' ',1);
ShowMessage(s);
Edit1.Text:=s+'sss';
end;
[解决办法]
?
procedure TForm1.Button1Click(Sender: TObject);
var
a:Widestring;
begin
a:=VarToStrDef(a,'');
ShowMessage(a);
Edit1.Text:=a+'sss';
end;
[解决办法]
可否?
procedure TForm1.Button1Click(Sender: TObject);
var
a:Widestring;
begin
begin
a:='s';
ShowMessage(StringReplace(a,'s','',[]));
Edit1.Text:=a+'s';
end;
end;
[解决办法]
var
s:string;
begin
s := '';
SetPram(StringToOleStr(s));
end;