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