★API利用支援

情報


概要

API関数を使う時のお供に。
MSDNなどのAPI関数宣言をなでしこで使えるように変換します。

//本体

/*
[API利用支援]
MSDNなどのAPI関数宣言をなでしこで使えるように変換します。
*/
/*
2005/10/24 なでしこ1.397。修正。
2005/03/01 なでしこ1.03a。掲示板に公開。
2005/02/28 なでしこ1.02a。いろいろ修正。
2005/01/15 なでしこ0.15。『中央移動』の引数修正。
2005/01/01 なでしこ0.11fで不具合が出たので修正。
2004/12/23 出力スタイル増加。チェックの背景色。
2004/12/22 ひとまず公開。
開発環境:なでしこ1.397、Win2000
moka
http://www.geocities.jp/moka21/teatime/soft/nadesiko/
*/

!母艦設計=「母艦の可視はオフ」
母艦について
  タイトルは「API利用支援」
  クライアントWは420
  クライアントHは460
  スタイルは「枠固定」
  オフへ最大化ボタン有効変更
  #母艦を中央移動
  
ラベル1とはラベル
  そのテキストは「1.関数宣言を貼り付けてください。」
  その背景色は$CCFFCC
  その透明はオフ
メモ1とはメモ
  そのWは400
  その変更した時は~DLL関数宣言
基本Y=基本Y-部品間隔
ボタン1とはボタン
  そのテキストは「貼り付け」
  そのクリックした時は
    メモ1はクリップボード
    
基本Y=基本Y+部品間隔
ラベル2とはラベル
  そのテキストは「2.DLL名を選択してください。」
  その背景色は$CCFFCC
  その透明はオフ
コンボ1とはコンボ
  そのアイテムは「kernel32.dll
user32.dll
gdi32.dll
shell32.dll」
  その値は0
  その変更した時は~DLL関数宣言

基本Y=基本Y+部品間隔
ラベル3とはラベル
  そのテキストは「3.出力スタイルを選択してください。」
  その背景色は$CCFFCC
  その透明はオフ
チェック1とはチェック
  そのテキストは「スタイル1」
  その値は1
  そのマウス離した時は~チェックイベント(1)
#  そのクリックした時は~チェックイベント
そのX+そのW+4,そのYへ移動
チェック2とはチェック
  そのテキストは「スタイル2」
  そのマウス離した時は~チェックイベント(2)
そのX+そのW+4,そのYへ移動
チェック3とはチェック
  そのテキストは「スタイル3」
  そのマウス離した時は~チェックイベント(3)

●チェックイベント(N)
  3回、「チェック{回数}の値は0」をナデシコする
  「チェック{N}の値は1」をナデシコする
  DLL関数宣言
  
10,基本Y+部品間隔へ移動
ラベル4とはラベル
  そのテキストは「4.なでしこで利用可能な形式で出力されます。」
  その背景色は$CCFFCC
  その透明はオフ
部品間隔=0
メモ2とはメモ
  そのWは400
部品間隔=8
ボタン2とはボタン
  そのテキストは「コピー」
  そのクリックした時は
    クリップボードはメモ2
そのX+そのW+4,そのYへ移動
ボタン3とはボタン
  そのテキストは「コピーしてエディタに貼る」
  そのWはそのテキストの文字幅取得+部品間隔*2
  そのクリックした時は
    クリップボードはメモ2
    デバッグエディタハンドルに、『paste』を、COPYDATA送信。
    #0.5秒待つ。

「,メニュー1,なでしこエディタに登録
メニュー1,メニュー11,ツールメニューに登録,,,エディタ登録(1)
メニュー1,メニュー12,行動タブに登録,,,エディタ登録(2)
,メニュー2,ヘルプ,,,ヘルプ表示」をメニュー一括作成


//初期表示
#例を表示
コンボ1=「user32.dll」
メモ1=「BOOL SetCursorPos(
 int X,  // 水平位置
 int Y  // 垂直位置
);」
母艦を中央移動
母艦の可視はオン


●ヘルプ表示
  "●使い方

1.MSDNあたりから関数宣言の書式をコピペする。
2.DLL名を選択する。MSDNなら「インポートライブラリ」を見よう。
3.スタイルを選択する。
 スタイル1:貼り付けたそのまま
 スタイル2:コメント部分など省略して1行に。
 スタイル3:さらに引数の名前も省略する。
