問題タブ [runtime-packages]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1596 参照

delphi - Delphi XE2:FireMonkeyフレームワークを備えたランタイムパッケージを使用したアプリケーションビルド

ランタイムパッケージ(* .bpl)を使用してVCLWin32アプリケーションを構築できます。これらのパッケージは、動的または静的にロードおよびアンロードできます。

Delphi XE2の新しいFireMonkeyフレームワークで同様の開発オプションがありますか?

0 投票する
2 に答える
1438 参照

delphi - ホスト アプリケーションと DLL の間でメソッドを含むレコードを渡す

実行時パッケージまたは共有メモリ DLL を使用せずに、ホスト アプリケーションとレコード タイプに関数/プロシージャが含まれる DLL モジュールとの間でレコード タイプを渡すことは可能ですか (Delphi 2006 以降)?

簡単にするために、Record 型には String フィールドが含まれていないと仮定しましょう (これにはもちろん Sharemem DLL が必要なため)。以下に例を示します。

簡単に言うと、ランタイム パッケージまたは共有メモリ DLL を使用せずに、TMyRecord の「インスタンス」をホスト アプリケーションと DLL の間で (どちらの方向でも) 渡し、ホスト EXE の両方から DoSomething 関数を実行できますか?そしてDLL?

0 投票する
1 に答える
3339 参照

delphi - Delphi XE2 VCLランタイムBPLとは何ですか?

古いDelphi7は、ランタイムパッケージのチェックを外し、すべてのトリックをビルドすることができなくなったようです。そのため、Delphiプロジェクトに適したランタイムBPLのセットを復元できません。

問題が発生しました。おそらく別の質問をして、ここにリンクします。これは、を含む特定のBPLを含めることで解決できると思いますVCL.CheckLst.pas

これに対する答えがわからない理由は、新しいVCLフォームプロジェクトを開始するとき、デフォルトではランタイムパッケージにVCL BPLがなく、RTLといくつかのファイアモンキーのもの、古き良きMadExceptとIndyがありますが、VCLはありません。 、それとの取引は何ですか?Delphiの設定が間違っていますか?

0 投票する
1 に答える
3291 参照

delphi - ランタイムパッケージでビルドしながら「インポートされたデータ参照が必要」を解決する方法

モノリシックアプリケーションのモジュール化を支援するために、リリースビルド用に単一のexeにコンパイルしながら、デバッグビルドで使用するパッケージをセットアップ中です。

パッケージの1つ(EAUtils)には、現在生産中のユニットが含まれています[DCC Error] E2201 Need imported data reference ($G) to access 'SMsgDlgWarning' from unit 'SystemUtils'

これは、EAUtilsパッケージ自体をビルドするときに発生します。私はまだEAUtilsに依存するパッケージを構築することに興味がありません。EAUtilsは、rtl/vclパッケージとJediWinApiユニット用に作成したパッケージにのみ依存します。

これは次の行の結果です。

より具体的には、これは、、、およびを参照SMsgDlgWarningした結果SMsgDlgErrorであり、これらはすべて。で宣言されています。SMsgDlgInformationSMsgDlgConfirmVcl.Const

単一の実行可能ファイルをビルドする場合、このコードはエラーなしでコンパイルされることに注意してください。

{$IMPORTEDDATA OFF}最適化の手段として、 (グローバル)変数と定数へのより高速なアクセスを可能にするため、インクルードファイルには含まれています。http://hallvards.blogspot.com/2006/09/hack13-access-globals-faster.htmlを参照してください。

エラーに関するドキュメント(http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/devcommon/cm_package_varref_xml.html)によると、これが原因であり、「問題を軽減するには、通常、$ IMPORTEDDATAスイッチをオンにして、エラーが発生したユニットを再コンパイルするのが最も簡単です。」

そこで、{$IMPORTEDDATA ON}インクルードファイルを設定し、プロジェクトオプションUse imported data referencesのセクションでをtrueに設定することで二重に確認しました。Delphi Compiler | Compiling | Debugging

残念ながら、ドキュメントに反して、これは問題を軽減しませんでした。問題のあるコードのすぐ上にこのコンパイラ指令を設定し、パッケージを再構築しても、エラーは削除されませんでした。

このE2201エラーを解決するには、他に何をする必要がありますか?確かではありませんが、SMsgDlgWarningとその友人がリソース文字列であることは重要かもしれません。

0 投票する
3 に答える
2240 参照

delphi - 特定の DLL、EXE、または BPL に必要な BPL のリストを取得する

特定の (コンパイルされた) DLL、EXE、または BPL に必要な BPL を特定する洗練された方法を誰かが知っているかどうか疑問に思っています。

これが、単にバイナリをスキャンして.bplファイル名へのテキスト参照を探すことを恥じている可能性があるかどうかはわかりません (これは、誤検知の可能性が高くなる可能性があります)。

