掲示板一覧   -   トピック一覧
   Enterprise Architect 全般
     CTFについて


スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 トピック
未登録ゲスト
投稿日時: 2006-1-7 7:58

CTFについて

4つ質問があります。

1.CTFのコード自体に"コメント"を記述できたりできませんでしょうか?
2.指定文字数分、ずらして表示させるテクニックについて
3.操作プロパティには以下の4つのタブがありますが、
[一般][振る舞い][事前][事後]
このうち、[事前][事後]をCTFで扱えないでしょうか?
4.新規に言語を追加した際のコード生成について
==================================
1.
これは例えば、
<!-- comment --> とか
#coment とか…
このような形でコメントを記述できないのでしょうかということです。
CTFで編集を行う際、
覚書程度のものを残しておきたいのです。

マクロや変数以外はすべてそのままコードに展開されてしまうようですので、やはり現状ではできないのでしょうか。

もし、何かよい方法がありましたら教えてください。

===>>すみません。解決しました。
$COMMENT="WARNING: DO NOT MODIFY THIS TEMPLATE BELOW THIS POINT"
のように、変数へ代入する形で書けばよいのですね。
失礼いたしました。

==================================
2.
( _ はスペースの意味です。)

これは例えば、
{
int nTest この変数はAのカウント用
________として使用する
}
みたいな文を出力する際に、
操作のプロパティダイアログの「パラメータ」タブ
から、

paramNameと
paramNotesのフィールド置換マクロを利用しているのですが、

パラメータタブの
paramNotesフィールドに、"一行"で記述していれば…
{
int nTest この変数はAのカウント用として使用する
}
となって問題ないのですが、

paramNotesフィールドに、"二行"で記述すると…
{
int nTest この変数はAのカウント用
として使用する
}
となってしまいます。

これを避けるため、現状は以下のようにテンプレートを編集しています。
(標準で記述されてあるコードは省いています)
(ちなみに、Parameter Impl テンプレートを編集しています)

//スペースをある程度確保しておきます。
$SP = "例えば30文字分のスペース"
//確保したスペースから、パラメータの型の文字数分スペースを取得
%if $type!=""%
$Len=%LENGTH($type)%
$Pre+=%LEFT($SP, $Len)%+" "
%endIf%
//パラメータを指定
%paramName%
//パラメータの長さ取得
$Len=%LENGTH(paramName)%
//確保したスペースから、パラメータの長さ分のスペースを取得
$Pre+=%LEFT($Tab, $Len)%
//パラメータノートの改行文字を、取得したスペースで置き換える
%REPLACE(paramNotes,"\n",$Pre)%


「あるフィールド置換マクロを、指定文字数分"右にずらして"表示する」
(「paramNotesを、%LENGTH(paramName)%文字分ずらして表示する」)
ような、機能マクロがあればよいのですがないようなので、
テクニックとして、何か方法がありますでしょうか?

とりあえず上記の方法でうまくいくかと思ったのですが、
現状だと、
{
int nTest この変数はAのカウント用
_____として使用する
}
のようにどうしてもうまくいかないようです。


ちなみにこれは、
関数の引数の説明を、関数ヘッダとして記述し生成するために、上記のようなCTFの編集をしています。

==================================
3.
これもも2.と同じで、関数ヘッダとして記述し生成したいと考えています。

テスト項目の表示で、事前条件・事後条件の項目を利用したりしたいのです。

ヘルプファイルの、フィールド置換マクロの一覧をみてもないようです。

ちなみに、opCodeのマクロはヘルプファイルは載っていませんが、OperationBodyテンプレートでは利用されています。
つまり、[事前][事後]タブの項目も利用できるがヘルプファイルには載っていないだけなのでは?
と思っておりますが実際利用可能なのでしょうか。
可能ならば、何か方法がありますでしょうか?

==================================
4.
新規に言語を作成して、
File
FileImpl
の2つのテンプレートのみを、"C++"のテンプレートからコピーして、
コード生成を行うと、
ヘッダファイルのみ生成されるようです。
ソースコードは生成されません。
Implのテンプレートについては、
Implのテンプレートすべてに対し(あるいは、ある必要最低限のテンプレートに対し)デフォルトのコードを記述しないといけないのでしょうか?

