ab.com コミュニティ

ActiveBasicを通したコミュニケーション
現在時刻 - 2024年4月28日(日) 06:10

全ての表示時間は UTC+09:00 です




新しいトピックを投稿する  トピックへ返信する  [ 38 件の記事 ]  ページ移動 1つ前へ 1 2 3
作成者 メッセージ
 記事の件名: DLLのクラス
投稿記事Posted: 2005年12月02日(金) 21:56 
オフライン

登録日時: 2005年5月31日(火) 17:59
記事: 899
お住まい: 東京都
もしDLLからクラスを外部に公開したいと言うのであれば,現在のABでは不可能です。
やるとしたらWinAPIのようにハンドルとそれを操作する関数を公開するという形になります。

逆に言えばオブジェクト指向言語の機能を使っていないだけであって,WinAPIもオブジェクト指向になっていると言えるのです。


通報する
ページトップ
 記事の件名: 返信@yu0627
投稿記事Posted: 2005年12月02日(金) 22:33 
オフライン

登録日時: 2005年5月31日(火) 14:53
記事: 154
引用:
> もしDLLからクラスを外部に公開したいと言うのであれば,現在のABでは不可能です。
> やるとしたらWinAPIのようにハンドルとそれを操作する関数を公開するという形になります。
>
> 逆に言えばオブジェクト指向言語の機能を使っていないだけであって,WinAPIもオブジェクト指向になっていると言えるのです。
 そうなんですか。
 あのあと自分でやってみてよくよく考えてみたらDLL内のクラス内の関数を園に出すのは難しいのがわかりました。
DLLに関しては今までと同じ構造化スタイルでやっていこうと思います。
オブジェクト指向はDLL以外のプログラムで使いたいと思います。

 ご返信ありがとうございます。


通報する
ページトップ
 記事の件名:
投稿記事Posted: 2005年12月02日(金) 23:42 
オフライン

登録日時: 2005年8月23日(火) 00:15
記事: 161
お住まい: 沖縄県
もう恥を書くのは止めようと思いましたが、自分の現役時代の逸話だけ書いておきます。
WinAPIもオブジェクト指向になっているとイグトランスさんも書いていましたので便乗です)

むかーし昔、MicrosoftOS/2に負けない本格的なOSを作成する必要がありました。
その為に、DECから引き抜いたデイブ・カトラー氏(OS開発の第1人者?)のチームにWindows NTの開発をお願いしました。そのOS(NT3.51まで)の構成は、カーネルがリング0、ドライバーがリング1、アプリケーションがリング3となっていました。
NT3.51までは理想的なOSの構造です。Win9x系&NT4.0以降はカーネル&ドライバーがリング0、アプリケーションがリング3なのでドライバーがこけるとOSも死にます)

NTを開発する際、ドライバーを含めてOSはC++で開発するようにビル・ゲーツ氏より指示があったようですが、デイブ・カトラー氏はOSの中核部分のC++化に猛烈に反対しました。NTで全面的にC++で書かれた唯一のドライバーは(OSの中核として認識されなかった)ディスプレイドライバーだけでしたが、画面の描画がWin9x系に比べてものすごく遅く、WinNTはシステムが重過ぎると不評を買ってしまいました。
(その当時、Win9xより極端に遅かったのは、ディスプレイドライバーだけですが、ユーザが一番遅いと感じるのも画面表示ですよね!)

その後、NT4.0で性能を改善しますが、ドライバーをリング0に引き上げることにより見かけ上の性能改善を行いました。
・性能と引き換えに安定性を放棄したと言います。
・なぜドライバーをリング0にすると性能が上がるかは、リクエストがあればお答えします。

余談
WinAPIもオブジェクト指向なら、実装はどうであれDLLは(データと手続きを一体化して保持している存在なので)オブジェクト指向となりますよね!

ここからは愚痴
愚痴を書こうかなって思いましたが、ABは建設的に行きましょう!


通報する
ページトップ
投稿記事Posted: 2005年12月03日(土) 10:14 
オフライン

登録日時: 2005年5月31日(火) 17:59
記事: 899
お住まい: 東京都
ところでNTでドライバがリング0になった理由には,
他のCPUへの移植を考えたためという話も聞いたことがあります。
これはx86の特権レベルに当たるものがものによっては,
2段階しかないというCPUもあるからということらしいです。

それとマティさんの書いた高速化やその他諸々の理由があって,
NTのドライバはリング0で動かすことにしたのでしょう。


通報する
ページトップ
投稿記事Posted: 2005年12月05日(月) 18:07 
オフライン

