掲示板一覧 - トピック一覧 EA ソースコード生成・コード生成テンプレート
独自の言語のテンプレートで、ソースファイルを生成したい |
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
| 投稿者 | トピック |
|---|---|
| 未登録ゲスト | 投稿日時: 2009-10-20 17:34 |
独自の言語のテンプレートで、ソースファイルを生成したいこんにちは、お世話になります。
コード生成テンプレート機能を利用して、独自の言語テンプレートの定義を行いました。 各テンプレートの内容は、コード生成テンプレートエディタを使って、C言語のコード生成 テンプレートをそのままコピーしたものを記述しています。 このようにして作成した独自の言語テンプレートから、コード生成を実行してみたのですが、 ヘッダファイルは生成されるようなのですが、コードファイルが生成されません。 独自の言語テンプレートを使って、コードファイルを生成する事は可能でしょうか? ご教授戴ければ幸いです。 |
|
| tkouno | 投稿日時: 2009-10-20 17:41 |
EA Administrator ![]() ![]() 投稿: 3939 |
Re: 独自の言語のテンプレートで、ソースファイルを生成したいご希望の件は、「MDGテクノロジー」の機能を利用しないと
設定することができません。 (ただ、配布する場合にはおそらくMDGテクノロジーの形に なるかと思いますので、以下の内容を試して無駄になることはないと 思います。) 具体的には、ヘルプファイルの「コードモジュールの追加」の ページをご覧下さい。 このページの下の方に「Code Option」として設定できる内容が一覧に なっており、この値の「HasImplementation」「ImplementationExtension」などを 設定し、MDGテクノロジーファイルとして生成する必要が あります。 ぜひお試し下さい。 |
| 未登録ゲスト | 投稿日時: 2009-10-21 10:06 |
Re: 独自の言語のテンプレートで、ソースファイルを生成したい早速の返信、有難うございます。
ご教授戴きました、MDGテクノロジーの作成について試してみたのですが、 「MDGテクノロジーの設定」での挙動について疑問が生じ、お聞きしたい次第です。 ヘルプを参考に、「MDGテクノロジーを作成」→「MDGテクノロジーを読み込み」まで 問題なく実行できているように思えるのですが、その後「MDGテクノロジーの設定」で、 追加したMDGテクノロジを有効にすべく、チェックボックスをチェック→OKで 「MDGテクノロジーの設定」ウィンドウを閉じ、もう一度「MDGテクノロジーの設定」 ウィンドウを開くと、チェックしたはずのチェックボックスが未チェックの状態と なっています。 この状態でソースコードの生成を実行しても、やはりコードが生成されません。 作成したMDGテクノロジーの内容に問題があるのでしょうか? お分かりになる事がありましたら、ご指摘戴ければ幸いです。 |
|
| tkouno | 投稿日時: 2009-10-21 10:09 |
EA Administrator ![]() ![]() 投稿: 3939 |
Re: 独自の言語のテンプレートで、ソースファイルを生成したいご指摘の現象が起きる場合の原因のほとんどは、
MDGテクノロジーのIDが、既存の他のテクノロジーのIDと 重複していることが原因です。 お手数をおかけし申し訳ございませんが、IDを変更して 結果をご確認ください。 |
| 未登録ゲスト | 投稿日時: 2009-10-21 11:40 |
Re: 独自の言語のテンプレートで、ソースファイルを生成したいご回答、有難うございます。
ご指摘の通り、以前MDGテクノロジー作成について試していた際に指定した IDと被っていたようです。 IDを修正の上、MDGテクノロジーを読み込みしなおし、コード生成を実行すると、 希望の通り実装ファイルを生成する事が出来ました。 ご教授、有難うございました。 生成結果について、細かい事なのですが、クラスのプロパティの「ファイル名」で 「class.h」と指定している条件で、生成される実装ファイルの名前が「class.h.c」 のようになってしまいます。 既存のC言語のテンプレートでは、上記のようにクラスのプロパティを指定していても 「class.h.c」のようにはならず、「class.c」となります。 現状、コードオプションファイルでは以下のようにコードオプションを設定しています。 DefaultExtension = .h ImplementationExtension = .c HasImplementation = true クラスプロパティのファイル名「class.h」という値から、ヘッダファイルの拡張子を 抜き出して、実装ファイルの名前が「class.c」と生成されるようにする方法は ありますでしょうか? |
|
| tkouno | 投稿日時: 2009-10-21 12:00 |
EA Administrator ![]() ![]() 投稿: 3939 |
Re: 独自の言語のテンプレートで、ソースファイルを生成したいご指摘の内容と同じ設定でMDGテクノロジーファイルを作成しましたが
問題を再現することができませんでした。 (ただしく、.hと.cのファイルが生成されます。プロパティには .hの拡張子を含むファイル名が入っています。) お手数をおかけし申し訳ございませんが、以下の点について ご確認ください。 ・もし最新版ではない場合、最新のEAで再現するかどうか ・新規のクラスに対して問題が発生するかどうか ・新規のプロジェクトに対して問題が発生するかどうか ・拡張子の設定に間違いがないかどうか (全角・半角など) |
| 未登録ゲスト | 投稿日時: 2009-10-21 15:11 |
Re: 独自の言語のテンプレートで、ソースファイルを生成したいご回答、有難うございました。
ご指摘戴いた内容を元に色々試してみた結果、作成したMDGテクノロジーファイルの 読み込み方が間違っていた事が原因と判明しました。 ツールメニューで「MDGテクノロジーファイルの作成」の上にある「MDGテクノロジー ファイルの読み込み」が使えるものだと、漫然と思い込んでいたのですが、ヘルプには 「このコマンドを使用する事は非推奨」と書いてある事に気がつき、その後はヘルプに 示される通り、作成したMDGテクノロジーファイルを Program Files の EA\MDGTechnologies に配置してEAを起動するか、設定メニューの[MDGテクノロジー]>[追加設定]で追加する 事で、うまく「class.c」を生成できるようになりました。 迅速な対応、感謝致しております。 また何かありましたら、ご助力戴ければ幸いです。 |
|
| tkouno | 投稿日時: 2009-10-21 15:17 |
EA Administrator ![]() ![]() 投稿: 3939 |
Re: 独自の言語のテンプレートで、ソースファイルを生成したいお忙しい中ご確認ありがとうございました。
ご提示の方法は過去との互換性のために残してある機能であり ご指摘のように、現在は非推奨です。 お手数をおかけし申し訳ございませんでした。 個人的には、このコマンドはなくても困る人はいないようにも 思いますので、次回のバージョン8.0では、日本語版からは 削除したいと思います。 今後ともよろしくお願いします。 |
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |




