問題タブ [anycpu]

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 投票する
2 に答える
39685 参照

x86 - コマンド ラインから devenv.exe を使用し、プラットフォームを指定する

コマンド ラインから devenv.exe を使用してビジュアル スタジオ ソリューションをコンパイルしようとしています。動作させることはできますが、ソリューション内のすべてのプロジェクトは AnyCPU 用にコンパイルされており、x86 用にコンパイルしたいと考えています。すべてのプロジェクトで、デバッグ構成とリリース構成の両方が x86 に設定されています。

IDE 内からコンパイルすると、正常に動作します。しかし、コマンド ラインからソリューションをビルドしようとすると、常に AnyCPU のすべてのプロジェクトがビルドされます。x86 のみでビルドする devenv.exe の方法はありますか?

Visual Studio 2012 を使用しています

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

c# - AnyCPU でビルドされた C# WinForms アプリを強制的に 32 ビット プロセスとしてデバッグする

AnyCPU を使用して C# プロジェクトをビルドしています。また、現在 32 ビットのネイティブ DLL に依存している機能を動的に読み込みます。この機能をオフにすると、アプリケーションは 64 ビット アプリケーションとして問題なく動作します。したがって、Visual Studio は、アプリケーションが 64 ビット プロセスで実行されると判断します。アプリケーションを強制的に 32 ビット プロセスとして実行するために、CorFlags を使用して 32 ビットに設定するメイン プロジェクトに Post Build ステップがあります。これは、Visual Studio の外部でアプリケーションを実行する場合に正常に機能します。ただし、F5 を使用してアプリケーションをデバッグすると、32/64 ビットの不一致があることを示すエラーが表示されます。Visual Studio は、アプリケーションが 64 ビット プロセスとして実行できると判断し、それに応じてデバッガーをセットアップしたように見えますが、CorFlags を実行して強制的に 32 ビットにしたことを認識していません。

Visual Studio でアプリケーションを 32 ビット プロセスとして強制的にデバッグする方法はありますか? サードパーティ コンポーネントは最終的に 64 ビットにアップグレードされるため、プラットフォーム ターゲットは AnyCPU のままにしたいと思います。

0 投票する
0 に答える
291 参照

dll - すべての CPU を x86 に変更するためのリリース ビルド Windows Phone 8 ライブラリ

理解できない奇妙な構成。

任意の CPU 用にビルドしたい Windows Phone 8 ライブラリがあり、[デバッグ] を選択すると問題なく動作しますが、[リリース構成] を選択するとすぐにプラットフォームが x86 に変更されます。Any CPU に変更し、オプションを保存して終了することはできますが、再度開くと Ac​​tive (x86) に戻ります。

何が恋しいですか?Windows Phone ライブラリを配布する適切な方法は?

よろしく。

0 投票する
0 に答える
542 参照

wpf - MS Access 2013: 保護されたメモリを読み書きしようとしました。これは多くの場合、他のメモリが破損していることを示しています

仮想マシンで Windows 8 64 ビットと MS Office 2013 64 ビットを実行しています。クエリ文字列内のパラメーターを使用して Access データベースにクエリを実行しようとすると、このエラーが発生しました。スタック トレースは次のとおりです。

私は次のコードを持っています:

