Delphi XE2 内で使用するために、一部のレガシー コードを Delphi 7 でラップする必要があります。私の質問は単純に思えますが、見つけたすべての例を試してみましたが、すべて失敗しました。基本的に、D7 と DXE2 の間で文字列を渡すことができる必要があります。私が理解できる限り、最も安全な方法は pchar を使用することです (borlandmm dll を出荷したくないため)。そのため、DLL は D7 で作成され、Delphi XE2 によって呼び出されます。
私のインターフェースは
私のDLLで:
function d7zipFile(pFatFile,pThinFile : PChar) : integer; stdCall;
function d7unzipfile(pThinFile,pFatFile : PChar) : integer; stdCall;
unzipfile 関数で pFatFile 名を BACK に渡す必要があります。
私の呼び出しコードで:
function d7zipFile(pFatFile,pThinFile : PChar) : integer; external 'd7b64zip.dll';
function d7unzipfile(pThinFile,pFatFile : PChar) : integer; external 'd7b64zip.dll';
誰かがこれらを実装するための最良の方法を手伝ってくれませんか?
明らかに、実際の zip/unzip コードを探しているわけではありません。D7 内で問題なく動作しています。私が試したさまざまなタイプ(PWideChar、WideString、ShortStringなど)ですべてエラーが発生するため、string / pcharパラメーターを宣言して操作する方法を知りたいです。
したがって、両方のファイル名に対して d7zipFile 関数で単純に showMessage を実行できれば幸いです。そして、pFatFile 変数に対して delphiXE2 で showMessage を実行できるようになりました。これは、文字列が双方向に送信されたことを意味します。