Delphi 2009中的COM服务器AnsiString参数

时间:2009-04-20 09:24:41

标签: delphi com unicode delphi-2009

我有一个带有两个字符串的方法的简单COM dll。在delphi的类型库编辑器中,这些字符串被定义为LPSTR。这转换为TLB文件中的PChar。当从D2007升级到D2009时,这成为一个问题,因为PChar现在已经从PAnsiChar变为PWideChar(当它从ridl文件生成时,它仍然成为TLB文件中的PChar)。接口需要与之前的接口兼容......

有没有办法让PAnsiChar作为TLB文件中的类型,以便它对应于D2007中的先前声明?

1 个答案:

答案 0 :(得分:2)

您可以自己修改生成的代码。最简单的方法可能是重新宣布PChar:

type
  PChar = PAnsiChar;

在生成的单元之上。

或者只是用PAnsiChar搜索并替换PChar的所有出现(如果需要)。

顺便说一下,它是一个奇怪的COM DLL,因为它不兼容自动化。通常,BSTR(Delphi中的WideString)用于COM中的字符串。