理想的には、必要なすべての.bplファイルの名前を含む、TStringListまたはコンマ区切りを返したいと思います。String

0 投票する
2 に答える
5134 参照

linker - .cbprojファイルでのパッケージのインポートについて

Embarcadero RAD Studio 2010(C ++)を使用しています。プロジェクトファイル(.cbproj)には、.bpisまたは.libsのリストを含む5つの異なるタグがあります。これらのライブラリファイルの各リストがリンカーによってどのように使用されるかについての情報が必要です(ランタイムパッケージの有無にかかわらずビルドする場合)。

LinkPackageImports

LinkPackageStatics

AllPackageLibs

PackageLibs

PackageImports
私はすでにこの最後のものを理解していると思います。これには、IDEのプロジェクトプロパティから設定できるランタイムパッケージのリストが含まれています。

この質問の動機は、アプリケーションから不要な依存関係を排除しようとしていることです。.cbproj内のこれらの5つのタグには、それぞれ異なるlibとbpiの任意の組み合わせが含まれているようです。私が知っているいくつかのライブラリは私が必要としない、そして私が私が必要と思ういくつかのライブラリは私が必要としない。一部のリストから一部のライブラリを削除しても効果がないようですが、他のリストから他のライブラリを削除すると、フォームのリンカーエラーが発生します[ILINK32 Error] Fatal: Unable to open file 'FILENAME.OBJ'

私はすべてのリンカーの問題をゆっくりと解決していますが、これら5つのリストの1つにライブラリ名を含めるときに、リンカーに何をするように指示しているかを正確に知ることは非常に役立ちます。

0 投票する
1 に答える
537 参照

delphi - Windows 2008 と間違った BPL の読み込み

ランタイム パッケージでビルドされたアプリケーションがあります。実行可能ファイルが起動すると、必要なパッケージ (.bpl) が自動的に読み込まれます。

最近、ターミナル サービスとして使用する Windows 2008 R2 サーバーをインストールしました。

次のように、アプリケーションのいくつかの古いコンパイル済みバージョンをさまざまなパスに保持します。

Common.bpl は、app.exe が依存するランタイム パッケージです。

問題:

起動する"c:\app\version_2\app.exe"とロードされます"c:\app\version_2\common.bpl"。を開始する"c:\app\version_1\app.exe"と、間違った bpl (version_2 から) が読み込まれます。

パス"c:\app\version_2\"がシステム検索パスにありません。

Windows2003 サーバーでは、この問題は発生しません。

これを解決するにはどうすればよいですか?

ありがとう!


Process Explorer (microsoft sysinternals) をダウンロードし、各実行可能ファイルのロード済みモジュールを確認しましたが、すべて正しいです!

しかし、私は別の問題に気付きました。2 番目のバージョンを開始した後、entry-not-found-error が発生し、いずれかのバージョンにのみ存在するユニットの初期化エントリ ポイントが見つからなかったことを通知します。

何かがとても奇妙です。ProcessExplorer は、プロセスが正しいモデルをロードしていることを教えてくれますが、それらが実行されているとき、これは起こっていないようです。

アプリケーションがロードされたモジュールを共有しているようです。


解決した

FindVCLWindow を使用する MouseHook があり、これが AV を生成していました。

ご不便をおかけして申し訳ありません。ありがとうございます。

0 投票する
1 に答える
1456 参照

delphi - ロードされたランタイムパッケージのリストを取得するにはどうすればよいですか?

アプリケーション用の[バージョン情報]ダイアログボックスを作成しています。Delphiの[バージョン情報]ダイアログボックスにあるものと似ています。.BPLロードされたすべてのDLLではなく、ランタイムパッケージ(ファイル)のバージョン情報のみを表示したいのですが。RTLロードされたパッケージのリストを取得するための関数が含まれていますか、それとも関数を使用してEnumProcessModules結果をフィルタリングする必要がありますか?

前もって感謝します...

0 投票する
1 に答える
98 参照

java - Java アプリに必要なクラスを認識させるにはどうすればよいですか?

Java で小さなコマンド ライン プログラムを作成しました。インスタンス化されてメイン メソッドで使用されるクラスがあります。しかし、コマンドラインでコンパイルしようとすると、実行する必要があるクラスが「見えません」。実行時に渡される引数を受け入れます。Netbeans でセットアップでき、美しく動作します。しかし、コマンドラインで使用できるようにしたいです。私はそれをjarしてみましたが、例外がスローされ、メインでインスタンス化しているクラスが表示されません。私は CS プログラムで Java を取りましたが、私の教授は展開について特に詳しく説明していませんでした。

私のピクルスから私を助けるためのアイデアはありますか?

ありがとう!!