登録日時: 2005年7月19日(火) 07:02
記事: 183
お住まい: 宮城県
ちょっと目を離しましたら、びっくりの盛り上がりですね
引用:
スレッドの内容から外れてきているようにも思えますが,
すいません。私がオブジェクト指向の話に食いついたのが原因っぽいですね。覚えている最中なので、口出ししてみたかったんで、つい^^;
引用:
使用する側から見ると、その通りだと思います。
あ、賛同いただけたw
オブジェクト指向を説明するときに、「こういえば分かりやすい」って満足できる回答に思っていたので、よかったです。おっしゃる通り、ユーザーがいかに楽をするか、って方法論ですよね。
引用:
ちなみに世間的にはこんな感じのようです。
さすがはWikipedia。がっつり載ってますね。
たしかな資料をありがとうございます♪
途中で読むのを放棄しましたが(爆)。
引用:
DLLに関しては今までと同じ構造化スタイルでやっていこうと思います。
オブジェクト指向はDLL以外のプログラムで使いたいと思います
ども。最近オブジェクト指向バンザイになってきている、覚えたての初心者です。仲間ですかな?w 覚えたものは使ったみたいじゃないですか(笑)。
ちなみに、DLLであっても、内部で完結する処理に関してはクラスを使うのが便利だと思います。外部とやり取りする部分は関数で。まぁ、Sinryowさんがおっしゃってるように何でもかんでもクラス(~オブジェクト指向)にする必要はないですけど。いい所取りで楽に組んでいきましょうよ♪


蛇足。
先日c++で窓作成&プロシージャをクラス化してみました。
まぁMFCのCWndクラスのまねごとになるんですけど、便利ですw
窓作成がプロシージャまで含めて数行で終えられれます。
ABでもそんなクラスがあれば、Ver2.x時代(window+GetMsgWnd?)からの移行が楽になるんじゃないかと。誰か作ってくれないかな~w(マテ。 ・・・先ず隗より初めよ?時間あったら移植してみようかな(^^;)


通報する
ページトップ
 記事の件名: 返信@yu0627
投稿記事Posted: 2005年12月06日(火) 17:46 
オフライン

登録日時: 2005年5月31日(火) 14:53
記事: 154
返信ありがとうございます。

>マティさん
ちょっとリングの話まで及ぶとわからないので...。
カーネルというのがOSの中核ということは知っていますが。

>淡幻星さん
あ、DLLの内部でクラスを使う方法がありましたか^^;それもそうですね。

余談
自分で公開しているソフトに雑誌紹介許可申請が来たりMIDI→WAVするソフトについての質問が来たりで大変ですw


通報する
ページトップ
 記事の件名: Re: 返信@yu0627
投稿記事Posted: 2005年12月06日(火) 18:50 
オフライン

登録日時: 2005年7月19日(火) 07:02
記事: 183
お住まい: 宮城県
完全に雑談となってしまいますが・・・失礼して^^;
ちなみに私もリングは分かりません┐(´ー`)┌

余談にレスです→よって余談ですw≫yu0627さん
> あ、DLLの内部でクラスを使う方法がありましたか^^;それもそうですね。
内部で完結する例。実践コードモジュールのファイル読み書きクラスは、私がDLLでファイルに対して一定の処理をするときに楽をするために作ったのものですね。どうでもよいですが^^;

> 雑誌紹介許可申請が来たり
来ると嬉しいですよね~☆
私も先日初めて受け取り、その日一日中、頭の中はそればかりでした(笑)。

>MIDI→WAVするソフトについての質問が来たりで大変ですw
直接変換!?そんな便利なものが!?と慌ててDLさせてもらいました。
なるほど。再生しながら録音ですか。一般の方法なので、飛びついた分だけちょっとがっかり^^;
でも再生/録音開始のタイミングを気にしなくて良いのは楽ですね。
変換する際には使わせていただきます☆


通報する
ページトップ
 記事の件名: 返信@yu0627
投稿記事Posted: 2005年12月07日(水) 20:39 
オフライン

登録日時: 2005年5月31日(火) 14:53
記事: 154
完全に余談w
引用:
私も先日初めて受け取り、その日一日中、頭の中はそればかりでした(笑)。
実のところ三通も来ています。うれしいです。
引用:
直接変換!?そんな便利なものが!?と慌ててDLさせてもらいました。
なるほど。再生しながら録音ですか。一般の方法なので、飛びついた分だけちょっとがっかり^^;
でも再生/録音開始のタイミングを気にしなくて良いのは楽ですね。
変換する際には使わせていただきます☆
直接変換は無理です。音階を記録するもの→音を記録するものの変換はすさまじいと思っています。
WAVファイルの記録方法を分析してMIDIファイルの音にして書き込む方法は...無理ですね。
これ作るのにかなり苦労しました。それなりに傑作です^^


通報する
ページトップ
期間内表示:  ソート  
新しいトピックを投稿する  トピックへ返信する  [ 38 件の記事 ]  ページ移動 1つ前へ 1 2 3

全ての表示時間は UTC+09:00 です


オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[17人]


トピック投稿:  可
返信投稿:  可
記事編集: 不可
記事削除: 不可
ファイル添付: 不可

検索:
ページ移動:  
Powered by phpBB® Forum Software © phpBB Limited
Japanese translation principally by ocean