2

私が取り組んでいるソフトウェアに問題があります。

JNA 経由で Wi​​ndows システム コールにアクセスしており、それらにアクセスできるように Windows 構造 (JNA 構造を拡張する Java クラス) を定義する必要があります。

アプリケーションは 32 ビットおよび 64 ビット アーキテクチャで動作する必要がありますが、構造体の問題は、システム アーキテクチャに基づいて属性が変化することです (たとえば、int から long へ)。

Antを使用してJavaで条件付きコンパイルa-la #ifdefを行う簡単な(そして正気の)方法はありますか? この種の条件 #ifdef を達成する他の方法はありますか?

私たちが検討しているもう 1 つの方法は、一般的なインターフェイスを作成し、32 ビットと 64 ビット用に 2 つの異なる構造を作成してから、if-else を使用して異なるケースを処理することです。

ありがとう。

4

2 に答える 2

4

Ant の条件句は機能しませんか

http://ant.apache.org/manual/Tasks/condition.html

更新: 私は最終的にあなたがやろうとしていることを得たと思います. ここjavacにいる男性を見ると、Ant にどのような条件を設定したとしても、Java コンパイラがそれを許可するとは思えません。いずれにせよ、システム アーキテクチャの決定に関するstackoverflowに関する投稿と、役に立つと思われる Sun フォーラムのスレッドを見つけました。

于 2010-08-09T14:50:28.160 に答える
0

wwyt は、Java 言語用の条件付きコンパイル プリプロセッサです。#if、#else、.... などのディレクティブを (コメント アウトして) 受け入れます。これは Windows コマンド ライン ツールであり、Ant を呼び出してビルドを行う前にプリプロセッサとして使用できます。(そして、ビルド後に、変換されたファイルを元の状態に戻すことができます。) これが役立つかどうかはわかりません。リンクはこちら: http://www.adarian.com/wwyt

于 2011-02-02T05:43:11.460 に答える