0

dllを使用するironpythonアプリがあります。一部の DLL は C# で記述されており、1 つはマネージ C++ で記述されています。アプリは、私のホストと、Visual Studio (2010) のインストールを含むすべてのホストで正常に動作します。

vs のないホストでこのアプリを実行しようとすると、失敗しました。いくつかのチェックの後、ironpython が c++ dll を読み込めないことがわかりました。vsをインストールした後、アプリは正常に動作します。

私はそれを絞り込みました: dll は次のインストール後にアップロードできます: -Microsoft アプリケーション エラー レポート -VC 9.0 ランタイム(x86) -VC 10.0 ランタイム(x86) -Microsoft ビジュアル スタジオ マクロ ツール

Microsoft Visual C++ 2010 Redistributable Package http://www.microsoft.com/download/en/details.aspx?id=5555をインストールしようとしまし たが、うまくいきませんでした。

  1. なんで?Microsoft Visual C++ 2010 再頒布可能パッケージ コンポーネントをインストールしたときに発生しない、vs のインストールで正確に何が発生しますか?
  2. ipy で dll をロードするときに発生するエラーを監視するにはどうすればよいですか?

ありがとうございました!

4

1 に答える 1

1

マネージC++で記述されたDLLは、標準ライブラリにDLLを使用します。静的ライブラリに変更できます。次の手順を実行します

  1. Visual Studioでプロジェクトのプロパティを開きます(プロジェクトを右クリックします)
  2. [構成プロパティ]>[C++]>[コード生成]に移動します。
  3. 右側で、ランタイムライブラリを見つけて選択しますMulti-Threaded Debug (/MTd)
  4. リリースビルドについても同じことを行いますが、今回はMulti-Threaded (/MT)
  5. すべてを再構築する

あなたの特定の質問について:

1.再配布可能なインストーラーは、DLLをシステムパスにコピーします。VisualStudioも同じことをします。したがって、機能しない場合は、32ビットまたは64ビットのバイナリ(実行しているプラ​​ットフォームではなく、コードと同じ)があることを確認してください。+コンソールから実行している場合は、コンソールを閉じて新しいコンソールを起動し、更新されたパスを取得します。

2.DependencyWalkerを使用します。DLLをロードすると、探しているものが表示されます。これで十分です。実行時の実行を監視するには、IronPythonをロードします。[プロファイル]メニューで[プロファイリングの開始]を選択し、問題を再現するコマンドラインを提供します。

于 2012-04-08T13:20:28.623 に答える