いつもお世話になります。
Windows7 Ultimate + D2007
下記のように、パラメータを付けてウェヴページを表示したいのですが、
「'string' と 'PWideChar' には互換性がありません」とコンパイルエラーが発生します。
パラメータは、毎回、画面より、Edit1.Text から受け取る予定です。
何か良い方法はありませんでしょうか。
無理矢理、型キャストしてみましたが、文字化けしてしまいました。
よろしくお願いいたします。
※以下サンプル(コンパイルエラーが発生するため実行できない)
uses
UrlMon;
procedure TForm1.Label1Click(Sender: TObject);
var
Wstr1, Wstr2, Wstr3: String; //PWideChar;
begin
Wstr1 := 'http://www.hogehoge.jp/index.php?USER=';
Wstr2 := 'ABC123';
Wstr3 := Wstr1 + Wstr2;
HlinkNavigateString(nil, Wstr3);
end;
[DCC エラー] Unit1.pas(60) E2010 'string' と 'PWideChar' には互換性がありません
これでは?
procedure TForm1.Label1Click(Sender: TObject);
var
Wstr1, Wstr2, Wstr3: String; //PWideChar;
begin
Wstr1 := 'http://www.hogehoge.jp/index.php?USER=';
Wstr2 := 'ABC123';
Wstr3 := Wstr1 + Wstr2;
HlinkNavigateString(nil, PChar(Wstr3));
end;
第2引数の型はPWideCharなんだから、
var
Wstr1, Wstr2, Wstr3: WideString;
begin
Wstr1 := 'http://madia.world.coocan.jp/cgi-bin/DelphiBBS/wwwlng.cgi';
Wstr2 := '?print+201001/10010114.txt';
Wstr3 := Wstr1 + Wstr2;
HlinkNavigateString(nil, PWideChar(Wstr3));
end;
>無理矢理、型キャストしてみましたが、文字化けしてしまいました。
この場合だとStringをWideStringにキャストしてから更にPWideCharにキャストします。
HlinkNavigateString(nil, PWideChar(WideString(Wstr3)));
> この場合だとStringをWideStringにキャストしてから
> 更にPWideCharにキャストします。
2回キャストは気づきませんでした。
うまくいきました。ありがとうございました。
今後ともよろしくお願いします。
ツイート | ![]() |