NPAPI プラグインの作り方 for Windows その3
続きです。
今回は、サンプルをビルドできるようにします。
ファイルの準備
前回の説明の中で書いたように、Gecko SDK 1.9.2と、バージョン 1.9.2 向けのnpruntime のサンプルをダウンロードします。
Gecko SDK は、展開して得られるincludeディレクトリ以下のみを使います。
面倒な人向けに、GitHubにまとめておいたので、そちらのoriginal_filesディレクトリ以下をお使いください。
以降では、これらをC:\work\test\includeおよびC:\work\test\npruntime以下に展開したとして話を進めます。
Visual Studio プロジェクトの作成
続いて、Visual Studio のプロジェクトを作成します。
Compiling The npruntime Sample Plugin in Visual Studioのページを参考に進めます。
プロジェクトの新規作成
以下のような設定で、新しいプロジェクトを作成します。
- メニューから「ファイル」-「新しいプロジェクト」を選びます。
- 種類は「Win32」の「Win32プロジェクト」を選びます。
- 「npsample」などの適当な名前をつけて、プロジェクトを作成します。
- ウィザード中の「アプリケーションの設定」で「DLL」を選び、「空のプロジェクト」にチェックを入れます。
ファイルの追加
サンプルファイルをプロジェクトに追加します。
ダウンロードしてあるC:\work\test\npruntime以下のファイルを、作成したプロジェクトのディレクトリにコピーしておくとよいでしょう。
- ソリューションエクスプローラーの「ソースファイル」を右クリックし、「追加」-「既存の項目」をクリックします。表示されたダイアログで、
np_entry.cpp,npn_gate.cpp,npp_gate.cpp,plugin.cppを追加します。 - 同様に「ヘッダファイル」を右クリックし、
plugin.h,resource.hを追加します。 - さらに「リソースファイル」を右クリックし、
nprt.rcを追加します。
これで、図のような状態になっているはずです。
プロジェクトの設定
続いて、プロジェクトの設定をします。
- メニュー「プロジェクト」から「XXX のプロパティ」(XXX はプロジェクト名) をクリックし、プロパティを表示します。
- 左上の「構成」で Release を選択します。
- 「構成プロパティ」の「全般」の「ターゲット名」を、作成するプラグインの名前に設定します。これは、プロジェクト名と異なる名前を付ける場合には必須です。NPAPI プラグインの名前は、
np*.dllという形式であるのが正しいようなので、プロジェクト名がそうなっていない場合は、ここで名前を設定します。 - 「構成プロパティ」の「全般」の「文字セット」を「マルチバイト文字セットを使用する」に設定します。
- 「構成プロパティ」の「C/C++」の「追加のインクルードディレクトリ」に、ダウンロードしておいた Gecko SDK のインクルードディレクトリである「C:\work\test\include」を追加します。
- 「構成プロパティの」の「C/C++」の「プリプロセッサ」の「プリプロセッサ定義」に、以下をすべて改行で区切って追加します。
WIN32,_WINDOWS,XP_WIN32,MOZILLA_STRICT_API,XPCOM_GLUE,XP_WIN,_X86_ - 「構成プロパティの」の「リンカー」の「入力」の「モジュール定義ファイル」を
nprt.defに設定します。nprt.defのフルパスを設定してください。
ファイルの修正
ビルド対象を「Debug」から「Release」に変更し、ビルドしてみると、いくつか警告やエラーが出ます。ここでは、その対応をします。
-
まず、コンパイルエラーの一つ目である
plugin.cppのprintfをすべて削除します。手作業で消してもよいですが、エディタなどで「
printf」を「//printf」に置換すると楽だと思います。 - 続いて、
strdupは ISO 標準の_strdupにするべきだ、という警告が出ているので、これもstrdupを_strdupに置換することで対応しておきます。 - また、
strcpyはセキュアではない、という警告については、対応が面倒なので、「プリプロセッサ定義」に_CRT_SECURE_NO_WARNINGSを定義リストに加えることで消してしまうことにします。 nprt.defの一行目のLIBRARYの右に書かれた単語NPRTは、このプラグインの名前です。この名前が「構成プロパティ」で設定したものと異なる場合、警告が出るので、こちらも「構成プロパティ」で設定したものと同じ名前に設定します。- 最後に、
nprt.rcの#include "afxres.h"を#include "windows.h"に変更します。
これで、ひとまずビルドはでき、DLL ファイルが生成されるようになったと思います。
ここまでで、ひとまずプラグインとなる DLL のビルドができました。
しかし、このままではソースコードのバグにより、うまく動作しません。
次回は、正しく動作するように修正していきます。


このコメントは投稿者によって削除されました。
返信削除5q5isaap
返信削除glucotrust official website
sight care
kamagra jel
viagra sipariş
cialis eczane
cialis 5 mg
cialis 20 mg