2016-06-22 17 views
0

私はファイルを暗号化するために使用されるC++クラスを持っています。私は5.6.x-nts-Win32-x64 PHP用にswigを使ってラップしました。使用法:PHP拡張CLIクラッシュ

<?php 

require("crypt.php"); 

$e = new CCrypt(); 

//(plain, encrypted) 
if ($e->EncryptFile("sample","enc/sample")) { 
    print "Encrypted file\n"; 
} 
$e = NULL; 
print "Goodbye\n" 
?> 

問題は、これがデバッグするとき、それがクラッシュする場所についての延長コードで一貫したラインで、時々を動作するようですです。エラーがヒープを破損しています。私はPHP拡張モジュールを開発するのが初めてで、サポートされていない64ビットPHPバージョンやCLI固有のものと関係があるのだろうかと思います。 はPHPから実行可能ファイルとして実行した場合、暗号化が正常に動作言及するのを忘れた/

UPDATE:SWIGは(まだ)サポートPHP 7ません。

+3

プラグインの内部でクラッシュが発生するため、PHPコード自体は本質的に無駄です。あなたがそのコードを提供していないので、私たちはあなたを助けることはできません。 –

+0

基本的に何が使用されているのかを知るためにのみ提供されています。拡張コードはここに含めるには余りにも膨大で、独自仕様ですが、わかります。私はswigによって生成されたインターフェースラッパーコードへのリンクを最大で与えることができますが、それは長くて醜いです。 – aeh

+1

ようこそSOへようこそ:SOユーザーがあなたを助けることができるように再現性を高めるために、[最小、完全、および検証可能なサンプルを作成する](http://stackoverflow.com/help/mcve)が重要です。 –

答えて

0

SWIGがSTLを実装していないことがわかりました。ラッパーソースからSTLを削除したとき、拡張機能は期待どおりに機能しました。私は後で、適切なSWIGのファッションにもかかわらず、STLを戻しました!