GUI模式下读取DLL参数为乱码,控制台模式下正常未知参数的字符编码类型 但DEMO文件是这样写的
type
PtsrServerInfo = ^TtsrServerInfo;
TtsrServerInfo = packed record
ServerName : Array [0..29] of Char;
WelcomeMessage : Array [0..255] of Char;
end;DEMO采用的是控制台模式Procedure DoGetServerInfo;
var
ServerInfo: TtsrServerInfo;
begin
with ServerInfo do
begin
writeln(format('Servername: %s',[Servername]));
writeln(format('Welcome Message: %s',[WelcomeMessage]));
end;
end;显示正确中文+英文
============================================在窗口模式(GUI) procedure TForm1.Button2Click(Sender: TObject);
var
ServerInfo: TtsrServerInfo;
Si: string;
begin
Si := serverinfo.ServerName ;
ShowMessage(si);end;则为乱码...困扰多日....请高人解决
type
PtsrServerInfo = ^TtsrServerInfo;
TtsrServerInfo = packed record
ServerName : Array [0..29] of Char;
WelcomeMessage : Array [0..255] of Char;
end;DEMO采用的是控制台模式Procedure DoGetServerInfo;
var
ServerInfo: TtsrServerInfo;
begin
with ServerInfo do
begin
writeln(format('Servername: %s',[Servername]));
writeln(format('Welcome Message: %s',[WelcomeMessage]));
end;
end;显示正确中文+英文
============================================在窗口模式(GUI) procedure TForm1.Button2Click(Sender: TObject);
var
ServerInfo: TtsrServerInfo;
Si: string;
begin
Si := serverinfo.ServerName ;
ShowMessage(si);end;则为乱码...困扰多日....请高人解决
解决方案 »
- 最新版的ehlib支持多表头输出到excel吗
- 关于wmp问题
- 200分征求意见
- 请教:sql server 2000 中的 bigint ,是 8 位长度,是吗?在delphi 是哪个类型和它对应?谢谢!
- 打印模版设计?
- 想更改Form的图标和Caption颜色,如何改?
- delphi6报表设计器横向打印问题
- 菜鸟的问题
- 关于 2进制 文件的读写 和 图形的绘制
- Delphi XE3启动不成功 提示没有注册类 Borland.Build.Tasks,Common.dll
- 在idtcpserver的execute事件中使用adoquery控件出错
- 简单的文件函数的错误.不知道为什么 哪里都没问题啊.应该 请大家帮忙看看
var
ServerInfo: TtsrServerInfo;
Si: string;
begin
Si := strpas(serverinfo.ServerName) ;
ShowMessage(si); end;
我刚才试了一下,发现你的代码并不会显示乱码......var
str:TtsrServerInfo;
s:string;
begin
str.ServerName:='teset中123';
s:=strpas(str.ServerName);
showmessage(s);
end;这个在d7下也是正常显示的......
所以需要通过s:=strpas(str.ServerName);
才可以提取到实际字符串
这样可以在DLL中直接将值传递出去
乱码可能是DLL中ServerName的“地址”