0

私は Delphi でプログラムを作成しており、アセンブリ コード (Pipes.pas) を含むライブラリを含めています。StdWndProc という関数を呼び出すコードを実行すると、アクセス違反が発生します。プロセスは、アセンブリ コードを含むアセンブリ関数です。

しばらく前に、このコード (Pipes.pas) を更新して Unicode サポートやその他のものを含めましたが、このアセンブリが何をしているのかわかりませんでした。ここで何がうまくいかないのかについてのアイデアはありますか?

私は 64 ビット マシンで実行しています。このアセンブリが 32 ビットであり、64 ビット プロセッサで正しく実行されていない可能性があります (プロジェクトは 32 ビット ビルドを対象としています)。

4

2 に答える 2

7

32 ビット プロセスは 32 ビット コードを実行します。そのコードがアセンブラからコンパイルされたのか、Delphi やその他の言語からコンパイルされたのかは問題ではありません。

マシンが 64 ビットか 32 ビットかに関係なく、32 ビット プロセスは 32 ビット コードを実行します。64 ビット マシンでは、WOW64 と呼ばれるエミュレートされた 32 ビット マシンで 32 ビット プロセスが実行されます。

概念的には、あなたが試みていることは可能であるため、コードにバグがあるという結論になります。

于 2013-08-09T06:20:25.970 に答える