3

x64プラットフォーム用にアプリ(サードパーティライブラリを使用)をコンパイルしようとしています。ただし、VS2008ProのBuildConfigurationManagerからx64を選択しても機能しないようです。バイナリは作成されますが、クライアントはx64で実行できませんでした。

サードパーティのDLLが原因である可能性があるのではないかと思います。誰かがこれについて何か考えを持っていますか?

4

5 に答える 5

3

サードパーティライブラリのx64バージョンはありますか?そうでなければ、あなたは運が悪いです。プロセスは完全にx86またはx64である必要があり、ライブラリを組み合わせて使用​​することはできません。ライブラリがDLLの場合でも、x64ビルドからのエクスポートライブラリが必要です。

VSでx64構成を選択するとどのように機能しませんか?

更新: アプリが.NETでアーキテクチャに依存しない場合、64ビットOSに64ビットとして読み込まれます。ただし、32ビットDLLに依存している場合、実行時に失敗します。corflagsユーティリティを使用して、exeに常に32ビットをロードさせることができます。

于 2008-10-04T16:39:19.917 に答える
1

ロブ・ウォーカーが言ったように。x64 マシンで SysInternals の「depends」プログラムを使用すると、詳細を確認できます。

于 2008-10-04T18:54:32.920 に答える
1

問題の原因を特定することができました。x64 環境でバイナリを実行できなかったのは、ソース コード難読化ツール (Intellilock 1.1.0.4) の設定 (Encrypt IL Code) の 1 つでした。

この設定を無効にすると、問題が修正されました。

于 2008-10-12T11:31:05.967 に答える
0

「VS2008 Pro の Build Configuration Manager から x64 を選択してもうまくいかないようです」
バイナリを取得する理由がまったくわかりませんが、x64 ツールはデフォルトではインストールされていないことを覚えておいてください。戻って VC2008 インストーラーを再実行し、カスタム インストールを行い、ツリーの VC++ ビットの下で、64 ビット コンパイラーのチェックボックスがオンになっていることを確認します。そうでない場合は、チェックしてインストールを実行します。次に、ビルドを試してください。

サードパーティの dll の 64 ビット バージョンが必要であり、すべてのインクルード パスと lib パスを正しく取得し、出力フォルダーをまっすぐにする必要がありますが、ツールをインストールすることが最初のステップです。

于 2008-10-04T19:13:12.820 に答える
0

私のアプリケーションにはインストーラーがありません。前提条件として.NET2.0を使用して「ポータブルアプリ」として作成しました。

同じリクエストをベンダーに投稿しました。x64ビットがある場合は、元に戻すのをまだ待っています。

それまでの間、私は x64 Vista のコピーを購入して個人的にテストしようとしています。これをテストするためにユーザーを犠牲にすることはできません。新しい更新があり次第、このスレッドを投稿し続けます。

ありがとう。

于 2008-10-07T13:31:01.463 に答える