まずは、以下からテンプレートをダウンロード
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;
}
*/
■以下全てコメントアウト
// 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]
につづく...かも?
0 件のコメント:
コメントを投稿