何か方法がありますでしょうか?

--------------------------

以上、長くなりましたが、よろしくお願いいたします。
tkouno
投稿日時: 2006-1-12 9:10
EA Administrator
投稿: 3939

Re: CTFについて

順に回答いたします。

2.
こちらは、WRAP_COMENTマクロがまさにご要望のマクロだと思います。
詳細はヘルプファイルをご覧ください。

3.
こちらは、残念ながら利用できません。
EXEC_ADDINマクロとアドインを利用して自作するしかないと
思われます。
(逆を言えば、このマクロを活用すると、APIで定義されている範囲であれば
何でも可能です。)

このマクロのサンプルとしては、C言語の生成テンプレートで
利用しているものがあります。以下のページから
ソースコードがダウンロードできます。
https://www.sparxsystems.jp/addins.htm

4.
これは、僕自身もC言語のテンプレートを作るときに悩んだ点です。
現在開発元に確認中ですので、もうしばらくお待ちください。


ぜひご確認ください。
未登録ゲスト
投稿日時: 2006-1-20 1:52

Re: CTFについて

お忙しい中ありがとうございました。
2.
大変失礼致しました。
試してみます。

3.
EXEC_ADDINマクロはATLですか。
ちょっと今の私には敷居が高いですがんばってみます。

4.
了解しました。
ソースコードの生成なので一般的にはあまり利用されないかもしれませんが(既存のものがあるので)、独自のテストコードのテンプレートを作成したいときなどには便利だと感じています。
tkouno
投稿日時: 2006-1-23 10:20
EA Administrator
投稿: 3939

Re: CTFについて

ご確認ありがとうございました。

EXEC_ADDINはCOMのAPIがあればいいので、ATLでなくても
可能です。元になるサンプルは適当にあると思うので
もし興味があれば、お試しください。

今後ともよろしくお願いします。
未登録ゲスト
投稿日時: 2006-3-9 4:06

Re: CTFについて

アドイン登録について質問があります。

1.登録の方法がよくわかりません。

----------------------------------
1. 以下のような手順で登録を試みました。
[1]EXEC_ADDINのサンプルを.NETで読み込ませ(.NETへ移行させ)(※1)、
[2]DLLを作成しました。
そして、
ヘルプにある、アドインの配置にある手順で
[3]RegSrv32で登録
このとき下記のエラーが発生しました。
「DllRegisterServer エントリポイントが見つかりませんでした。このファイルが登録されていない可能性があります」
そして、
[4]OKボタンを押下
[5]レジストリエディタでキー等を追加(※2)し
[6]EAを起動する
こととき下記のエラーが発生しました。
「アドインの読み込み中にエラーが発生しました
キー名(プロジェクト名.クラス名)
アドインの読み込み一覧から削除しますか」

VB.NET側の設定の修正が必要なのでしょうか?
そのままではうまく登録できないようです。

(※1)読み込ませたあと、ソースコードの若干の修正が必要でした。
(※2)ちなみに、サンプルコードをそのまま使用すると、
キー名、値の[プロジェクト名.クラス名]ともすべて同じ名前になります。これが間違っているのでしょうか?

何か方法がありますでしょうか?
よろしくお願いいたします。

なお、
OS::XPpro
VB::.NET2003
です。
tkouno
投稿日時: 2006-3-13 10:55
EA Administrator
投稿: 3939

Re: CTFについて

.NETでCOMコンポーネントを作成する場合には
regsvr32ではなく、regasmコマンドを利用します。
(このコマンドの詳細はMSDNなどをご覧ください。)

ぜひご確認ください。


ちなみに、手順の[6]のエラーは、この登録が正しく行われていないことが
原因で発生しているエラーです。上記の登録が正しく行われ
レジストリの情報が適切であれば、このエラーが表示されずに
アドインのメニューが追加されると思います。



スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