4.なでしこ形式に出力されてるはずなのでエディタに貼ってみよう。

●なでしこエディタに登録

・ツールメニューか行動タブに登録する。
・行動タブに登録すると tools\action\ にファイルをコピーします。


MSDNからのコピペを想定してます。
余計なスペースなどがあると思ったように出力されません。
引数の型にはそのままではなでしこで使えないものもあり。
Unicode版・ANSI版がある関数に注意。MessageBoxAなど。

2005/03/01
2005/10/24 修正
moka
"と言う

●DLL関数宣言
  基本書式=「●%n(%a) =DLL("%d","%f")」&改行
  基本書式2=「●%n(%a) =DLL("%d",{改行}"%f")」&改行  #スタイル1用

  #なでしこでの関数名n
  n=範囲切り取る(メモ1," ","(")
  
  #DLL名d
  d=コンボ1
  
  #引数の型と名前をリストする。
  f_arg=「」  #型&名前
  f_arg2=「」  #型
  f_arg3=「」  #名前
  トリム(範囲切り取る(メモ1,"(",")"))
  反復
    「,」を「」に置換
    Sはそれをトリム
    Sの「//」から改行まで範囲切り取る
    f_arg=f_arg&トリム(S)&改行

    Sの「 」まで切り取る
    f_arg2=f_arg2&トリム(それ)&改行
    f_arg3=f_arg3&トリム(S)&改行
  f_arg=トリム(f_arg)の「 」を「」に置換
  f_arg2=トリム(f_arg2)の「 」を「」に置換
  f_arg3=トリム(f_arg3)
  
  #なでしこでの引数a
  f_arg3の改行を「,」に置換
  a=それ
  
  #関数定義fをスタイル選択に合わせて整形。
  もし、チェック1の値=1ならば
    f=トリム(置換(メモ1,「;」,「」))
    基本書式=基本書式2
  違えば、もし、チェック2の値=1ならば
    #f_argを「,」で配列結合
    f_argの改行を「,」に置換
    f_argはそれ
    メモ1のテキストから「(」まで切り取る
    f=それ&「(」&f_arg&「)」
  違えば、もし、チェック3の値=1ならば
    #f_argを「,」で配列結合
    f_arg2の改行を「,」に置換
    f_arg2はそれ
    メモ1のテキストから「(」まで切り取る
    f=それ&「(」&f_arg2&「)」
  
  #「n{~}a{~}d{~}f」を反復
  #  「"%{それ}"を{それ}に置換」をナデシコする
  それは基本書式
  「%n」をnに置換
  もし、f_arg=「VOID」ならば、「(%a)」を「」に置換
  違えば、「%a」をaに置換
  「%d」をdに置換
  「%f」をfに置換
  メモ2はそれ


●エディタ登録(i)
  //一時ファイルならエラー表示
  もし、コマンドライン\0からファイル名抽出=「temp.nako」ならば
    「実行中のファイルは一時ファイル(temp.nako)なので、」&改行&
    「一度名前を付けて保存したnakoファイルを実行してください。」と言う
    戻る
    
  iで条件分岐
    1ならば
      #ツールメニューに登録
      ファイル名=「{ランタイムパス}tools\tools.txt」
      追加テキスト=「API利用支援,,"{コマンドライン[0]}"」
    2ならば
      #行動タブに登録
      #ただし、actionフォルダに入れなければいけない?
      ファイル名=「{ランタイムパス}tools\action.txt」
      追加テキスト=「API利用支援,"{コマンドライン[0]のファイル名抽出}"」
      #追加テキスト=「API利用支援,"{コマンドライン[0]}"」
      
  //確認表示
  「{ファイル名}{~}に{~}{追加テキスト}{~}を書き込みますか?」と二択
  もし、それがいいえならば、戻る。
  
  //登録処理
  ファイル名を開く
  それ=それをトリム&改行&追加テキスト
  ファイル名に保存
  
  //行動タブに登録する場合、actionフォルダに入れる必要がある模様。
  もし、i=2ならば
    コマンドライン[0]から、
    「{ランタイムパス}tools\action\{コマンドライン[0]のファイル名抽出}」へ、
    ファイルコピー

  • API関数宣言はどこにあるんでしょうか? -- kazz (2011-10-23 14:38:16)
名前:
コメント:


タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2011年10月23日 14:38
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。
添付ファイル