atwiki-logo
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • このページの操作履歴
    • このウィキのページ操作履歴
  • ページ一覧
    • ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このウィキの更新情報RSS
    • このウィキ新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡(不具合、障害など)
ページ検索 メニュー
Informatik-Wiki
  • 広告なしオファー
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
広告非表示(β版)
ページ一覧
Informatik-Wiki
  • 広告なしオファー
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
Informatik-Wiki
広告非表示 広告非表示(β)版 ページ検索 ページ検索 メニュー メニュー
  • 新規作成
  • 編集する
  • 登録/ログイン
  • 管理メニュー
管理メニュー
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • このページの操作履歴
    • このウィキのページ操作履歴
  • ページ一覧
    • このウィキの全ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ一覧(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このwikiの更新情報RSS
    • このwikiの新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡する(不具合、障害など)
  • atwiki
  • Informatik-Wiki
  • java2cppソース

Informatik-Wiki

java2cppソース

最終更新:2006年03月14日 09:26

Bot(ページ名リンク)

- view
管理者のみ編集可

java2cppソース


  • java2cppソース
    • java2cppソース中に見たもの
    • java2cppのしくみ
    • java2cppが対応するクラス
    • java2cppが対応するクラスの追加
    • Javaレベルでの処理
    • 基本的な戦略

java2cppソース中に見たもの

java2cppソースをちらりと覘いてみました。まずすぐに判ったのがdfcアプリである、ということ。冒頭一番、しっかりdfc_core.hをインクルードしているし、その他、dfcライブラリを使用する所ではおなじみのインクルードパスとネームスペースを使いまくっています。

という事は、基本的な機能はすべて現在のdfcライブラリとして実装されている範囲で作られているのでdfcがサポートしていないクラスについては処理されない、という事も明らかです。

java2cppのしくみ

java2cppにはディレクトリツリーをたどりながら*.javaファイルを読み込んで解析するパーサ部分と自分がたどったディレクトリツリーを生成しながら*.javaから読み込んだ情報に対応する*.cppと*.hファイルに出力する部分があります。変換処理中出てくるエラーメッセージはこのパーサ部分が自分の知らないトークンを発見した時に例外を投げて出力しています。

java2cppが対応するクラス

以上の様な動き方をするjava2cppですが、javaソースでimportされているクラスをチェックする時に、dfcソースを検索する様な事はしていません。従って、dfcのsrcおよびinclude配下に新しいクラス定義を置いても読み取ってはくれません。

java2cppが対応するクラスの追加

jakarta commonsライブラリなどの外部から提供されているライブラリを追加しようとすると、以下の様な手順になると考えられます。

  1. 新機能のdfcソースを作成
  2. 既存のdfcソースと合わせてビルド
  3. 新dfcが出来たところでjava2cppもビルド

これは、dfcおよびjava2cppのサポート範囲を直接拡張しようというもので、効果的ではありますが、新規に追加した部分を誰がどう保証するかという問題が残ります。Javaソースが存在しても、C++レベルで実績が無いものを新規に生成する訳なので、十分な試験を行い動作を確認しておかなければなりません。本格的にやろうとすると、それだけでひとつのプロジェクトになってしまう事も考えられます。

Javaレベルでの処理

Javaソースが存在するクラスを処理する方法は2つあります。

  1. あらかじめ変換しておき-lオプションで追加
  2. -sオプションを使って全部入力ファイルとして処理

前者はJavaソースを少しずつ変換してエラーにならない範囲を少しずつ拡げるやり方です。依存関係があった場合、それを逐次解決しながら進める必要があります。後者は入力ファイルを一気に処理してしまうやり方です。依存関係の問題が発生しなければ、一気に結果が得られますが、どこかでつまずいた場合はそれ以降が全てダメになる可能性もあります。また、Javaのソースで全ての元データを揃えておかなければなりません。アプリケーションは可能ですが、DFC未対応のJDKやJakartaライブラリ部分をソースで持ち歩くのはなにかと面倒です。

基本的な戦略


以上の事から、DFCが対応していないコアパッケージのクラスはあらかじめ変換しておき、アプリケーションなど後から追加するクラスは-sで一緒に処理するのが効率的と考えられます。
「java2cppソース」をウィキ内検索
LINE
シェア
Tweet
Informatik-Wiki
記事メニュー
メニュー
  • トップページ
  • メニュー
  • メニュー2


2009.09/25
CIW v5 Associate 認定獲得
番号:386753


wiki構文
記事メニュー2

更新履歴

取得中です。



#twitter_badge_text
-
最近更新されたページ
  • 5688日前

    UML : free design tool BOUML
  • 5688日前

    free X server on Windows
  • 5713日前

    メニュー2
  • 5756日前

    組み込みWindows開発/開発環境/VisualStudio2005
  • 5756日前

    組み込みWindows開発
  • 5860日前

    構成管理(SCM)システム/PERFORCE
  • 5865日前

    メニュー
  • 5930日前

    CIWについて
  • 5936日前

    ITIL
  • 5936日前

    ITILのお勉強はじめ
もっと見る
最近更新されたページ
  • 5688日前

    UML : free design tool BOUML
  • 5688日前

    free X server on Windows
  • 5713日前

    メニュー2
  • 5756日前

    組み込みWindows開発/開発環境/VisualStudio2005
  • 5756日前

    組み込みWindows開発
  • 5860日前

    構成管理(SCM)システム/PERFORCE
  • 5865日前

    メニュー
  • 5930日前

    CIWについて
  • 5936日前

    ITIL
  • 5936日前

    ITILのお勉強はじめ
もっと見る
ウィキ募集バナー
急上昇Wikiランキング

急上昇中のWikiランキングです。今注目を集めている話題をチェックしてみよう!

  1. 遊戯王DSNTナイトメアトラバドール攻略Wiki@わかな
  2. ホワイトハッカー研究所
  3. p5x 攻略wiki @ ウィキ
  4. ポケモン 作品なりきりネタWiki
  5. 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
  6. 東方同人CDの歌詞@Wiki
  7. 千鳥の鬼レンチャン サビだけカラオケデータベース
  8. フォートナイト攻略Wiki
  9. Pokemon Altair @攻略wiki
  10. NIKKEぺでぃあ
もっと見る
人気Wikiランキング

atwikiでよく見られているWikiのランキングです。新しい情報を発見してみよう!

  1. アニヲタWiki(仮)
  2. ゲームカタログ@Wiki ~名作からクソゲーまで~
  3. 初音ミク Wiki
  4. MADTOWNGTAまとめwiki
  5. 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
  6. ストグラ まとめ @ウィキ
  7. 検索してはいけない言葉 @ ウィキ
  8. Grand Theft Auto V(グランドセフトオート5)GTA5 & GTAオンライン 情報・攻略wiki
  9. 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  10. 英傑大戦wiki
もっと見る
新規Wikiランキング

最近作成されたWikiのアクセスランキングです。見るだけでなく加筆してみよう!

  1. MADTOWNGTAまとめwiki
  2. MadTown GTA (Beta) まとめウィキ
  3. フォートナイト攻略Wiki
  4. 首都圏駅メロwiki
  5. Last Z: Survival Shooter @ ウィキ
  6. まどドラ攻略wiki
  7. 駅のスピーカーwiki
  8. ちいぽけ攻略
  9. ソニックレーシング クロスワールド 攻略@ ウィキ
  10. 戦国ダイナスティ攻略Wiki@ウィキ
もっと見る
全体ページランキング

最近アクセスの多かったページランキングです。話題のページを見に行こう!

  1. ブラック・マジシャン・ガール - アニヲタWiki(仮)
  2. 【移転】Miss AV 見れない Missav.wsが見れない?!MissAV新URLはどこ?閉鎖・終了してない?missav.ai元気玉って何? - ホワイトハッカー研究所
  3. ブラック・マジシャン・ガール - 遊戯王DSNTナイトメアトラバドール攻略Wiki@わかな
  4. 真崎杏子 - 遊戯王DSNTナイトメアトラバドール攻略Wiki@わかな
  5. 魔獣トゲイラ - バトルロイヤルR+α ファンフィクション(二次創作など)総合wiki
  6. 涙目のルカ - アニヲタWiki(仮)
  7. 参加者一覧 - MADTOWNGTAまとめwiki
  8. 参加者一覧 - ストグラ まとめ @ウィキ
  9. コメント/雑談・質問 - マージマンション@wiki
  10. ハーディガン - 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
もっと見る

  • このWikiのTOPへ
  • 全ページ一覧
  • アットウィキTOP
  • 利用規約
  • プライバシーポリシー

2019 AtWiki, Inc.