ある掲示板サイトの専用ブラウザを作成しようとしています。
ブラウザの作成は初めてです。
ブラウザの機能は
①JavaScriptは非対応でいい
②CSSは反映させたい
③クッキーの保存はいらない
④Proxyは刺さなくてもいい
⑤専用ブラウザなのであるサイト限定のためブックマークはいらない
⑥同じく履歴の保存はいらない
⑥言語設定はいらない
とりあえず今考えてるのはこのくらいです。
デザイン的には左に投稿フォームをCreateWindowExで作成し
右には現在閲覧中のページを表示します。
ここでいくつか質問なのですが、
HTMLを反映?させる便利なAPIみたいなのはないのでしょうか?
最初にも書きましたが、ブラウザ作成は初めてで、想像では、
ソケットでGET送信して返ってきたレスポンスのHTMLタグを処理するのかな?と思っています。
そのあたりはどう処理するのでしょうか?
それから、掲示板ではUTF-8になります。
CreateWindowExで作成した投稿フォームからWM_COMMANDに送り
そこでソケットのPOST送信で投稿処理をするわけですが、
UTF-8の処理がよくわからないのでどこか参考になるようなページはないでしょうか?
最後に、今回の専用ブラウザの作成はそこの掲示板の管理人より許可を得ていますが、
次回、別の掲示板の専用ブラウザを作成するとなった場合、法的?には許可は必要なのでしょうか?
一応マナー的には許可は必須だと思うのですが、法的にはどうなのか知りたいです。
回答よろしくお願いします。
専用ブラウザ
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: 専用ブラウザ
公に公開されているものは別に許可は要らないと思いますが、マナー的には許可をとったほうが良いと思います。
あと、著作権の表示を消したりしたら問題ですが。
HTMLのレンダリングエンジンは結構難しいので、オープンソースでも大規模なプロジェクトです。
IEなどでも実はHTML規格の規約を完全に守れていなかったりしましすしね。
http://ja.wikipedia.org/wiki/HTML%E3%83 ... 8%E3%83%B3
テキストだけならシンプルなのもありますが、画像なども考えると既存のHTMLエンジンを流用したほうがお手軽です。
●IEのエンジンを使う。
http://ja.wikipedia.org/wiki/Trident
「IEコンポーネントの使い方 [VC++の使い方]」
http://www.nitoyon.com/vc/tips/ie_component.htm
探せばいっぱい出てきます。
●FireFoxのエンジンを使う。
http://ja.wikipedia.org/wiki/Gecko
「Gecko SDK - MDC Doc Center」
https://developer.mozilla.org/ja/Gecko_SDK
[追記]
HTMLレンダリングエンジン自身に興味が有るのなら自分で書いてみるのも面白いです(かなり時間がかかると思います)。
構文解析・字句解析などの勉強をしてください(ようするにインタプリタやコンパイラの前段処理の様なことが必要です)。
あと、著作権の表示を消したりしたら問題ですが。
HTMLのレンダリングエンジンは結構難しいので、オープンソースでも大規模なプロジェクトです。
IEなどでも実はHTML規格の規約を完全に守れていなかったりしましすしね。
http://ja.wikipedia.org/wiki/HTML%E3%83 ... 8%E3%83%B3
テキストだけならシンプルなのもありますが、画像なども考えると既存のHTMLエンジンを流用したほうがお手軽です。
●IEのエンジンを使う。
http://ja.wikipedia.org/wiki/Trident
「IEコンポーネントの使い方 [VC++の使い方]」
http://www.nitoyon.com/vc/tips/ie_component.htm
探せばいっぱい出てきます。
●FireFoxのエンジンを使う。
http://ja.wikipedia.org/wiki/Gecko
「Gecko SDK - MDC Doc Center」
https://developer.mozilla.org/ja/Gecko_SDK
[追記]
HTMLレンダリングエンジン自身に興味が有るのなら自分で書いてみるのも面白いです(かなり時間がかかると思います)。
構文解析・字句解析などの勉強をしてください(ようするにインタプリタやコンパイラの前段処理の様なことが必要です)。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: 専用ブラウザ
UTF-8のコードのことを書き忘れました。
UTF-8とSJISを変換したいならコード変換が必要です。
LGPLで良いならlibiconv.dllがあります。
libiconvを直接リンクするとGPLになるんで全ソースコードを公開する義務が出てきます。
詳しくは調べてください。
「Libiconv」
http://www.kaoriya.net/
UTF-8とSJISを変換したいならコード変換が必要です。
LGPLで良いならlibiconv.dllがあります。
libiconvを直接リンクするとGPLになるんで全ソースコードを公開する義務が出てきます。
詳しくは調べてください。
「Libiconv」
http://www.kaoriya.net/
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: 専用ブラウザ
CreateWindowExとあるので,Windows前提でよいと思います。softya(ソフト屋) さんが書きました:UTF-8のコードのことを書き忘れました。
UTF-8とSJISを変換したいならコード変換が必要です。
その上で,95系を切り捨てればUTF-16ベースでプログラムを組むことができます。
それであれば,UTF-16とUTF-8の変換はMultiByteToWideChar/WideCharToMultiByteでCodePageとしてCP_UTF8を指定するだけになります。
Shift_JISなどに変換してしまうと文字情報が欠落する可能性もありますし,A系APIを使うメリットはないと思います。
Re: 専用ブラウザ
softya(ソフト屋)さん
ブラウザの作成って大変なんですね・・・
>テキストだけならシンプルなのもありますが
テキストだけって言うのは例えば
<font color="red">テキスト</font>
こんなソースだったら「テキスト」を赤色で表示するということでしょうか?
画像などは使われていない(アップローダーもありません)ので、
今のところは文字の修飾だけでいいのですが。。。
ブラウザの作成って大変なんですね・・・
>テキストだけならシンプルなのもありますが
テキストだけって言うのは例えば
<font color="red">テキスト</font>
こんなソースだったら「テキスト」を赤色で表示するということでしょうか?
画像などは使われていない(アップローダーもありません)ので、
今のところは文字の修飾だけでいいのですが。。。
Re: 専用ブラウザ
ちょっと試しにコンソールで作ってみました。YuO さんが書きました:UTF-16とUTF-8の変換はMultiByteToWideChar/WideCharToMultiByteでCodePageとしてCP_UTF8を指定するだけになります。
#include <stdio.h>
#include <windows.h>
#include <winnls.h>
#pragma comment(lib,"kernel32.lib")
int main()
{
char buf[1024];
char enc_buf[1024];
printf("入力されてた文字列をUTF-8形式にエンコードします。\n"
"文字列を入力してください。\n");
scanf("%s",buf);
MultiByteToWideChar(CP_UTF8,MB_PRECOMPOSED,(LPCSTR)buf,sizeof(buf),(LPWSTR)enc_buf,0);
printf("%s",enc_buf);
getch();
}
文字列を入力してもなにも表示されないまま終わってしまうのですが・・・
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: 専用ブラウザ
もっとシンプルでテキスト文だけ取り出してレイアウトする程度です。あま さんが書きました:softya(ソフト屋)さん
ブラウザの作成って大変なんですね・・・
>テキストだけならシンプルなのもありますが
テキストだけって言うのは例えば
<font color="red">テキスト</font>
こんなソースだったら「テキスト」を赤色で表示するということでしょうか?
画像などは使われていない(アップローダーもありません)ので、
今のところは文字の修飾だけでいいのですが。。。
文字サイズも使えないはず。
W3Mとか。W3Mで画像検索してもらうと分かると思います。
http://w3m.sourceforge.net/index.ja.html
【追記】
>MSDNを見ながら作ったのですが、間違っていますか?
>文字列を入力してもなにも表示されないまま終わってしまうのですが・・・
それだとSJISをUTF-8に変換しているのと、もしUTF-8に変換成功してもそのままprintfしても表示されませんよ。
文字コードに付いて調べられたほうが良いと思います。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: 専用ブラウザ
返信遅くなってしまって申し訳ないです>_<
文字コードの方は解決しました。
ブラウザの方はまだちょっとわからないのでこれからもっと勉強していきます。
ありがとうございました。
文字コードの方は解決しました。
ブラウザの方はまだちょっとわからないのでこれからもっと勉強していきます。
ありがとうございました。