DelphiのAPPとDelphi DLLの間でstrings
を共有すると、use節の最初の単位としてSharemem
をappとdllプロジェクトの両方のソースに追加する必要があります。DelphiのSharemem - 必要がない場合
しかし、Pchars
しか受け入れないdllメソッドの一部で、私はstrings
を使用するdllメソッドの中にsharememも使用する必要がありますか?私は、サンプルコードを示しましょう:そのシンプルで役に立たない場合
procedure ShowMyCustomMessage(aMessage : Pchar);
var
vUselessString : string;
begin
vUselessString := aMessage;
ShowMessage(vUselessString);
end;
exports
ShowMyCustomMessage;
を、dllがPchar
を受け入れているが、エクスポートされたメソッド内でdllがstring
VARを作成します。 ShareMem
も追加する必要がありますか?
WideString
についてWideString
のパラメータを渡すにはSharemem
を使用する必要がありますか?
廃止予定のborlndmm.dllメモリマネージャを使用する場合は、AFAIK 'ShareMem'を使用します。しかし、Delphi 2007以降、これは良いアイデアではありません.FastMM4に基づいたSimpleShareMemのほうがずっと高速です。 –
@Arnaud borlndmmは廃止されましたか?私は誰もそれについて話しているのを見たことがありません。 –
@RafaelColucci:*古い* borlndmm.dll。紛らわしく、すべてのメモリマネージャDLLにはこの名前が付いています。現在のバージョンのDelphi/C++ Builderは、 'borlndmm.dll'にコンパイルされたFastMMを使用しており、現在では数年間使用されています。 –