-1

Delphi XE3、Windows 7 Pro 64bit を使用しています。私のアプリケーションは PC で正常に動作していますが、ユーザーから、Win XP および (!!) Win 7 で起動時にアプリケーションがクラッシュすると言われました。

Win 7 でアプリを実行しようとしましたが、通常のユーザー (管理者ではない) としてログインしました - 動作します。これで、Windows XP で仮想マシンをインストールしましたが、起動時にアプリがクラッシュします。

何が問題なのかを見つける必要がありますが、どうしようもありません。

デバッガーを使用できない限り (その VM に Delphi がインストールされていません)、MessageBox(0, 'Hello', 'Test', MB_OK);アプリのさまざまな場所にデバッガーを配置して、それが発生する場所をキャッチしようとしましたが、これが私が見つけたものです:

プロジェクトソースにこれがあります:

MessageBox(0, 'Hello', 'Test', MB_OK); // shows OK
Application.CreateForm(TfMain, fMain);
MessageBox(0, 'Hello', 'Test', MB_OK); // doesn't show - crash before this line

そして、これはOnCreate私のメインフォームと呼ばれる関数にありますfMain:

procedure TfMain.FormCreate(Sender: TObject);
begin
  MessageBox(0, 'Hello', 'Test', MB_OK); // doesn't show - crash before this line
  ...

では、このアプリはどこでクラッシュするのでしょうか?
実行の最初の行でさえありませんOnCreate....
私にはわかりません...誰か?

これが重要かどうかわからない: fMainuses節の下interfaceと下にいくつかのユニットがありimplementationます。私はそこを見るべきですか?OnCreateしかし、私のメインフォームの直前に何が起こりますか?

4

2 に答える 2

1

ついにできた !

  • フォームにコンポーネントを配置PRINT DIALOGする (TPrintDialog)
  • COPIES = 1設計時にオブジェクトインスペクターで設定(またはデフォルトのゼロ以上)
  • プリンターがインストールされていない WinXP でそのようなアプリケーションを実行してみてください

アプリケーションは起動時にクラッシュするだけで、詳細にはkernel32.dllアドレスのみが表示されます...

プリンターなしでWin 7でテストしませんでした。周りにそんなシステムない…

于 2013-08-11T16:02:14.263 に答える