回 帖 发 新 帖 刷新版面

主题:一个难以解决的简单问题

小弟刚学DELPHI,目前做一个dll处理字符串,将两个字符串合并生成另一个字符串:
library MyMaxTest;
uses
  SysUtils,
  Classes;
Function ReadCard(Pone : Pchar;Ptwo: Pchar;var OutBuffer : Pchar) : Integer;stdcall;
Var
  presult : Pchar;
Begin
  OutBuffer := Pchar(String(Pone) + String(Ptwo));
  Result := 1;
End;

{$R *.RES} 
exports
ReadCard;

begin
end.


编译工程或使用在DELPHI中声明和调用没有问题,可是给朋友使用powerbuilder声明调用后返回的字符串是不定的乱码字符。怎么测试调试都搞不定呀。小弟愚笨,望大虾们指点呀。小弟刚学DELPHI,目前做一个dll处理字符串,将两个字符串合并生成另一个字符串:
library MyMaxTest;
uses
  SysUtils,
  Classes;
Function ReadCard(Pone : Pchar;Ptwo: Pchar;var OutBuffer : Pchar) : Integer;stdcall;
Var
  presult : Pchar;
Begin
  OutBuffer := Pchar(String(Pone) + String(Ptwo));
  Result := 1;
End;

{$R *.RES} 
exports
ReadCard;

begin
end.


编译工程或使用在DELPHI中声明和调用没有问题,可是给朋友使用powerbuilder声明调用后返回的字符串是不定的乱码字符。怎么测试调试都搞不定呀。小弟愚笨,望大虾们指点呀。

回复列表 (共1个回复)

沙发

你不能在DLL中准备好字符串让外部程序来取,它取不出。应该由外部程序准备好字符串缓冲区由DLL来填。

我来回复

您尚未登录,请登录后再回复。点此登录或注册