SyntaxHighlighter

ラベル FileMaker プラグイン の投稿を表示しています。 すべての投稿を表示
ラベル FileMaker プラグイン の投稿を表示しています。 すべての投稿を表示

2013年2月8日金曜日

FileMaker プラグインを作る準備!|Visual Studio 2012 Express

FileMaker プラグインを作る準備!|Visual Studio 2012 Express|OS:Windows


「VisualStudio 2010」は、C++のIntellisenseが機能しなくてものすごく不便!
「Visual Studio 2012」では、C++のIntellisenseが復活している!

乗り換えていこうかなぁ!というころで、

「Microsoft Visual Studio 2012 Express」で試しておこう!


まずは、以下からテンプレートをダウンロード
24U Plug-In Template 3.1 : http://www.24usoftware.com/PlugInTemplate


24U Plug-In Template 3.1\Projects\VisualStudio 2010の中、
「VisualStudio 2010」内の"PlugInTemplate.vcxproj"を「VisualStudio 2012」用に変換します。

「VisualStudio 2012」で

「Visual Studio 変換ウィザード」で変換してくれます。

テスト Debugモード で
「ビルド->ソリューションのビルド」を行います。

「出力」ウインドウに以下の様に表示されビルドが完了します。

========== すべてリビルド: 1 正常終了、0 失敗、0 スキップ ==========

以下に出力されています。
24U Plug-In Template 3.1\Output\FMPluginDebug.fmx

「警告 1」が出ていると思います。

解決策:
以下ファイルの「sprintf」を「sprintf_s」に変更


24U Plug-In Template 3.0\Sources\FMPluginVersion.cpp //ファイル
117行
修正前:
sprintf(auChars, "%02d%02d%02d00", PLUGIN_VERSION_MAJOR,.....
修正後:
sprintf_s(auChars, "%02d%02d%02d00", PLUGIN_VERSION_MAJOR, .....


Releaseモードで
「ビルド->ソリューションのビルド」を行います。

エラーだらけ!

warning MSB8012: TargetPath(.....
error LNK2019: 未解決の外部シンボル.....
error LNK2001: 外部シンボル.....

解決して行きましょう!
2箇所変更します!

【1】
VisualStudioのメニュー
プロジェクト
FMPluginのプロパティ|構成:Release
└構成プロパティー
 └全般
  ターゲットの拡張子:.fmx
  .dllの場合、.fmxに変える


【2】
VisualStudioのメニュー
プロジェクト
FMPluginのプロパティ|構成:Release
└構成プロパティー
 └リンカー
  └入力
   追加の依存ファイル:FMWrapper.libを追加
    $(ProjectDir)..\..\Support\FMPlugInSDK\Libraries\Win\win32\FMWrapper.lib


「ビルド->ソリューションのビルド」を実行!

========== すべてリビルド: 1 正常終了、0 失敗、0 スキップ ==========

エラーが無くなりりました!

ちょっとだけ いじって見ましょう!

FileMakerに表示されるプラグイン名になります!

FMTConfig.h
69|#define PLUGIN_NAME "My Plug-In"

69|#define PLUGIN_NAME "私のプラグイン"

としてみましょう!

「ビルド->ソリューションのビルド」を実行!

以下に出力されています。


24U Plug-In Template 3.1\Output\FMPlugin.fmx

FMPlugin.fmx を FileMakerのExtensionsフォルダに入れて
C:\Program Files (x86)\FileMaker\FileMaker Pro □\Extensions


環境設定

「私のプラグイン」ちゃんと認識しています!



[スクリプト]で関数を見てみましょう!




ちゃんとあります!


フィールド設定 [ TEST::er; X24FT_Version( "long" ) ]

で、「私のプラグイン 1.0」を返します!

2012年5月15日火曜日

FileMaker プラグインの開発をMicrosoft .NET Frameworkで行う[1]

FileMaker プラグインの開発をMicrosoft .NET Frameworkで行う[1]

まずは、以下からテンプレートをダウンロード
24U Plug-In Template 3.0 : http://www.24usoftware.com/PlugInTemplate

24U Plug-In Template 3.0\Projectsの中に
「VisualStudio 2010」と「VisualStudio 2003」のサンプルが入っています。
「VisualStudio 2010」は、C++のIntellisenseが機能しないので「VisualStudio 2005」を使います。

「VisualStudio 2003」内の"PlugInTemplate.vcproj"を「VisualStudio 2005」用に変換します。

「VisualStudio 2005」で
ファイル->開く->プロジェクト/ソリューション
"PlugInTemplate.vcproj"を開く

「Visual Studio 変換ウィザード」で変換してくれます。


テストで
「ビルド->ソリューションのビルド」を行います。

「出力」ウインドウに以下の様に表示されビルドが完了します。

========== すべてリビルド: 1 正常終了、0 失敗、0 スキップ ==========

以下に出力されています。
24U Plug-In Template 3.0\Output\FMPluginDebug.fmx


「警告 1」が出ていると思います。
「'sprintf' の宣言を確認してください。」


解決策:
以下ファイルの「sprintf」を「sprintf_s」に変更

24U Plug-In Template 3.0\Sources\FMPluginVersion.cpp //ファイル

117行
修正前:
sprintf(auChars, "%02d%02d%02d00", PLUGIN_VERSION_MAJOR,.....
修正後:
sprintf_s(auChars, "%02d%02d%02d00", PLUGIN_VERSION_MAJOR, .....


Microsoft .NET Frameworkで開発出来るように設定を変更します。
プロジェクト->プロパティ
構成プロパティ
└全般
[共通言語ランタイムサポート]の項を

「共通言語ランタイムサポートを使用しない」
から
「共通言語ランタイムサポート(/clr)」
に変更。

このままビルドを行うと
「error D8016 : コマンド ライン オプション '/MTd' と '/clr' は同時に指定できません」とエラーになります。

解決策:
プロジェクト->プロパティ
構成プロパティ
└C/C++
└コード育成
[ランタイムライブラリ]の項を
「マルチスレッドDLL(/MD)」に変更




まだ、エラーが!
「warning C4747: .....: マネージ コードは、DLL エントリポイントおよび DLL エントリポイントから到達した呼び出しを含むローダー ロック下では実行できません」

解決策:
Support\VisualStudio\FMPluginDllEntryPoint.cpp //ファイル
■以下全てコメントアウト
// FMPluginDllEntryPoint.cpp : Defines the entry point for the DLL application.
//
/*
BOOL APIENTRY DllMain( HANDLE hModule,
                      DWORD  ul_reason_for_call,
                      LPVOID lpReserved )
{
   return TRUE;
}
*/


テストで「ビルド」

========== すべてリビルド: 1 正常終了、0 失敗、0 スキップ ==========

警告が無くなり、やっと正常終了!



FileMaker プラグインの開発をMicrosoft .NET Frameworkで行う[2]
につづく...かも?