この行で例外が発生します: using (OleDbDataReader reader = _command.ExecuteReader()

Visual Studio 2012 で .NET 4 を実行しています。これは WPF アプリケーションです。

有線の問題は、パラメーターを SQL クエリに渡さない場合、正常に動作することです。クエリにいくつかのパラメーターがあると、エラーが発生します。

Visual Studio では、プラットフォームは目的の AnyCPU に設定されています。これを x86 に変更したくありません。

助けてくれてありがとう。

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

vb.net - 32 ビット モードの 64 ビット システムで ANYCPU Exe を実行する

64 ビット OS で ANYCPU としてコンパイルされた EXE ウィッチを 32 ビット モードで実行することは可能ですか?

開始モードを設定する方法はありますか?

アドバイスをありがとう

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

.net - Any CPU を使用して混合 dll をロードする .NET アプリケーション

私は、.NET アプリケーション、特に混合アプリケーションを作成するのが初めてです。

最近、(管理されていない) C++ (MS Visual Studio 2010 の下) で、32 ビットと 64 ビットの両方のコンパイルをサポートするクライアント用の (静的) ライブラリ セットを作成しました。 . (内部的に、この機能は、OpenGL、boost、glm などの他のさまざまなサードパーティ ライブラリを使用しています)

今、彼は、C# アプリケーションでカスタム コントロールとして提供した機能の一部も使用できるようにしたいと考えています。

そこで、C++/CLI を使用して CLR をサポートする dll を作成し、C++/CLI を使用して機能のラッパー クラスを作成し、パブリックな (したがって外部からアクセスできる) カスタム WPF コントロールを作成しました。 32 および 64 ビット。

次に、テストのために、32 ビットまたは 64 ビットでビルドでき、DLL からコントロールを正常にロードできる単純な C# アプリケーションを作成しました (C# は初めてなので、これは非常に単純です)。そして、期待されていることを実行します。

私が今抱えている問題は、単一の実行可能ファイルを「任意の CPU」としてのみ配布できるようにしたいということです。これは、起動された場所に応じて適切なコード (つまり、32 ビットまたは 64 ビット) をロードする必要があります。

そこで、C# テスト プロジェクトに「任意の CPU」構成を追加し、「ビルド」タブの「プラットフォーム ターゲット」を「任意の CPU」に設定しました。しかし、現在、構成マネージャーの下で、他のプロジェクト (つまり、C++/CLI 混合モード dll によって消費される C++ 静的ライブラリ) に設定するプラットフォームがわかりません。したがって、テストのために x64 のままにしましたが、ビルドすると次の警告が表示されます。

ただし、その警告が表示されても問題なく動作します。他のプロジェクトを「Win32」に設定すると同じ警告が表示され、代わりに「x86」に言及するだけですが、その場合、起動時に「PresentationCore.dll で「System.BadImageFormatException」タイプの未処理の例外が発生したという例外がスローされます。 "

それで、私はそれを何に変更する必要がありますか?実行可能ファイルをロードしてから、ロードする dll を決定するにはどうすればよいですか? どのように進めて、要求された方法で動作させるのか本当にわかりません。

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

c# - x86 / anycpu - キャストの違い?

私のコード:

x86を使用してコンパイルすると-> aとbの両方= 2

anycpu を使用してコンパイルする場合 -> a = 2 および b = 0

誰も理由を説明できますか?!

編集: Windows 7 x64 で VS2010 、.NET 4.0 を使用しています

ここに画像の説明を入力

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

c# - コンパイラはプロセッサ アーキテクチャの不一致について警告するが、corflags はそうではないと主張する

コンパイラは次の警告を表示します。

警告 MSB3270: ビルド中のプロジェクト "MSIL" のプロセッサ アーキテクチャと参照 "NationalInstruments.DAQmx"、"x86" のプロセッサ アーキテクチャの間に不一致がありました。

国家計器から使用する DLL をチェックすると、それらのすべてが任意の CPU アーキテクチャに対して構築されていることがわかります。

corflags NationalInstruments.DAQmx.dll

Microsoft (R) .NET Framework CorFlags 変換ツール。バージョン 4.0.30319.1 Copyright (c) Microsoft Corporation. 全著作権所有。

バージョン: v4.0.30319 CLR ヘッダー: 2.5 ** PE: PE32 ** CorFlags: 24 ILONLY: 0 ** 32BIT: 0 ** 署名付き: 1

私が理解しているように、PE32 + 32BIT 0 == Any Cpu.

これに頭を包む方法についてのアドバイスは素晴らしいでしょう