1 :
Delフサギコ :
02/05/29 17:54
2get
3getしてもらえない。 鬱だ、、ぶら下がろう… _ _ / _)======_) | | || | | | ∧||∧ | | ミ; ⌒ヽミ | | ミ ミ .ミ | | ∪ @ミ | | ミ ミミ ミ | | ∪ ∪ |_|__|_| \_ \. .  ̄ ̄ ̄
pcodeが全くどうでもいいレス投稿してる。
pcodeってまだいたの?
7 :
デフォルトの名無しさん :02/05/29 19:11
@
VB厨必死だな .NET哀れだな 俺、放置だな(泣 の三本です。 来週もまた、見てくださいねー ギャハププ
9 :
デフォルトの名無しさん :02/05/29 19:39
Delphiって何に使うの?
なんで新スレ立てるんだよ。 もう最後の方は双方共、厨房しかいなかったんだから あそこで終わらせればいいのに。
11 :
デフォルトの名無しさん :02/05/29 20:33
むしろ、C#とJavaの比較 あるいはKylixとJAVAの比較が欲しいんだが。 Delphiは使わないよ。
むしろ C丼と.NETの比較が欲しいな
13 :
デフォルト名無しさん :02/05/29 21:27
C言語を始めたいのですが、おすすめの本ってありますか? 当方は全くの素人です。
>>9 Kylixで開発したものをWinに移植するのに使うんだyo!
15 :
デフォルトの名無しさん :02/05/29 21:33
Delフサギコさんは今仕事はVBなの? どうしてC++BuilderやJBuilderにいかなかったの?
(プッ (ゲラ (嘲笑激藁 の三本です。 来週もまた、見てくださいねー ギャハププ
_____________ ∧,,∧ / ミ,,゚Д゚彡 < WndProcをOverRideするのは U つ \なかなかかっこよいですね。 @ミ ミ  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ∪''∪ Delphiではプロパティなんだよね...
>>20 Delphidでも継承で書く事も出来るよ というかWinControl継承コンポは普通そうするでしょ
>>19 C#でネイテブコードが吐けるようになったら
C#でで小さな実行ファイルを作ろう
なんてスレを作ってぜひ色々投稿してくれ
|,,∧∩
>>21 マヂですか?
|Д゚彡
| ミ′ 例解をキボンヌ
| ミ
| U
例えばタスクバーが
Explorerあぼーんといっしょにお亡くなりして
その後、フカーツした場合のタイミングを検知するために
以下のようなコードを書くと思われなんですが
このWndProcを継承でかけるんでしょうか?
(これ、タスクトレイアイコン登録アプリでは
タスクトレーアイコンをフカツさせる為に必須の実装)
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
OldWndProc: TWndMethod;
procedure FormWndProc(var Message: TMessage);
public
end;
procedure TForm1.FormWndProc(var Message: TMessage);
var
Msg_TaskbarCreated: UINT;
begin
Msg_TaskbarCreated := RegisterWindowMessage('TaskbarCreated');
if Message.Msg = Msg_TaskbarCreated then
begin
Self.Caption := 'タスクバー復活したよ';
end;
OldWndProc(Message);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
OldWndProc := Self.WindowProc;
Self.WindowProc := FormWndProc;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
Self.WindowProc := OldWndProc;
end;
>>23 21じゃないけども、それはフォームのWndProcをオーバーライドするだけでは駄目?
サブクラス化する意味無いように見えるけど・・・。
|,,∧ Propertyの叔母ライド....どやるんだっけ? |Д゚;ミ | U | ミ やべー | U
>>25 だから プロパティじゃないって こうしてごらん
TForm1 = class(TForm)
private
procedure WndProc(var Message: TMessage);override;
end;
procedure TForm1.WndProc(var Message: TMessage);
var Msg_TaskbarCreated: UINT;
begin
Msg_TaskbarCreated := RegisterWindowMessage('TaskbarCreated');
if Message.Msg = Msg_TaskbarCreated then
begin
Self.Caption := 'タスクバー復活したよ';
end;
inherited;
end;
自分自身のWndProcを取り替えてるからサブクラス化とは言わないか・・・ただの交換?
>>25 プロパティでなくてフォームのWndProcメソッドのオーバーライドじゃ駄目なのかなと。
かぶった
まあ TForm1 = class(TForm) private procedure TaskbarCreated(var Message: TMessage);message WM_TaskbarCreated; end; として MM_TaskbarCreated が変数で設定出来るか ChangeVMTDynamicTable(メソッド名,ID) とかがあって IDが書き換えられると便利だね
WndProcで無くとも DefaultHandler でも Dispatch でも好きな段階でオーバライド可能
|,,∧ サンクスコ |Д゚彡 | U | ミ 今までそのやり方知らなかった | U ちょっと恥ずかしい…
>>30 確かにね、一番良く使うならともかく、こういうメッセージはやっぱりこうしないと効率悪いかな
type TForm1 = class(TForm)
private
procedure .DefaultHandler(var Message: TMessage);override;
end;
implementation
var Msg_TaskbarCreated: UINT;
procedure TForm1.DefaultHandler(var Message: TMessage);
begin
if Message.Msg = Msg_TaskbarCreated then
begin Self.Caption := 'タスクバー復活したよ';
end;
inherited;
end;
initialization
Msg_TaskbarCreated := RegisterWindowMessage('TaskbarCreated');
まあ、
>>20 からの流れでWndProcのoverrideの話だから
>>19 ところで、C#って Delphiみたいなメッセージディスパッチの仕掛けはないの?
BEGIN_MESSAGE_MAP みたいな旧スタイルではないのでしょ?
>>20 C# だと継承しかないみたいです。
Delphi なら迷うぐらいたくさん方法がありますが。
>>34 くわしくないのではっきりとは言えないんですが、
特別なメッセージ処理の仕組みは無いんじゃないで
しょうか。メッセージ通知も protected ですし。
System.Windows.Forms.Control のリファレンスを見ると
必要最小限という感じです。
SDK ドキュメント
ms-help://MS.NETFrameworkSDK.JA/cpref/html/frlrfsystemwindowsformscontrolmemberstopic.htm
クリップボード監視とフォームの最前面移動をクラス化しようと思った のですが、 Delphi のように WndProc を持つ非ビジュアルコンポーネントの 作り方がわからないので Button を継承して作ってみたんですが、 終了処理でクリップボードチェインから抜けるのに失敗してしまいます。 どうも、親のフォームよりも後に Dispose が実行されるので、自分の ハンドルは有効でも親のハンドルが無効なため ChangeClipboardChain がエラーになるようです。 アンマネージ・リソースの開放は苦労しそうです。
>>35 そうですか メッセージクラスを用意すれば
Publishedメソッドをその名前で自動的にシリアライズするような機能でもあるのかと思ってた
38 :
デフォルトの名無しさん :02/05/30 17:55
何か勘違いしてる奴ばっかりだな。(嘲笑激藁
>>38 なんか キミ見てチョッとばかりホットしたよ。 俺でもプログラマやってていいんだなあって
ありがと
40 :
デフォルトの名無しさん :02/05/30 18:03
>>39 NativeWindowも知らない無知無能を藁ってるだけなのに、読解力が足りないようだな。(嘲笑禿藁
ドットネット中心になると 全てメッセージではなく オブジェクトのシリアル化で対処するのかなあ
>> IWin32Window を実装しているのが Control だけなんで 他には無いと勘違いしてた。これつかえばカプセル化 できそう。 教えてくれてありがとう。 (嘲笑禿藁ってほんとはいい奴だったんだね。
ビジュアル開発環境を持ってないから NativeWindow で十分 なんだけど、非ビジュアルコンポーネントは Visual Studio .NET だとどういう風につくるの? 継承だけじゃだめみたいだけど >> 40
>>43 非ビジュアルコンポーネントは Delphi の言い方で
Visual Studio だと 非ビジュアル?Windows コントロールかな。
>>44 普通にユーザーコントロール作って、コントロール側で Visible = false; にすればいいだけだと思うが・・・。
>>45 コントロールの雛型を継承してコントロールを作り、実行時
または設計時のプロパティで非表示にするという感じでしょうか?
その場合ユーザーコントロールの雛型のクラスには何を使うんでしょう?
かなり初歩的な質問ですみません。
旧 Visual Studio も含めて コントロールを作った経験がないので知っと
きたいんです。
System.Windows.Forms.UserControl か System.Windows.Forms.Control のどっちかだとは思うんですが。
48 :
デフォルトの名無しさん :02/05/30 21:04
ソフトウェアの開発環境としては .NET>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>UNIX ということでよろしいか?
>>48 DOS時代の大先輩を気がついたら
下で使ってたという感じだな。
>48 個人的にはコンソールのほうが使い易い。 フォームにコントロールぺたぺた貼り付けるGUIデザインも 吐かれるコードが気に入らずどのみち全面書き直しになる。 せいぜい複雑なことやるときにサンプルとして参照する程度。
>吐かれるコードが気に入らずどのみち全面書き直しになる。 _____________ .∧,,∧ /コードウィンドウの[±]で閉じて 〜'"ミ,,゚Д゚ミ < 閉じて見るな。 UU''UU \___________
55 :
デフォルトの名無しさん :02/05/30 22:25
>>51 に同意。
C#相談室スレを見ても、達人級の回答者さんたちは皆IDEの吐き出すテンプレートなんて使ってないよ。
分かる?IDEに頼ってるのなんてコンピュータの基礎も知らない初心者ばかり。
プロはIDEなんて使わんのよ。君らアマチュア(並みの自称プロ)には理解し難いだろうけど。
58 :
デフォルトの名無しさん :02/05/30 22:35
MSの人たちは実際はEmacsでコードを書いてmakefileでビルドしてる。 つまり未だにUNIXのコマンドラインベースが最強なんだよ。 開発でどうしてマウスなんか使う必要があるんだ? くだらないね。そんなカチカチやってるが本当の開発だと思ってるのか?
60 :
デフォルトの名無しさん :02/05/30 22:39
>>55 チーム開発できない奴( ´,_ゝ`)プッ
一人寂しくツールでも作ってろ
>>58 20 世 紀 か ら タ イ ム ス リ ッ プ し て き た の で す か ?
最強なのはどうでもいいが、大半を占める普通のプログラマをわざわざ貶める 事もないのでは?本当のプロならこんなこと思ってても言わないはず。 ま、ネタであることを祈るが
64 :
デフォルトの名無しさん :02/05/30 22:46
君たちの役目はGUIの表面だけ作って終わりなのかな? ならばチーム開発・RAD使用もうなづけるね。やってることはwebデザイナーにも劣るけどね。 システムコアのフレームワークを作るならRADなんて必要もないし、担当者も3人も4人もいらない。 君たちは下っ端だったのか。それは失礼。
>>55 お前無職だろ。
業界では飯の種にしていればプロだ。
お前の妄想してるプロという言葉をマニアに置き換えてからほざけ
Del厨の最も嫌がる部分を突くな。(嘲笑激藁
脳内年収1000万プソーヤーには何を逝っても無駄 ( ´,_ゝ`)プッ
69 :
デフォルトの名無しさん :02/05/30 22:51
>>65 >業界では飯の種にしていればプロだ。
通称サラリーマンプログラマだね。(嘲笑禿藁
早い話マジレスで中小企業向けのシステム構築にはIDE必須。 ホント金が出ない。
71 :
デフォルトの名無しさん :02/05/30 22:55
>>70 それは張りぼての作り捨てをやっているだけ。開発とは言わない。
73 :
デフォルトの名無しさん :02/05/30 22:57
>>71 じゃあお前の力で地球上からIDEを駆逐して下さい
ガンバレ
結局は慣れと好みの問題に過ぎないということなんだけどな。 漏れはRADツールを使うとコンパイルからして裏でどう動いているのか 把握しづらいので落ち着かない。気にしなくていいっちゃいいことだが、 やはり自分の手でmakefile書いてmake一発がシンプルで落ち着く。 骨の髄までWin開発のひとには理解してもらえないだろう。 VC++はともかく、JavaもC#もテキストエディタだけでGUIアプリは作れるのだ。 とりあえずWin一辺倒のひとに希望するのはWinのDos窓とUnix系環境の シェルを同列に見積もらないで欲しい。カニ蒲鉾と茹でたてのタラバほどの 違いがあるからね。
>>74 はじめからそう言えば荒れなかったんだがね。
>75 すまん、はじめがどこかは知らんがこのスレには初書き込みだ。
77 :
デフォルトの名無しさん :02/05/30 23:03
>ホント金が出ない。 思うんだが、クライアントサイドのメインは外注かバイトに投げて、 こっちは鯖のデーモンプロセスとミドルウェアとコンポーネント だけシコシコやると楽しい。 クライアントの外部仕様なんて納期直前に出来上がって デスマーチなりがちでつらい。
78 :
デフォルトの名無しさん :02/05/30 23:04
>>74 同意。UNIXのシェルの生産性は極めて高い。
本来GUIというものはCUIでできることに見た目的な皮をかぶせているだけで
やれることは本質的に変わらない。むしろ、GUIの方が生産性が落ちる。
キーボードとマウスを行ったり来たりするからだ。
CUIを生産性が低いという人はただ単にシェルを使いこなせてないだけで
本当はGUIを使う資格すらないんだよね。
一般ユーザならまだ許せるけど、開発者でこういうのがいるのは笑えないね。
>>78 GUIの方が生産性が高いなんて誰が言った?
職人芸と称して自分しか読めないパスタコード作る人?
プロだったらIDEが裏でやってること理解した上で使うもんだと思うが。
>>74 ばかやろう、お前にカニカマの何が分かるってんだ。
どうせタラバなんて食ったことねえんだろ(嘲笑禿藁
82 :
デフォルトの名無しさん :02/05/30 23:21
スレタイが泣いております(涙
>>78 UNIXのシェルが優れてる事は認めるが、
GUIよりCUIが優れてる、てのはあまりに痛い発言だな。
だれかCUI版のPhotoshop作ってくれ。GIMPでもいいぞ。
86 :
デフォルトの名無しさん :02/05/30 23:39
何だ、GUIしか使えない点ではDel厨もC#厨も仲良しだな。(嘲笑激藁
87 :
デフォルトの名無しさん :02/05/30 23:47
UNIXユーザーにはDelphiとC++Builderおすすめ。 MFCはアテナウィジェット以下、VCL/CLXは gtkみたいにラク。おまけに統合環境は必須ではない。 gtkみたいにシグナル機構ばりばり使ったCよりも ObjectパスカルかC++のポリモーフィズムの方が 理解が簡単。
∫ _____________
∧,,∧ ∬ /薦めるの無駄だと思われ....
ミ,,゚Д゚ノ,っ━~ < Delphiだって全部IDEなしでGUI作成できる
_と~,,, ~,,,ノ_. ∀ \といっても理解できんだろうし。
.ミ,,,/~), .| ┷┳━
 ̄ ̄ ̄ .し'J ̄ ̄|... ┃
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ .┻
俺も詳しいことは知らんがGNOME作者さんの
お話をどうぞ。
http://www.os-omicron.org/~takano/private/trans/bongo-bong_j.html C#のWinFormの開発は昔からDelphiで味わっているので
たいしたものとは感じられないけど。
C#で使ったんだけど、ASP.NETのGUIの生産性は
従来の開発スタイルを根本から変化させると感じた。
>>88 おお、Miguelじゃん。monoのリーダー的存在だよ。
91 :
デフォルトの名無しさん :02/05/31 00:26
>>88 C#って言ってる時点でDQN。
VB.NETでも本質的には変わらない。
>>88 これで分かったでしょ?
DelphiがVB.NETに負けてるという根拠が。
94 :
デフォルトの名無しさん :02/05/31 00:32
エロゲやるにもマウスを使わない強者がいるスレはここですか?
_____________ ∧,,∧ /Sunみたいに"人類対MS"とかいうバカな ミ,,゚Д゚彡 < 構図を持ち出さずに、 (ミ ミ) \いいものを作りたいという姿勢が美しいっすね。 〜ミ ミ  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ∪''∪ Borlandもこういう人をたくさん雇うといいかも。 ところで、ヘッヂのインタビューなどの リンクいろいろ、教えてくださいませ。
101 :
ヘジルスバーグ(本物) :02/05/31 01:16
すいません。質問です。 最近C#って話題になってますがこれって結局何が出来るんですか? C、C++の様にWindowsアプリを開発したりも出来るんですよね。 プラットフォームはWindowsのみなのでしょうか? Unixの方面ではC#の開発は今のところ出来そうにありませんが。 OO言語らしいのでDelphiに感触が似てると思うのですが実際はどうなのでしょうか。 .netβ2を持ってるのですが入れる勇気がありません。
102 :
河内の物体屋X(偽者) :02/05/31 01:53
>C、C++の様にWindowsアプリを開発したりも出来るんですよね。 外見上EXEファイルになることは確認しているが、 過去ログを追っていくと、JDKをEXEの中に埋め込んだ ようなJavaアプリケーションもどきと読める。 最大の問題はC++のアプリケーションをC#に移植した場合、 JustArksのように重くなるかどうかだな。
>>101 ヘジがキタ━━━━━━(゚∀゚)━━━━━━!!
本物がそんな質問するわけねーーーーーーーーーーーーーー
Hejlsbergってやっぱ「ヘイルスバーグ」と読むほうが自然に思えるな ・・・どうでもいいけど
水―――( () () )―――!
106 :
ヘジルスバーグ(本物) :02/05/31 02:28
>>101 結局何が出来るんですか?
結局何をしたいのですか?
InitializeComponent の中身って触るなって書いてあるけど、ある程度触っても大丈夫みたい ただ、アイコンとかは結局リソースになるから、Delphiみたいにテキストでチョッと直すなんて 出来ない・・・・大した問題じゃないけど
109 :
ヘジルスバーグ(本物) :02/05/31 08:10
>>108 じゃあDelphiやったほうが便利ですよね
ヘジたん(俺)のいけずぅ
>>108 ComboBoxをListBoxに変換しようとしてさ
全置換して フォームデザイナにしたらコードが消えちゃったよ
出来るのはせいぜい座標とかサイズの微調整程度
Delに飽きてきたのでC#.NET単体発売日に買ったよ 学習のためにDelからC#にいろいろ移植してみたよ 作ったものをそのままWin2Kで実行すると気がつかないのだが、 Win98に持っていくとフレームワークの起動でクソ重たいのね、いや想像以上にね Win98も対象なら、わざわざドトネト使うと評判ガタ落ちかもね 同じもの作るならDel使う、C#は、、、どんなとき使おうかしら
>111 Javaも最初はクソ重くてこんなもん使いもんになるかと思っていたものだ。 とりあえずはngen.exeでしのごう。
∀ _____________ ┷┳━ ,,,,,,,,,,,,,,,∧,,∧ / ┃ 〜′,,,,,,,,,,ミ,,゚Д゚彡< Webアプリ作成に使ってよし ┻. UU"""" U U \ いや、マジで  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
Webアプリってのはサーバーで実行されるんだよね? C#.NETで作ってもサーバーがWindowsじゃないと使えないよね? ちがってるかも
>>112 ngen.exeで検索したら、
イテテ、イテテテ、
>勝手ながらオリジナルのxPadieに敬意を表し、名称をxPadie Proとさせていただきました。
あの人と同一人物か?
ヘジのインタビュー動画でヘジが貧乏ゆすりしてたのがワラタ
_____________ / | ヂャ、そろそろ次のお題なぞ。 \_ ____________ |/ ∧,,∧ ミ,,゚Д゚ミy━~~ U ミ 〜ミ ミ U''U 送るフォルダに 自分自身のExeのショートカットを [リンク先を探す]っていう名前で入れる機能をもっていて そこに*.lnkファイルを送ったら それのリンク先ファイルのフォルダが開くって アプリをつくれるかしら。 Delphiで作ってみているのですが ショートカットファイルの扱いが かなり面倒なんですよね。 日系ソフトのヘジタンのインタビューは見てきたYO. なんともなー、あまり好感のもてるキャラじゃなかったな。 シンプルという思想は大変素敵だけれども。
118 :
Delフサギコ ◆zE1iiRdQ :02/06/02 16:47
∧,,∧ agaりまーす ミ,,゚Д゚彡 ミつ[|lllll]). 〜ミ ミ U''U
>>117 あれは訳し方がDQNなだけ。 > 日系
>>117 めんどくさいのでVB.NETで作った。C#で作るときはtlbimp要。
Imports System
Imports System.Diagnostics
Imports System.IO
Class Test
Public Shared Sub Main(args As String())
' 引数なし
If args.Length = 0
Return
End If
' ショートカット以外
If Not Path.GetExtension(args(0)).Equals(".lnk")
Return
End If
Dim shell = Activator.CreateInstance(Type.GetTypeFromProgId("Shell.Application"))
Dim folder = shell.NameSpace(Path.GetDirectoryName(args(0)))
Dim link = folder.Items().Item(Path.GetFileName(args(0))).GetLink
Process.Start(Path.GetDirectoryName(link.Path))
End Sub
End Class
' vbc /t:winexe /r:System.dll Test.vb
121 :
Delフサギコ ◆zE1iiRdQ :02/06/03 13:22
T | こんなに簡単に出来るの?...なんか微妙に A | 仕様がハショられてるような? K |彡 A ⊂ミ ・とあるフォルダに自分へのショートカットがあるかどうか R |ミ ・ショートカットファイルのリンク先の求め方 A |J この機能がDelphiでも簡単にできたらいいのにな。 .NETでは簡単に出来るですか? フサはC#しか持ってませんTAKARA 動作確認できなKATAAR
120,121 >自分自身のExeのショートカットを >[リンク先を探す]っていう名前で入れる機能をもっていて という部分はないけどちゃんと実現できてますね。 最初コマンドプロンプトから test 〜.lnk を実行したらエラーに なったけど送るメニューならうまくいきました。 VBとC#のコンパイラは.NET Framework の頒布パッケージ (SDKでなく)にもついてましたよ。 %SYSTEM%\Microsoft.NET\Framework\v1.0.3705
124 :
Delフサギコ ◆zE1iiRdQ :02/06/03 15:23
>>124 とりあえず GUI アプリで試したけど コンソールアプリだとダメって事?
// .LNK ファイル名を与えて そのリンク先のパス名を取得する関数
function GetLinkFileName(fname:WideString):String;
var obj : IUnknown;
siz:DWORD;
rid:Integer;
pfd: TWin32FindData;
begin
obj:= CreateComObject(CLSID_ShellLink);
try
with obj as IPersistFile do rid:=load(PWChar(fname),STGM_READ);
if rid<>0 then Result:='' else
with obj as IShellLinkA do begin
SetLength(Result,1024);
GetPath(PChar(Result),length(Result),pfd, 0);
Result:=PChar(Result);
end;
finally obj:=nil;end;
end;
>>126 WinアプリだとCoInitializeしなくてもOLEが動くことがあるけど
やっぱ必要なものなんだな。
限りなく厨に近いコードだな function IsSameFileName(A, B: String): Boolean; var OldMode: UINT; begin OldMode := SetErrorMode(SEM_FAILCRITICALERRORS); if FileExists(A) and FileExists(B) then begin A := GetLongFullPathName(A); B := GetLongFullPathName(B); if SameText(A, B) then begin Result := True; end else begin Result := False; end; end else begin Result := False; end; SetErrorMode(OldMode); end;
| T | | A |∧,,∧ バレマシタカ(汁 | K ミ;゚Д゚ミ | A |⊂ ミ | R | ミ | A |゙゙∪
>>124 原因調べました。
普通はuses ComObj とすれば自動的に CoInitialize されます。
その仕掛けは初期化節でInitProc というポインタに予約されて
実際の呼出しは Application.Initialize;でされます。
コンソールアプリの場合も、formsをusesすれば良いのですが
それをuses していなければ
if InitProc <> nil then TProcedure(InitProc);
と自分で呼び出さなければいけません。
__ | T | | A | | K | ________ | A |,,,γ´ ̄ヽ / | R |,,,,ミ,,゚Д゚彡< 禿しく感謝 | A |"" U U \________ | ̄ ̄ ̄| すごいです フサはそんなの自力で調べられないっす… CUI版で再実装だ!
この場合、 uses から formを外してもコンパイルエラーもリンクエラーも起きないけど 実行時にエラーが起きる訳か・・・・
134 :
デフォルトの名無しさん :02/06/03 19:19
ショートカットを作る部分もVB.NETで作成。 やっぱりC#ではめんどくさくてやってられん。 Imports System Imports System.IO Imports System.Reflection Class Test Public Shared Sub Main() Dim shell = Activator.CreateInstance(Type.GetTypeFromProgID("WScript.Shell")) ' ショートカットの存在チェック Dim link_name As String = shell.SpecialFolders("SendTo") + "\リンク先を探す.lnk" If File.Exists(link_name) Then Return End If ' ショートカットの作成 Dim link = shell.CreateShortcut(link_name) link.TargetPath = Path.GetFullPath([Assembly].GetExecutingAssembly().Location) link.Save() End Sub End Class
>>133 この場合は、 Application.Initialize; を呼ぶかどうかであって
これを呼ぶためには formをusesしていないとダメという事
>フサはC#しか持ってませんTAKARA C#スタンダード買ったって言ってたべ。
いろんなトコでいい感じに ∧,,∧ ライブラリが構築されてますね。 ミ,,゚Д゚ミζ ミ つ旦 今日はstatusbarとかみてました。 〜と,,,~),,~) AutoSizeとかMinWidthとか PanelClickとか、、、VCLで実装されてない ところが、きっちりつくられてるなー。
139 :
デフォルトの名無しさん :02/06/06 14:59
Del->C#移行ガイドのようなものってどこかにないですか? というか作れ>MS
>>135 あ! 確かに勘違いされそうですね。
>>131 は 基本的にコンソールアプリでも COMを使うならformをusesして
Application.Initialize;をしなければいけないという事です
>if InitProc <> nil then TProcedure(InitProc);
これは今のバージョンならこれでも動くよというだけで、正しい作法ではないです
>>124 ははあ、こっちが元祖なんですね。
Shell.Application は Delphiからも使えます
使い方は VBと殆ど同じです
間違えて
http://pc.2ch.net/test/read.cgi/tech/1019654975/247 こっちに up してしまいましたが
1、IUnknownのインターフェースには as IDispatch; を指定する事
2、OLEVariantをとにかく使う
この2つさえ注意すれば、VBのコードはそのまま移植可能の筈です
ちなみに VBの
> Dim shell = Activator.CreateInstance(Type.GetTypeFromProgId("Shell.Application"))
Delphiは
>guid:=ProgIDToClassID('Shell.Application');
>objShell := CreateComObject(guid) as IShellDispatch ;
となります
142 :
Delフサギコ ◆zE1iiRdQ :02/06/10 12:30
Delphiではいまいち 構文解析機能といったものが苦手で 自分で全実装しなければいけないようなのですが (Delで楽に実装する方法を教えて欲しい) C#はどうなのかしら? 例えば以下のような機能はありますか? もしくは簡単に実装できる手段は用意されてますか? ・HTMLソースからタグを除いたテキストを取得する ・HTMLソースからタグで囲まれたトコだけを取得する ・C#ソースからコメントを削除する ・C#ソースからコメントだけを取得する どうですか?  ̄ ̄ ̄ ̄ ̄|/ ̄ ̄ ∧∧ ∧,,∧ キョウモ シツモン イイカシラ (*゚ー゚) ミ゚Д゚,,彡 ノつ旦) ミ(旦⊂ミ て ) ) ミ( ( ミ〜 | ̄∪J ̄ ̄.し.し' ̄| Ψ |. | □ ジブンデ シラベナサイ
>>142 上の2つは性器表現で簡単にできるんじゃない?
Delphiで楽に実装する方法 1、慣れる・・再帰下降とか状態遷移とかのコードを何度か書いてみる 2、勉強する・・Delphi用のlex/yaccがフリーであるから、使い方を勉強すればいい 若者が、そこらへんの事から、単にライブラリ組み合わせで出来る方法探しに奔走し てては日本の情報産業の未来はないぞ。 ちゃんと勉強して、馴れて、自分のものにしろ!
146 :
Delフサギコ ◆zE1iiRdQ :02/06/10 16:28
_______________ ,,,,,,,,,,,,,∧,,∧ / 〜′,,,,,,,ミ,,゚Д゚彡< いや、慣れろとかそういう話ではなくて... UU""" U U \_______________ 美しいパーサー?とか言う奴の実装があれば 参考にしたりつかったりしてみたいと 思ってたわけでし。 1回コキリ作成するならいいんだけど それじゃ毎回面倒だから、汎用的に 生産性のあがるパーサーってのはないかなと 思うわけで。 とりあえず、TStringParserっての現在作ってまして デリミタを設定したら、その文字列で分割して 分割後のStringにアクセスできるものは作ってます。 (ソースは長いのでどこか別場所に出すけど) それを使えばテキストからメールアドレス取得するのが こんなに簡単。(か?w) とりあえず、結城タンのデザパタ本に載ってたLOGO言語を 復習した方がいいのかしら。 …でも言語を作りたいわけではないんだが…
147 :
Delフサギコ ◆zE1iiRdQ :02/06/10 16:30
__________ ∧,,∧ /これ(TStringParser)使うと ミ,,゚Д゚彡 < HTMLタグ切り出しも ミ つ且~~ \Pascalソースコメント切り出しも 〜ミ,,,,,, ,,ミ そこそこ楽にはなるです。 StringParserって命名がちょっとアレゲ?ですた? //メアドを切り出してみますた。 function GetMailAddress(S: String): String; var Parser: TStringParser; Delimiters: TArrayString; i: Integer; AddressFlags: array of Boolean; begin Parser := TStringParser.Create; try Parser.Text := S; SetLength(Delimiters, 7); Delimiters[0] := '<'; Delimiters[1] := '>'; Delimiters[2] := '='; Delimiters[3] := '"'; Delimiters[4] := ':'; Delimiters[5] := ''''; Delimiters[6] := ' '; Parser.Delimiters := Delimiters; SetLength(AddressFlags, Parser.StringCount); for i := 0 to Parser.StringCount-1 do begin if 1 <= AnsiPos('@', Parser.Strings[i]) then begin AddressFlags[i] := True; end else begin AddressFlags[i] := False; end; end; Result := ''; for i := 0 to Parser.StringCount-1 do begin if AddressFlags[i] = True then Result := Result + Parser.Strings[i] + #13#10; end; Result := TrimRight(Result); finally Parser.Free; end; end;
>>146 残念だけど美しいパーサーというのは無い。
汎用的に生産性のあがる方法はlex/yaccを使う事だ
ただ、考えられる方法としては、Delphiで言う実行時型情報を使って
lex の トークンの定義代わりに
正規票件をエスケープしたメソッド名で定義したクラスを引数に渡すと
自動的に字句解析して、結果を呼び出すようなものは作れるだろう
とりあえず、ウプしました。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1023695507 ;゚д゚) <残念だけど美しいパーサーというのは無い。
148
Σミ゚Д゚;彡エーッ!
ミ ゚Д゚彡・・・・
Σミ゚Д゚#彡 ナワケネーダロ
StringParserでは"区切り文字"で分割して
Stringの配列にStringを代入しているんだけど
この機能をもっと進化させて
"区切り文字"と一致するかどうかでString分割の判断するのではなく
指定した関数郡の
関数ポインタに処理を任せて
例えば、
・"<!--"で始まって"-->"で終わる部分で分割
・"<"で始まって">"で終わる部分で分割
という処理を行う関数列を指定して
Parserにかければ、簡単なHTMLソースが
Parser.Item[0] = '<HTML>'
Parser.Item[1] = '<HEAD>'
Parser.Item[2] = '<TITLE>'
Parser.Item[3] = #13#10+'タイトル'+#13#10
Parser.Item[4] = '</TITLE>'
Parser.Item[5] = '</HEAD>'
Parser.Item[6] = '<BODY>'
Parser.Item[7] = #13#10+'本文'+#13#10
Parser.Item[8] = '</BODY>'
こんな風に要素に代入されるパーサーってのは書けるだろうし
これを利用して更に
<AAA>と</AAA>
の組み合わせで再帰的に処理かけるとか
いう事の楽に出来るクラスは
作れるんじゃないの?
>汎用的に生産性のあがる方法はlex/yaccを使う事だ
車輪の再発明なのかもしれないけど、
コーディングガリガリなんてやってないで性器表現を覚えた方がいいと思うよ。 .NETでもJavaでもPerlでも応用が効くし。
>コーディングガリガリなんてやってないで性器表現を覚えた方がいいと思うよ。 覚えてもしばらく使わないとすぐ忘れる・・・頭悪・・・欝出汁脳
>>151 (.*?)さえ知ってれば大抵の場面で生きていける罠。
ミ ゚Д゚彡 だけど、正規表現だと "このHTMLには何個のテーブルがあって そのセルのタテヨコの個数をそれぞれ出せ" ってな命題には答えにくいんじゃなかろうかと思うタリ >>どうかしら? パーサー作るのもそれなりに手はかかるでしょうが。
>>153 世の中がXHTMLだけになれば楽になる。
正規表現は lex 使うのも必要だから当然必要だけど
正規表現検索ライブラリがあっても字句解析には少し遠いぞ
で
>>148 のようなライブラリが出来たとしても、それを使いこなすには
結局は lex/yaccでその使い方を身に付けるのと同じ程度のお勉強が必要
このあたりの処理は、Cでほぼ完成されてるから、本は殆どCで書かれている。 しかし、本に書いてあるとおりにCで入力して走らせてるより、 別の言語に置き換えてやってみるのが良い勉強法だと思うよ
ミ,,゚Д゚ミつ追加投稿しておいたけど、誰か...見てるかしら... そのlexなんとかってのはなんとなく使いたくないなー 食わず嫌いなだけかもだけど。なんとなくね。
うーん。 残念だけどコードは動かない。 TStringParser.Execute; が定義されてない しょうがないから procedure TStringParser.Execute; begin ParseExecute; end; として実行してみた。で、コードをザっと見た感じ、パーサ(文解剖)と名前を付けながら単なる セパレータ(文区切)の機能しかないように思うのだが? だから PascalSourceLift では TStringParser を使って、その後で状態遷移型のコードでパーサ を実装しているように見えるのだが? それなら、最初から状態遷移型のコード内で検索した方が速度も早いし、だいいち考え易いと思う
>>158 そうか? 俺はやってみるつもり
しかしさっそくつまづいた。
tply41a.zip の makeeD32.bat で作った実行ファイルだと Runtime errorが出る
この原因調べるのに昨夜は終わり
結局このバッチファイルの -cc を -CC にすれば解決
ミ;゚Д゚彡つ 見てもらってた(w汁 > TStringParser.Execute; が定義されてない ごめん、少々Updateしてて メソッド名変えてたのと、TextやDelimiters代入で 自動でParseExecuteを実行するのを止めたんだ(オーバーヘッドでかいと思ったので >単なる セパレータ(文区切)の機能しかないように思うのだが? そうね(汁汁 もう頭の中は構文解析でイッパイ.です。 どうやったらもっとうまく実装できるのか そろそろ思いつきそうなオカーン.... >その後で状態遷移型のコードでパーサ >を実装しているように見えるのだが? そうっす。これをどうやってParserに取り入れるかですね。 TMyParserとTMyParserItemとを用意してTree構造で実装するのが いいような気がしてますが...
>>161 どうやったら巧く実装出来るかだけど
今はDelimiters が配列だけど、
1、これを木構造のリストにする
簡単なのは先頭の空白の数やドットの数で木の深さを伝える方法
2、文字だけを渡してるけど
'...メソッド名,Delimiter' のように渡すにようにして
メソッド名を実行時型情報の機構を使って取得する
例
inString,'
.normal,'
inCom,{
.normal,}
inCom,(*
.normal,*)
inCom,//
.normal,\n
で pulished なメソッド
が1文字づつ呼ばれるという仕掛けにしたら?
もちろん、どのメソッドが呼ばれるかはプロパティにして動的に変更可能にしておく
ミ ゚Д゚彡サンクスコ とりあえz,Stringの配列で保持する必要は 無いことに気が付きますタ。 要素一つ一つの位置IndexとLengthを保持しておけば Parser.Executeは早くなるわな... 問題は高速化ではなくて、仕様ですね。 いいっすね、メソッドボインタン...んー。Delphi的にはイベントを TParserItemあたりに保持させておけばいいのか,,,ムズイ...
このスレにはDel厨しかいないじゃん。(w
>>166 C# を始めたけど、ただ始めただけってヒトが多いと思われ
>>168 C#での2chビューアのパイオニアとして名を残すため。
後はユーザーインターフェースのみ〜。
気が付いたらこれが一番大変〜(泣)。
.NET って、なんも盛り上がってないじゃん 発売当初の騒ぎだけかよ
>>169 ライバルハケーン
漏れもGUIで苦戦中
エンジンもろくに出来ていないけどw
>>171 ごめん、飽き中w
いっそエンジンだけオープンで公開してしまおうかと。
ってまた仕様変更あったのね・・・。
質問です。 2chビューア が .NET にのると、何がうれしいのですか?
>>173 別に?
メリットはないね。
遅いし結局Windowsに依存だし。
でも、新しい言語を覚えてもしかしたら何かの役に立つ2chビューアを作ってみようと。
こう言うのはパイオニアが一番普及するんだよ。
>>遅いし結局Windowsに依存だし。 普及すると思えんが?
>>175 うん、でも、MSがそれで行くって言ったら従わざるを得ないっしょ。
後、64bitにもそのまま対応できるみたい。
過去の経験から32bit互換(って言うかCPUレベルから互換無くなるチック)は捨てるのだろう。
要はソフトウェアだけ先に64bit対応に移行させようという魂胆かと。
>>176 なるほど。
気の長いはなしなんですね。
ゆっくりやっても大丈夫じゃないですか。
>>178 そうだとすると C#より JAVA/Delphiが勝ちそうなもんだけど?
>>179 いや、言語を初期から勉強してきた奴がその言語使いとして名を挙げられる。
>>176 過去の経験からいくと、64bitで Win32を捨てたら Win32アプリと互換性のある他社製品が出て
皆はそっちに乗り換えるでしょう。
俺は組込屋だから、未だに Win16アプリも使うしDOSアプリだって使ってるし
それどころか書く事も年に何度かはあるよ
64bitになっても、人工知能アプリが自然に作れるとかそんなドカーンとくるメリットがなけりゃ誰も
いきなり乗換えませんて
で人工知能アプリが出来りゃプログラマは不要かもね
>>180 そんな事あったっけ? 何かの夢?
言語を一緒に作った奴やアクテブなβテスタはそりゃ名は挙げられるだろうけど
∧,,∧ ミσ゚Д゚ミσ ピーデーが名を上げてるかしら? DQNとして有名にはなってるみたいだけど。
>過去の経験からいくと、64bitで Win32を捨てたら Win32アプリと互換性のある他社製品が出て >皆はそっちに乗り換えるでしょう。 なんの経験だろう。 _______________ ,,,,,,,,,,,,,∧,,∧ /Win32でもWin64でも 〜′,,,,,,,ミ,,゚Д゚彡< .NET枠かぶせてりゃ同じように動作する UU""" U U \ ってのを狙ってるんでしょ。 あと、WinCEとかも。
>>410 それがどうしたの?
system と number の違いがどうしたっての?
何か意見でもあるの?
>>184 WinCEはもし出たら使い物にならない惨状になりそう
JITは無理だろうから、中間言語インタプリタ実行になるだろうし
ところで、Win64が出ても Win32/Win3.1/DOSの3つはサポート
されるだろうね。 だったら Win32でいいんじゃない? とも思うな。
CPUの速度は今でも(ゲームでもやらなけりゃ)十分すぎるくらいあるんだし
逆にWin32アプリが重いとか互換性に問題があるようじゃWin64へ誰が動くのかと思う
結局 .NET なら IA64への移行もスムーズっていうのは、あんまり意味
のない売り文句だと思うな
>>187 >ところで、Win64が出ても Win32/Win3.1/DOSの3つはサポートされるだろうね。
論拠は?WindowsXPって知ってるかい?
>>188 それは XP で Win32アプリさえまともに動かない事を皮肉ってるの?
それともXPでは16bitアプリが動かないと?
いかにもDel厨って感じの低レベルな会話だな。(嘲笑激藁
>>190 いかにも低脳って感じの低レベルのカキコだな。(嘲笑激藁
<オレモナー
193 :
デフォルトの名無しさん :02/07/13 11:57
これまで触った感じで C#の嫌な点 (目隠しして象を触る感じだろうけど) 1、全てがシリアライズ可能な点 Delphiではpublished指定したものだけにシリアライズ可能な実行時型情報 が付いたのに C#ではJAVAと同じく全てに実行時型情報が付く。 これではまるでインタプリタ 少し大きなプロジェクトになると、実行サイズの 増え方が尋常じゃなくなるだろう。 2、ライブラリが豊富すぎ あまりにもライブラリが提供されすぎている。これじゃ、自分でライブラリを 整備する必要がない。 良い事のようだけど、DoItYourselfな面が無ければ プログラミングが単なる労働になってしまう。 労働者御用達ツールじゃ、 進歩も発展はそこからはおきない。 四則演算も自分で書けないVB使いと馬鹿にされてるのと同じ立場にC#使い もなるだろう
>>187 >ところで、Win64が出ても Win32/Win3.1/DOSの3つはサポートされるだろうね。
NT系列の場合は、フルWin32で16ビットコードは廃止。
16ビットコードは、エミュレーションで動く。
DOSもDOS窓がエミュレーションさせて動く。
195 :
デフォルトの名無しさん :02/07/13 12:08
>>194 エミュレーションでも今となっては何の不満もなく使えるね
7年前は 圧倒的にWin95が速いと感じたもんだけど
>>193 >1、全てがシリアライズ可能な点
シリアライズするメンバーはカスタマイズできます。
>2、ライブラリが豊富すぎ
でも、ファイルとしてきちんと分散されてるのが肝かと。
すべてをrt.jar1個のファイルにまとめてる某言語とは違って。
>>193 published があってリフレクションがない言語では、分散オブジェクトに
おけるMBVが実現できませんね。
Delphiにおけるリフレクション ・可 クラス名からクラスを参照する ・可 クラスに定義されているメソッドやメンバー変数を求める。 ・可 メンバー変数に動的にアクセスする。 ・可 コンストラクタやメソッドを動的に起動する。 ただしpublishedにしてあった場合で、かつメンバ変数名がDelphiの変数規則 に従う場合。 MBV(なんかこう書くと別のを連想するので)Marshal By Value = 値によるマーシャリング は単に相手にバイトコードを実行させる仕掛けだから、 そのオブジェクトを実現するバイトコードを用意すればいいだけ 実現出来ないなんて事 にはならない。(メンドクサイだけ)
>>198 違うと思いまーす。
MBVはオブジェクトの状態を完全に転送できる必要があります。privateも含めて。
publishedしかできないならそれはMBVではありません。それと、MBVは「コード」を
運ぶ必要はありません。状態だけ。コードはあらかじめ置いておけばそれでよい。
>>199 べつにオブジェクトに応答させればいいだけでは?
>>193 >2、ライブラリが豊富すぎ
_____________
∧,,∧ /ライブラリを使いこなして
_ ミ,,゚Д゚彡_< より高度なものを創造汁
.=| |==U==U=| |= \
| |@ミ ミ .| |  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| | ∪''∪ | |
| | | |
逆説的なようだけど、特定の面でのライブラリは豊富というか親切すぎるくらいに 整備されてるのに、想定外の事は 「何もない」 のが困るって事じゃないかな 画面回りはVCLよりも親切だけど、それがかえって、想定外の事をやり難くし ている。 たとえば、リアルタイムに低レベルオーディオを叩きたい というような場合に、どうすればいいかは、普段C#を使っているだけでは見えて こないというような・・・・ 出来るんだろうけど、それが普段の延長上には無いというような感じ
>>202 自分の無能さをM$のせいにする典型(プププ
∧,,∧ 普段デルパイ使ってても ミσ゚Д゚ミσ 見えてきませんが、何か? 俺はVCLが.NET化に伴って 大幅拡張されることをキボンしてるんだけど そのときも「それがかえって、想定外の事をやり難くしている。」 事になるんかな?
>>204 スクリプト系の言語使って見るとわかるよ。
関数が用意されてないことをやろうとするとかなりハマる。
レベルが違うけど、>202はそういうことをいいたいんでは
なかったのかな?
大抵のことはライブラリを使用すればできるが、 ライブラリとして用意されてないものは自分で作らないと いけないと。 それが作りづらいといってるのでは?
>>207 C#でも普通のライブラリはつくり難くはないけど、コンポーネントライブラリは
やり方が見えてこなくて辛いなあ
Delphiみたいにフリーのソース付きライブラリが沢山出てくれば別なんだろうけど
209 :
デフォルトの名無しさん :02/07/17 04:39
>>206 >Delphi工房さん
>とこと、ほとんど同じ関数/コンポ/Tips
>を自前でそろえてしまっている俺的には
>VCL標準は足りなさすぎじゃゴルァ
これは VCL のソースの1%にもなりませんね。
100を101にしているから何だって言ってるの?
ヘンな理由!
>>206 足りない関数やクラスは、どんどこどんどこ自分のユニットに加えていって
それが VCL の3割ちかくになって、「VCL標準は足りなさすぎじゃゴルァ」
というならまだ分かる
∧,,∧ なんでソースを量的にしか計算できないDeath? ミσ゚Д゚ミσ
_____________ ∧,,∧ / ミ,,゚Д゚彡 < と、煽り口調で言いたれてみたけれど .=| |==U=U==| |= \___________ | | .ミ ミ | | | |ノ∪''∪. | | | | | | 俺の主張おかしいかったでしか? たとえVCLの数%であっても 使いたいと思う機能がなかったら "足りん"と思いませぬ? 誰しも(?)痒いと思う所に手が届いていないから 他人と自分とで同じようなライブラリを構築するはめになり、 それゆえに、「VCL標準じゃたりねー」って 言ってるつもりなんす。 アイツもコイツも作ってるライブラなら 某がさっさと標準で実装してくれと、小一時間問い詰めたい ライブラリを作る時はいつも(というかコード書くときは常に) "作るのがタノスィ〜"って思いよりも "標準で用意されてればいいのに"って思いが強いです
このスレC#使いが寄りつかないね。(嘲笑激藁
>たとえVCLの数%であっても使いたいと思う機能がなかったら"足りん"と思いませぬ? はぁ?アプリを作るというのは、今まで無かったものを作るに決まってんだろ。 足りんが当たり前。標準で派生元クラスが提供されるわけよ。 それが分からんから、 >なんでソースを量的にしか計算できないDeath? って言いながら、コンポのプロパティメソッドを量的にしか計算できないんだろうが。 デルギコはコンポ使いこなせないC#使いとおんなじだな。
_____________ ∧,,∧ / _ ミ,, #彡_< レスする気も起きないレスありがタウ。 .=| |=ミ ミ=| |= \ | | ミ@ ミ | |  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ | | ∪''∪ | | とか言ってみるテスト | | | |
なんでもかんでも揃っているライブラリよりも、 新たに何かを作るとき作りやすいライブラリの方が重要と考えますけどねぇ。 (それとも、既にあるライブラリを使うだけで満足?僕は嫌です) そういう意味ではVCLは良くできているかと。 欲を言えば、小さい*.exeが作りやすいように、Classes.pasをusesしているユニットを減らして欲しい… VCL/CLX専用ユニットは仕方が無いとして、TypInfoやDateUtils辺りは独立で使いたいです。
217 :
デフォルトの名無しさん :02/07/17 14:50
VCLに足りないものが多いのは某の体質的な問題だと思う。 つまり、ユーザーが望んでいるものを把握していない、耳を傾けようともしないということ。 その点、MSは違うね。ニュースグループでも言えばちゃんと聞いてくれる。 それとユーザーの体質の問題ももちろんある。 ないなら作ればいいじゃん、誰かが動くもの作ってくれたからそれでいいじゃん、というのも大間違い。 それが標準として存在するかが大事。その点フサギコは分かってる。 なんでJ2EEなるものができたか分かってる? 多くの人が必要としている機能なら、誰かが実装してくれればそれで解決というわけにはいかないんだよ。 結局はDel厨は実戦で使おうとしてないということだよね。 これだからVB.NETにはるか先まで追い抜かれてしまうんだよ。
ないよりあったほうがいいに決まってる。 無くてもいいっていう後ろ向きな意見にいくら理由つけても みっともないだけだな。あほくさ。
新たに作りやすVCLだからフリーコンポ公開サイトが山のようにある。 .NETではライブラリが公開されてないので作り難い。あほくさ。
220 :
デフォルトの名無しさん :02/07/17 15:05
ふーん。 M$はユーザに耳を傾けてるから、 MFCもVBもVJ++もはるか先まで追い抜かれて捨てられたんだね。 言ってること変だよ。
コンポーネントを作りやすいからDelphi/VCLが普及したんだぞ。 デルギコ分かって無さ杉。M$ギコに名前変えろよ。
∧,,∧
,, ゚Д゚彡
⊂ミ
>>221 コンポーネントが作りにくいから
DelphiよりVB(録ネ)が売れたんですか?
そうですか、そうですか…
回線切手九尾津って氏....というのは辞めときますタ
>>220 まあ確かに、捨てられたのは酷すぎ
>>217 Delって単語が入ってたからホットゾヌで見えなくなってた....
>ないなら作ればいいじゃん、誰かが動くもの作ってくれたからそれでいいじゃん、というのも大間違い。
剥げ同意。
>それが標準として存在するかが大事。
どうせなら、誰かが作ったものを某が標準採用スレ
>>218 同意
>>219 なるほど、納得
>>216 >既にあるライブラリを使うだけで満足?僕は嫌です
どうせ既に誰かが作ってるだろうライブラリを
自分で実装しなけりゃいけないのは俺は嫌
海千山千のライブラリを評価するのも嫌
>どうせ既に誰かが作ってるだろうライブラリを >自分で実装しなけりゃいけないのは俺は嫌 >海千山千のライブラリを評価するのも嫌 こりゃマズイよ。 OOPではオブジェクトを拡張してオブジェクトに振る舞いを行わせるんでしょ。 関数ライブラリを作るのが嫌というなら分かるが、 オブジェクトに該当するコンポーネントの拡張が嫌とか、 他人が拡張したものを使うのが嫌なんて言うのおかしい。
>>219 コアのソースが公開されてることも知らない香具師が.NETを語ってる。あほくさ。
>>220 .NETというインフラが作られたのはVB・VC++・VJ++の不満な点をきちんと聞き入れたから。
某にはこんなことはできない。大して変わりもないものを半年単位でバージョンアップしてる。
こんな企業見たことない。
>>223 >OOPではオブジェクトを拡張してオブジェクトに振る舞いを行わせるんでしょ。
なんでいちいち拡張せなならんの?アフォですか?
建前 アプリを作るということは、今までに無いものを作るということ。 標準コンポーネントを貼って終わりレベルで作れるアプリなんてのはたかが知れているので 何もかも標準で揃えるよりも、作りやすさを優先してくれた方が有り難い。 本音 趣味プログラマーなので、凝る余地が無くなるのは嫌だっ …です。 既に誰かが作ってるライブラリなら、有り難く貰ってくるだけです。 標準のパッケージに入れられてしまうと、改造も迂闊に出来なくなるので嫌です。
ミ,,゚Д゚彡 >関数ライブラリを作るのが嫌というなら分かるが、 OOPのVCLと関数ライブラのVCLを区別して 話した覚えはないですが。 >オブジェクトに該当するコンポーネントの拡張が嫌とか、 >他人が拡張したものを使うのが嫌なんて言うのおかしい。 マジレスなのですか? 俺は、VCL標準のFormドッキング拡張はイ・ヤ 他人が拡張したものでも、ださいヤツは使うのイ・ヤ
>>OOPではオブジェクトを拡張してオブジェクトに振る舞いを行わせるんでしょ。 >なんでいちいち拡張せなならんの?アフォですか? うわ。コンポの拡張もアプリの構築も同じオブジェクトの拡張で行うことを知らないやつだ。 こういうのがスタンダードなブビ厨。
>.NETというインフラが作られたのはVB・VC++・VJ++の不満な点をきちんと聞き入れたから。 はぁ?製品丸ごと捨ててるやん。ソースコードも破棄。 >某にはこんなことはできない。大して変わりもないものを半年単位でバージョンアップしてる。 Kylix、Del.NETとソースコードを継承してるじゃん。 アプリがユーザのデータ(この場合ソースコード)を守るのは大前提。
>228 >VCL標準のFormドッキング拡張 これこそ、標準でセンスの悪いものが取り入れられてしまうと嫌な例では… 標準で根幹に根ざしているものをもう一度作るのは実行効率も悪いので使わざるを得ません。 ( 幸い動作がカスタマイズできる作りではありますけど )
>>230 うわ。オブジェクト指向の本質=継承ではないということを知らないやつだ。
こういうのがスタンダードなDel厨。(嘲笑激藁
>>231 >アプリがユーザのデータ(この場合ソースコード)を守るのは大前提。
.NETだって守ってるじゃん。
互換性を保つんじゃなくて、相互運用性を保つという形で。
>うわ。オブジェクト指向の本質=継承ではないということを知らないやつだ。 >こういうのがスタンダードなDel厨。(嘲笑激藁 うわ、M$の洗脳が解けてないやつだ。 M$がそれをアナウンスし続けて、 ひるがえってヘジに.NET=継承を作らせたのに。
>.NETだって守ってるじゃん。 >互換性を保つんじゃなくて、相互運用性を保つという形で。 これもM$の洗脳が解けてないやつ。 M$のアナウンスでは、 「マイクロソフトは今までのCOMを捨てたわけではありません」 と大声にして言ってたけど、図をみるとCOMが片隅にあって、 実際はインポートして動作させることが出来るだけ。
ブビ厨って思考を破壊されて、 VB捨てられて、 それでも、M$マンセーって踊ってて、 これからどうするの?
要はDelギコがDelphiより.NETが優れてることを認めたわけだろ。 言い換えれば、DelphiよりVB.NETが優れていると。C#もVB.NETも変わらんからな。 Del厨ももう時代遅れ確定だね。早く非を認めて乗り換えればいいのに。
Delphiユーザとデルギコを同等に見て貰うのは困る。。。 Del厨は複数言語使えるし、C#の理解も早いし、 某マンセーって踊ってるわけじゃない。 ブビ厨こそ大きな選択間違いだったことが明確になったね。
VBこそが一番利口な選択だよ。 バージョンアップのごとにより本格的なオブジェクト指向へとステップアップ。
>>240 20年遅れてるよ。後発であるのに言語的に優位な点が無いのもイタイ。
(この人たち一体何をやってるんだろう・・・・?)
Delギコさんの言っていることに賛成できないDelphiユーザーがここにも一名。 >240 バージョンアップ料金を払って欲しいMS的には利口な選択ですね…
>本格的なオブジェクト指向へとステップアップ 痛いを通りこして寒いよ。 .NETのOOP=クラスベースも本格的なものじゃない、ってのも知らないみたいだし。
タイトルに激しく矛盾してるスレだな。(嘲笑激藁
ミ,,゚Д゚彡 なんか痛痛しい流れ蛾.... 俺の主張は「もっと標準でいろいろ用意しろや」>某 C#にはいろいろ用意されているらしいよ(抑止欄) ってことなのに 勝手に色眼鏡かけて、俺に賛成とか反対とか .netが優れていることを認めたとか 脳内変換かけるなゴルァ
>俺の主張は「もっと標準でいろいろ用意しろや」>某 単にそれだけなら反対する人はいないと思いますが、193の2からの流れがありますから…。 自分がSetToStr/StrToSetが実装できないのを理由に謝罪を要求する姿が記憶に新しく… ひょっとして自分が書けないから標準で実装しろと言っている…という邪推は失礼でしょうか。
>>248 Delギコではないが、脳内変換してないか?
250 :
デフォルトの名無しさん :02/07/17 19:37
Del厨って怖いね。 フサギコはDelphiをよく使ってるからこそ、Delphiに足りないもの・こうすべきというのを 前向きに提言をしてるのに。 それなのに都合の悪いことを言われるとすぐに「こいつはDelphi使いじゃない、 一緒にしないでくれ」扱いだもんなあ。 なんかカルト教団の集団リンチ事件とよく似てるよ。 そういう意味でもやっぱりVBコミュニティはいいね。 初心者に優しいし、現場で使ってるからこそ、より良いものにしようというという 前向きな雰囲気に満ちている。 他の言語をけなしたり、VBが最高なんていう傲慢な人間もいない。 こういう言語が結局は最多のプログラマ人口を生み出して 「実際に動くもの・実際に使われているもの」を世に送り出してるわけだね。
>より良いものにしようというという 存在する機能を理解するのに精一杯にしか見えないけど。 ifの使い方とか。
要するに、文句をつければユーザー失格、質問をしても過去ログ読め、 そういうケチな人間の集まりなんだよ、Del厨は。(嘲笑禿藁
>>252 ちょっと同意。確かにこうなったらいいね。って言う発言には冷たい人が多い。
それだけ迫害を受けてきたってことだろうけどね。
俺ももうDelphiやめて.NETに乗り換えるわ。
なんかジエンぽいな。
↑↑↑ここまでジサクジエン↑↑↑
俺はちがうぞ。 だってDelフサギコ氏好きだもん。 Delphi使えないけど(w
258 :
デフォルトの名無しさん :02/07/17 21:02
ほらね。旗色が悪くなると自作自演ということにする。:-)
粘着がいるようだ。
>>211 >なんでソースを量的にしか計算できないDeath?
#遅レスだが、210 だから許して
えーと、足りる、足りない、という議論はそもそも量のことではないかね?
質ってことはないよね。D1 から使っているが、クラスはもちろん、関数も
劇的に増えてるよ。コンポーネントパレットは溢れ、ヘルプは関数のレファ
レンスで溢れ、これ以上増やして、それでフサギコさんの痒いところが
なくなる、とは思えないね。人が作ったかもしれない、関数、クラス、
コンポーネントをすべて標準で装備すべきですか? コンポーネントだけで
数千個になるよ。関数は万を越えるだろう。いくら増やしても、痒いところ
はでてくるのでは?
「隣の芝は青く見える」ということで、 フサギコにはC#はDelよりも便利そうなライブラリが 充実していると見えるのでは?
>>261 プログラミング言語は道具、という側面からだと、フサギコさんが
C#フサフサギコに変身したって、ちっともかまわないと思うよ。
263 :
デフォルトの名無しさん :02/07/17 21:37
DelphiユーザとC#ユーザって争ってたの? 全然知らなかった・・・
>>248 自分って、自分自分いうの変じゃないかと自分はおもうわけよ。
>>263 争うも何もDel厨が一方的に因縁つけてきたわけで
Delphiに対して否定的な意見をすればVB厨扱い。 Macに否定的な意見をすればゲイツ信者扱い。 Del厨は狂信Macユーザに近い物があるな
.NetってパッケージをAPIのかわりに使う、MSのOSonOS戦略のことであって、 個別の言語仕様とは比較しがたいもんじゃないのか? 実際.Netは言語依存しないのが特徴で、Delphi.Netも出るわけだし。
C#の処理系はタダ?
>>267 それがちゃんと分かってるなら、Del厨もはじめからこんな低レベルな争いはしないよ。(嘲笑激藁
>>267 言語機能的には思いっきり依存するけどね。
274 :
デフォルトの名無しさん :02/07/17 21:57
>>269 一番安いゴミ同然のStandardで1万(最適化無し・GUIアプリ作れない)
Professionalは8万
Delは無料で使えるのにね(嘲笑劇藁
>>274 >一番安いゴミ同然のStandardで1万(最適化無し・GUIアプリ作れない)
何だ?そのおもしろ情報は?
今のところC#の最適化コンパイラはない。
System.Windows.Formsの存在をしらんのか?っていうかそもそもFormエディタついてくる。
前スレはコード対決があって建設的だったのに。 Del厨だけになるとどうしてこうなるんだろ。
278 :
デフォルトの名無しさん :02/07/17 22:07
ほほー C#は最適化コンパイラが無いんですか(ゲラ インタプリンタで最適化も無し(プ Delphi以下どころかgcc以下ですね(屁 結局、性能的にはJAVA=VB=C#じゃん(ワラ C#アプリは遅くて話しになりませんな(嘲笑劇藁
>>278 いや、正解。
でも、メリット見ないと時代に取り残されるぞ。
>>278 が、イタイのは認めるけど、論調を観てると同一人物がジサクジエンでVBとDelの話しをしているように思える。
もしかして・・・・厨ガッコーは既に夏休みなのか!?
>>279 いや、すでに時代に取り残された晒し者だよ。(嘲笑禿藁
283 :
デフォルトの名無しさん :02/07/17 22:15
ぐにゅのコンパイラって糞なのか??
284 :
デフォルトの名無しさん :02/07/17 22:16
こ の ス レ は す べ て D e l 厨 の 自 作 自 演 で す
フサギコ → 無事Delphiから.NETに移行できた勝ち組 その他 → 未だにDelphiが最高だと錯覚してオナーニしてる負け組
>>287 さらにその他のC#ユーザ → 誰も使わない(使えない)アプリを開発中
フサギコは.NETに来ないでください ウザいヤツらが付いて来るんで
>>288 VECTOR で 公開
* 特に珍しい機能があるわけでもありませんが、exe サイズは小さいです。
ただし、実行するには .NET Framework (20MB) が必要です。(爆笑)
>>287 .Netは良さそうだけど、選択肢の一つだな。
MSが駄目になったらそれまでだし、Monoも完全互換にするとは言ってないし。
ガベコレは迷惑な事も多いし、I/O制御には向かないし、MSがマルチメディア系の
技術を公開するとは思えないし。
プラットフォーム非依存ってことはMSは主導権が取れないわけだし、そうすると
分裂の危機があるし。
結構、前途多難かもしれない。
>>290 .Net Frameworkをランタイムにしか見れないか・・・。
既成概念に捕らわれるって怖いことだなぁ・・・。
>>290 数年後。
古いOSもしくはIExが入っていない場合.NET Frameworkが必要です。
ほとんどの環境では.NET Frameworkは既に入っているので必要ありません。
>>292 「.NET Framework アプリケーション配布ガイド」より
これらのホワイトペーパーでは、dotnetfx.exe のことを、.NET Framework 用の
ランタイム要素を含んでいるセットアップファイルと呼んでいます。
>>293 そうだといいね。でも
ただし、実行するには .NET Framework (20MB) が必要です。
この注意書きは残るでしょ。
20MBのダウソなんて1分もかからないだろ。
実行するにはDirectX8が必要です。 と同じレベルだと思われ。
>>297 そうだね。DirectX8 を使えば、気持ちよくゲームができるからね。
ところで、 .NET Framework を使えば、ユーザにどんなメリットがあるの?
デメリットはない
>>296 かつての VB ランタイムはもっと小さかったよ。
でも、同機能なら VB アプリ使う奴いるかよ?
>>296 Del厨は未だにWin95使ってるデジタル社会の落ちこぼればかりです。
10Mbps級のブロードバンドに追いつくまで後10年はかかります。
実行するにはWindows98が必要です。 と同じレベルだと思われ。
>>299 デメリットは、同機能の VC や Delphi アプリより速くないのに、
実行するには .NET Framework (20MB) が必要、ということで十分では?
>>302 それだと、Windows98 ユーザしか使わないだろ?
>>303 DLL Hellとセキュリティ問題を解決できるのだから、20MBの代償なんて取るに足らない。
DirectX8を使ったゲームがしたければDirectx8をインストールする .NET Frameworkを使ったソフトを使いたければ.NET Frameworkをインストールする それだけの話だ。
>>305 >DLL Hellとセキュリティ問題を解決できるのだから
夢のようだね!まったく。
20MBなんで56Kモデムでも1時間もあれば落ちる
>>308 >20MBなんで56Kモデムでも1時間もあれば落ちる
どうぞC#で VC++ や Delphi では作れないような画期的なアプリを作ってくださいね。
310 :
デフォルトの名無しさん :02/07/17 23:22
>>299 開発者にはメリット・デメリットがある
ユーザーにメリットはない
ユーザーにデメリットはある
D e l 厨 必 死 だ な (藁
>>300 >でも、同機能なら VB アプリ使う奴いるかよ?
機能は桁違い。
>>312 >機能は桁違い。
ほほう。なら、
C#で VC++ や Delphi では作れないような画期的なアプリを作るのも簡単だね。
メデタシ、メデタシ
>>314 同機能のソフトが短時間に作れるのはメリットだとは思うが。
まぁ、日曜プログラマにはあまり関係ない技術かと。
しかしDel厨マジでやばいぞ。 .NETの理解度はVB使い以下じゃん。 Delphi.NETが出てはじめて理解するならVB使いより2年は遅れることになるな。
>>316 はい、誰と誰のレスに問題があったか語ってくれ。
そいつがDel厨だという根拠も併せてな。
>>312 いつまでたっても
ユーザーの視点と開発者の視点が
区別できないのは初心者だからですか?
>>316 言語は道具、何使いがどれだけ遅れようと、関係ないだろ。
>>319 迅速なソリューション提供とか意味わかんないんだろうな。君も。
Del厨ってこんなにレベル低いの? 傍から見てても痛々しい。 VB使いの方がレベル高いね。
みなさんにとってはくだらない質問だと思いますが もう一度質問します どうしてもif文の使い方がいまいちわかりません VBスレにはこういう楽しいのがいます。
>>324 別にいいじゃん。プログラミングそのものが始めたてなんだろ。
自分にはそういう初心者の時期がなかったとでも?
>>325 とりあえずこんなことわざわざ人に聞いたことはないですわ。
>>324 まあ、君みたいな年寄りはプログラミングを始めた頃にインターネットなんてなかっただろうからね。
>>321 .NETはこれから数年 商品に使えるレベルにはならないだろ
> 迅速なソリューション提供
ププププ
昔の蛇腹ーと同じ事いってるな
000010 CLASS-ID. HELLO. 000020 ENVIRONMENT DIVISION. 000030 CONFIGURATION SECTION. 000040 REPOSITORY. 000050 CLASS SYS-STRING AS "System.String" 000060 CLASS CONSOLE AS "System.Console". 000070 STATIC. 000080 PROCEDURE DIVISION. 000090 METHOD-ID. MAIN. 000100 DATA DIVISION. 000110 WORKING-STORAGE SECTION. 000120 01 MSG OBJECT REFERENCE SYS-STRING. 000130 PROCEDURE DIVISION. 000140 SET MSG TO "コボラーでも使える.NET". 000150 INVOKE CONSOLE "WriteLine" USING BY VALUE MSG. 000160 END METHOD MAIN. 000170 END STATIC. 000180 END CLASS HELLO.
332 :
デフォルトの名無しさん :02/07/18 00:31
DLL Hellは何と読めば良いですか? デリヘルですか?
333 :
デフォルトの名無しさん :02/07/18 00:52
ある意味、汗より見づらい。
COBOL.NETはどんな人向けなんだろ? このコードのどこにメリットを見出せばいいのやら 改めてC#の易しさが分かる
うお! メインフレーマー時代を思い出しちまったじゃねーか! イヤな物貼りつけんじゃねーよ(w
.Netって、駄目だと思うよ。 MSの事だし、ぜったいバージョンアップとか要求してくるし、 期待して飛びつくと後でヒドイ目に遭いそう。 プログラミングの技術的にみて新しいことはないから、 今はJavaやりながら、見守るのが賢明だろうね。 すでにいろんなプラットフォームで動くんだし。
>>338 新しいものが見出せないのはあなたの目が(以下略
>>339 毎年の新しいものへの置き換えで売り上げを作り出してるWintelの戦略を見出せないのはあなたの目が(以下略
>>340 それに嫌気がさしてるならこの業界から去った方がいいよ。マジで。
>>341 目が無いやつはVBやってて業界去ってるよ。マジで。
次に業界去るのはクロスプラットフォーム対応を.NETのみに賭けてて、 オプソの波に流されるやつでは? VBだけで良いよー、から、.NETだけで良いよー、へ。
LinuxもSolarisも落ち目だし、そんなことしたがる奴なんていないよ。
落ち目といえば Windowsもね。 XPセールスあがってないじゃない
サーバ・クライアントのどっちの話をしてるんだ?
Linuxが落ち目ってどうやったらそう見えるんだろう? オプソで構築されたWebサイト(オプソRDB入り)が流行ることがあっても廃ることは無いぞ。
349 :
デフォルトの名無しさん :02/07/18 13:04
>>348 いいね。おもちゃで遊んでられる人は・・・
OpenOfficeとMozillaが出て、いよいよLinuxが盛り上がるかと思ってたけど、 結果は皮肉にも「Windowsでの方が使いやすいね」というのを思い知らせるだけに終わった。 オープンソースのソフトでさえWindowsがトップシェアなんだよね。
>>348 調子がいいのはRedHatだけ。
分かっていると思うけど、Linux = RedHatじゃないんだよ。
Linux業界そのものが駄目になってるね。
Kylixは大成功してるよNE!(プ
>>353 ええ。エンタープライズ版がよく売れてますよ。
 ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
∧_∧ ニヤニヤ
( ・∀・)
( )
| 某|
(__)_)
Delphiのいいところは、プログラミングもろくに知らない初心者でも コンポーネントを落とすだけでプログラムが完成することです。 おかげで、素人に毛が生えたような自称プロを大量に生み出しています。 コミュニティのレベルも悲惨なまでに低いです。 その点、VB.NETは本格的なオブジェクト指向である上、非常に複雑なランタイム上で動くので、 きちんと仕組みを理解できない初心者には難しいと思います。 私の経験では、Delphi使いよりVB使いの方がレベルの高い人が多かったですね。
>355 前スレみたいにコード対決してもいいのですよ? 誰かお題よろしく。短く書けて興味深いやつ。
357 :
プログラマー :02/07/18 14:05
Delphiはクロスプラットホーム C#は?(プ Delphiはネイティブコード C#はインタプリ(略)(ププ Delphiはアセンブラが使える C#は?(プププ DelphiはDirectXが使える C#は?(ププププ Delphiは無料版がある は5マ(略)(プププププ DelphiはIEコンポーネントでブラウザが作れる C#は?(ププププププ 嘲笑劇藁 嘲笑劇藁 嘲笑劇藁 嘲笑劇藁 嘲笑劇藁 嘲笑劇藁 ププププププププププププププブププププ
>Delphiはクロスプラットホーム C#は? 3プラットフォームで動きます。 >Delphiはネイティブコード 動的コンパイルで生成されるネイティコードで動きます。 >Delphiはアセンブラが使える C#は? 使えません。セキュリティ上の理由で。 >DelphiはDirectXが使える C#は? 8.1では使えます。 >Delphiは無料版がある SDKは無料です。 >DelphiはIEコンポーネントでブラウザが作れる C#は? 同じです。shdocvw.dllを利用します。
真面目な話、Delphiでセキュアなアプリって作れるの?
>>360 Del厨はセキュリティの重要性には気付いてないよ。
気付いてたらネイティブコードなんて賞賛しないよ。(プ
>>360 ネットワーク・Webアプリなんて誰も作れないし
ローカルなアプリも自分しか動かさないので
常にセキュアです。
つーか、テラリウムの例で赤の他人がC#で作ったコード(虫)を 自分のマシンで安心して動かせることに感動した。 (セキュリティーホール・バグが本当にないのが前提だが) Delphiでセキュアな虫はつくれんだろう。バグはいくらでも作れるだろうが。
要は、Delphiは時代遅れということですな。(嘲笑激藁
あらゆる実用的な言語は 好きな言語のインタプリタなりコンパイラなりを作る事が可能です Delphiでセキュアにしたければセキュアと思うインタプリタ言語を作ればよいでしょう
>>365 そういうのを車輪の再発明オナーニと言います。(プププ
>>365 つまりDelphiでVM作って別の言語で開発しろと。
厨房・粘着のスクツだな。
ほーんと。Del厨糞ばかり。
荒れた原因はフサギコという罠
Delphiってガベージコレクタないんだろ。ダメじゃん。
なあ、フサギコとDelフサギコって別人なんだろ? あとDelフサギコもトリップが違うヤツが何人かいるんだろ? もうわけわからん。
.NETを使う理由はただ一つ。セキュリティ。 DLL Hell解消ならXP以降はネイティブでもOKだし。
C#(Win版.NET)も、かなりの部分Delphiで作られていたりして。
>>374 それはない。
(Delphi使いとしても恥ずかしいスレになっているな。。。)
もっとマターリ議論しようぜ。
セキュリティったってC#だから優れてるのは何があるの? ウイルスについては、 将来 OSがいきなり.NET アプリを実行出きるとしても、今の所 PE で始動するわけで同じだし
>Delphiってガベージコレクタないんだろ。ダメじゃん Del7で入っちゃう。入って欲しくないのに。
379 :
デフォルトの名無しさん :02/07/18 15:27
Del厨はDelphiでVM作ってそのVM用DelphiコンパイラをDelphiで作って自称セキュアなアプリを組むのですね
380 :
デフォルトの名無しさん :02/07/18 15:28
>>378 > Del7で入っちゃう。入って欲しくないのに。
今まで入っていなかったの!?
>>380 入ってるよ。馬鹿にすんな。
しかも実行速度を落とさないように
アプリケーション終了時にのタイミングで
一括して開放してくれるんだ。
>>381 自分でコントロールできないの?
駄目じゃん。(藁
383 :
デフォルトの名無しさん :02/07/18 15:35
>>381 それってもしかしてCでmallocしてfreeしないのと同じ?(笑)
>>381 使われなくなったときに解放されずメモリリークするのはガベージコレクタとは言わない。
なぜガベコレが嫌いな奴がいるのかわからん。
>自分でコントロールできないの? >駄目じゃん。(藁 この発言ダメダメだね。自分でコントロールしないからガベコレだよ。
>>386 自分でコントロール「も」できてこそガベコレだよ。能無し年寄りさん。(嘲笑激藁
>>387 なにがコントロールできるのか聞いてみたいな。
>>388 ブビ厨にメモリ関係を質問すんなよ。
彼らにはVBランタイムが確保してるメモリだけで十分なんだよ。
>>389 お前意味わかんなすぎ。
あたりまえだがVBは動的にメモリを確保できる。ちなみにガベコレ付き。
で、>386 は >387 に答えることができるのか?
>386 → >387 >387 → >388
GC.enable GC.disable GC.start
あたりまえだがVBは動的にメモリを確保してもポインタ操作が無いので無意味。
メモリの確保にはNewを使いますが何か?
>>395 あたりまえだがJavaは動的にメモリを確保してもポインタ操作が無いので無意味。
なんていったら馬鹿にされるぞ。
能無し年寄りDel厨に解説してもどうせ分かんないよ。(嘲笑禿藁
GC実行のタイミング コレクトする世代 コレクトされるオブジェクトのファイナライザ呼び出しの有無 あと何かあったっけ?
400 :
デフォルトの名無しさん :02/07/18 20:13
具体的な話が出ると途端に黙り出すのが能無し年寄りDel厨の証拠。(嘲笑激藁
嘲笑 禿藁さんと、嘲笑 激藁さんは双子の兄弟?
あえて付けたすならコレクトの順番…ですか。 デストラクタ/ファイナライザで何かやっていると、順番が重要になることしばし。
Del厨静かになったな(ワラ
ブビ厨でも知ってるガベコレもまともに分かってないんだな。 完全に追い抜かされちゃったね。かわいそうに。
405 :
デフォルトの名無しさん :02/07/19 03:13
セキュリティ関連のお題ということで、 管理者権限のあるユーザーのみが実行できるHello Worldプログラムというのはどう?
ブビではこれだけ。 Imports System Imports System.Security.Permissions Imports System.Security.Principal Module Hello Sub Main() AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal) Dim p As New PrincipalPermission(Nothing, "BUILTIN\Administrators") p.Demand() SayHello() End Sub Sub SayHello() Console.WriteLine("Hello World!!") End Sub End Module
その2 Imports System Imports System.Security.Permissions Imports System.Security.Principal Module Hello Sub Main() AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal) SayHello() End Sub <PrincipalPermission(SecurityAction.Demand, Role:="BUILTIN\Administrators")> _ Sub SayHello() Console.WriteLine("Hello World!!") End Sub End Module
ここはDelphiとC#のスレだろ、なんでVBが出てくるんだ?
410 :
デフォルトの名無しさん :02/07/19 12:11
>>409 それはDelphiがVB.NETにすら劣ってるからじゃん。(嘲笑激藁
>>408 VB6に話をそらしたり、リンクだけ貼ってめんどくせーソースを隠したり、
Del厨ってどうしてこう姑息なんだろう。
>>409 荒らしたいだけ。嘲笑激藁厨っていつも出てくるよ。
Del厨uzai
話をC#とDelに戻そうぜ。
Del厨ってさ、根拠のない.NET批判ばかりするけど、 具体的な反論・コードが出てくると途端に黙りだすよね。
>>409 VB.NETのコードだろうとC#のコードだろうと変わりないじゃん。
なんでVB?と言ってるDel厨はBCBのコードを出してきてる
419 :
デフォルトの名無しさん :02/07/19 12:40
>>416 それもブビ厨。ブビ厨には理屈がない。
デル厨は逆にやたらとコード書きたがる。
>>420 Delphi.NET版で同じこと書く。
しかし、VBもほんと進化したと思う。 Delphiを超えたね。
心配無い。記述の面で、C# > VB.NET なのはM$の公式アナウンス。 次に、Delphi.NET = C# > VB.NET となる。 最後にLinuxでは、Delphi > C#@.NETランタイム
>>408 COM使ったときだけ解放処理が自動で行われるのね。でも普通のクラスはだめじゃん。
VBは普通のクラス(クラスモジュール)でも解放処理は自動で行われるよ。
COMを使った例外的な場合のみ解放処理が行われるDelphiと違って
常に解放処理が行われるVBはガベコレと同等といってもいいと思う。
VBよりすぐれたもの(Interface型)ってVBのインタフェースに比べて何がすぐれてるの?
まさかVBにインタフェースがあるのを知らないで言ってるってことはないよね。
>記述の面で、... >次に、Delphi.NET = C# となる。 これはありえない。今C#にやってるけど 野暮ったいObject Pascalから開放されてとても幸せ。
>>424 理解してないものにわざわざ反論しなくていいよ。
たまに開放してくれなくて困るんだよな。特にBOCのやつ。
>>425 そういう意味の記述じゃない。
出来る出来ないという意味で、
VB.NETでは記述できないものがある。
>>426 Interface型のこと? 反論じゃないよ。聞いてるんだよ。
∧∧ ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ( ゚Д゚)ll__ ( ´Д`)< ない機能は自分で作ればいいじゃーん /⊃||ニ|| |=- ( ) \_________ 〜/ / ll ̄ ̄ | | | ∪∪ (__)_) ←Del厨
☆ チン マチクタビレタ〜 マチクタビレタ〜 ☆ チン 〃 Λ_Λ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ヽ ___\(\・∀・) < Del厨の回答まだ〜? \_/⊂ ⊂_ ) \_____________ / ̄ ̄ ̄ ̄ ̄ ̄ /| | ̄ ̄ ̄ ̄ ̄ ̄ ̄| |
ガベコレに付いては
>>381 で結論が出ているが。
interfaceやcompositeは意味合いが違う。
インターフェース型はVB.NET で採用されてる
Amazon.comのウェブサービスを使ったサンプル。
MadonnaのCDを検索。
Imports System
Module AmazonSearchTest
Sub Main()
Dim request As New ArtistRequest()
request.artist = "Madonna"
request.page = "1"
request.mode = "music"
request.tag = "webservices"
request.type = "lite"
request.devtag = "your-dev-tag"
request.version = "1.0"
Dim service As New AmazonSearchService()
Dim productInfo As ProductInfo = service.ArtistSearchRequest(request)
Dim details As Details() = productInfo.Details
Dim d As Details
For Each d In details
Console.WriteLine("{0} : {1}", d.ProductName, d.OurPrice)
Next
End Sub
End Module
' wsdl /l:vb
http://soap.amazon.com/schemas/AmazonWebServices.wsdl ' vbc /t:library /r:System.dll /r:System.Web.Services.dll /r:System.Xml.dll AmazonSearchService.vb
' vbc /r:AmazonSearchService.dll /r:System.dll /r:System.Web.Services.dll Test.vb
435 :
デフォルトの名無しさん :02/07/19 16:47
>>434 何気に残酷だね。Del厨にはどうやっても真似できないサンプル示すなんて。(嘲笑激藁
>>435 俺もちょっとそう思った。(w
けど何でVB?
>>424 VBの普通のクラスが、レジストリに登録しないってだけのCOM互換で重いからでしょ…。
Delphiでも同様なものは作れるが、手間と効率が悪いので誰も使わない。
コピペのサンプルがたまたまそうだったから。
439 :
デフォルトの名無しさん :02/07/19 17:07
>>435 Delphiならブラウザコンポーネント貼り付けるだけで作れますが、何か?
>>439 同じDel使いとしてその反応はさすがに・・
議論じゃなくて煽り目的だから何言っても無駄。察してよ。
Delphiならたった一行・・・
CreateProcess('
>>434 のEXE', ...);
>>443 Delphiじゃなくバッチファイルを使ったほうがいいよ。
program Account; {$APPTYPE CONSOLE} uses Windows, SysUtils; type TWinAccount = class(TObject) private function GetUserName: string; function GetDomain: string; function GetAccount: string; public property UserName: string read GetUserName; property Domain: string read GetDomain; property Account: string read GetAccount; end; function TWinAccount.GetAccount: string; begin Result := Domain + '\' + UserName end; function TWinAccount.GetDomain: string; var SidSize, DomainSize: DWORD; SidNameUse: SID_NAME_USE; SidPtr: PSid; User: string; begin User := UserName; SidSize := 0; DomainSize := 0; LookupAccountName(nil, PChar(User), nil, SidSize, nil, DomainSize, SidNameUse); GetMem(SidPtr, SidSize); try SetLength(Result, DomainSize - 1); if not LookupAccountName(nil, PChar(User), SidPtr, SidSize, PChar(Result), DomainSize, SidNameUse) then RaiseLastOSError; finally FreeMem(SidPtr); end; end; function TWinAccount.GetUserName: string; var NameSize: DWORD; begin NameSize := 256; SetLength(Result, NameSize); if not Windows.GetUserName(PChar(Result), NameSize) then RaiseLastOSError; SetLength(Result, NameSize - 1); end; var Ac: TWinAccount; begin Ac := TWinAccount.Create; WriteLn(Ac.Account); Ac.Free; end.
>>408 のWhoAmIを移植。
時間がないのでsuの方は誰か頼みます。
Delphiのコードは貼っても読めないので貼るだけ無意味。
>>447 ちょっとまて。
コードで議論をしようとしてきたのはVB側じゃないか。
煽り目的の奴に(略
450 :
デフォルトの名無しさん :02/07/19 19:03
これまでの議論を読む限り、完全に VB > Delphi だね。 C#はどこに行った?
ブヴィ房相手じゃ役不足
Javaもまぜてください。
熱くなるだけ無駄。無駄。
455 :
デフォルトの名無しさん :02/07/19 19:17
/⌒ヽ / ´_ゝ`) | / | /| // | | U .U
もはや完全に決着がついた。 負けたDel厨はコピペ荒らしを始めたようだ。
DEL厨ってこんなに痛かったかな。 DELに対して特別な感情もなかったが、 このスレ見てると痛々しいな。DEL厨って。
それにしてもブビ厨の成長が著しい。
うむ。俺たちは歴史的な瞬間を見てるのかもしれない。 ブビ厨がDel厨を越えた瞬間を。
死ね・くたばれ・消えろ・失せろ・潰れろ・馬鹿・あほ・間抜け・ドジ。 ポンコツ・トンチキ・ガラクタ・クズ・ゴミ・カス・最低以下の下劣・下等種族。 劣等種族・下衆野郎・腐れ外道・邪道・外道・非道・ウジ虫・害虫・ガン細胞。 ウィルス・ばい菌・疫病神・病原体・汚染源・公害・ダイオキシン・有毒物質。 廃棄物・発ガン物質・猛毒・毒物・アメーバ・ダニ・ゴキブリ・シラミ・ノミ。 毛虫・蠅・蚊・ボウフラ・芋虫・掃き溜め・汚物・糞・ゲロ・糞虫野郎・ほら吹き。 基地外・デタラメ・ハッタリ・穀潰し・ろくでなし・ごろつき・ヤクザ者。 社会の敵・犯罪者・反乱者・前科者・インチキ・エロ・痴漢・ゴミ・シデムシ。 ゴミ虫・毒虫・便所コオロギ・詐欺師・ペテン師・道化師・危険分子・痴呆・白痴。 魔物・妖怪・悪霊・怨霊・死神・貧乏神・奇天烈・奇人・変人・毒ガス・サリン。 ソマン・マスタードガス・イペリット・クソブタ・ブタ野郎・畜生・鬼畜・悪鬼。 邪気・邪鬼・ストーカー・クレイジー・ファッキン・サノバビッチ・シット・ガッデム。 小便・便所の落書き・不要物・障害物・邪魔者・除け者・不良品・カビ・腐ったミカン。 土左衛門・腐乱・腐臭・落伍者・犯人・ならず者・チンカス・膿・垢・フケ・化膿菌。 放射能・放射線・鬼っ子・異端者・妄想・邪宗・異教徒・恥垢・陰毛・白ブタ。 ケダモノ・ボッコ・ろくでなし・VXガス・ヒ素・青酸・監獄・獄門・さらし首。 打ち首・市中引きずり回し・戦犯・絞首刑・斬首・乞食・浮浪者・ルンペン・物乞い。 不良品、規格外、欠陥品、不要物、埃、掃き溜め、吹き溜まり、塵埃、インチキ、居直り。 ふてぶてしい、盗人、盗賊、残忍、残酷、冷酷、非情、薄情者、ガキ、クソガキ。 ファッキン、ガッデム、サノバビッチ、シット、ブルシット、ボロ、ボッコ、妄信。 狂信者、有害物質、毒薬、猛毒、発ガン物質、誇大妄想狂。 他人の悪口は山ほどほざくが反省は一切しないガキ根性野郎、腐れ根性。 腐って歪んだプライドの持ち主、狭量、ボケ、ボケナス、アホンダラ、たわけ。 怠け者、無能、無脳、脳軟化症、思考停止、アメーバ、単細胞、蠅、蚊、カビ。 腐敗、膿、下劣、下等生物、劣等種族、クレイジー、マッド、ストーカー。 人格障害、守銭奴、見栄っ張り、ええ格好しい、粗製濫造品、偽物、似非。 イカレ、乞食、浮浪者、ルンペン、狼藉者、放蕩息子、道楽息子、極道息子。 迷惑、困りもの、厄介者、村八分、異端者、アウトサイダー。
やっぱりDelphiはウェブ関連とセキュリティ関連がダメダメなんだね
だ か ら、 このスレはC#vsDelphiだろ? VB厨はいね!!
VB.NETは中ボス、C#はラスボス。 中ボスも倒せないヤシがラスボスと闘う資格などない。
>>462 VB厨にぼこぼこにされてんのに
まだ傷口を広げる気なのですか?
C#厨は相手にもしてないと思われ。こんな糞スレ。
VB厨を召還しているのはたいがいDel厨。でやられてる(w
べつにどっちが勝つとか負けるとかじゃなくて、 こういう用途にはC#、ああいう用途にはDelとかっていう 議論がしたいんだYO! VBがからむと荒れるんで、VB厨逝ってよし!!
>>466 ほら(w 最後の一行で自分からVB厨を召還しようとしている。
つぎのお題はなんだ?
VBは、C#やDelphiのような汎用プログラミング言語というよりは、 コンポーネントを操作する「スクリプト」に近いから、性質が少し 違うんだよね。VBで開発している人から見れば、C#やDelphiは、 VBのために働く(VBで使うコンポーネントを開発する)「召使」な のかもしれない。 まあ、C#やDelphi(特にWinのほぼ全ての機能を直接扱えるDelphi) 使いから見れば「自分では何もできないVB」ってことになるんだろう けど。
M$が糞なのでBorlandの勝ち。 確定。
>>462 用途もなにも、全てC#(かDelphi)でいいじゃん。
切り分けて使う必要性なんて無いよ。
>>470 C#もMSというよりはBorland(Delphi)とSUN(Java)が生み出した、という面
があるし、MSはよそから持ってくるのがうまいんだよね。ただ、どっちが「勝ち」
かと言えば残念ながら利益を出しているMSか。
Del厨が必死で言い訳するスレはここですか?
VB厨必死だな。
>>475 またVB厨召還してやられたいんですか?
AUTO ONANI SYSTEM 略して AOS
Delフサギコはいつもスレ立て逃げですか?
∧,,∧ 全員死ね! ミ,,゚Д゚彡 ミ つ旦)~~ 〜と,,,~),,~)
480 :
デフォルトの名無しさん :02/07/19 22:22
動的にMSILを吐き出して、そのまま実行するサンプル。 Imports System Imports System.Reflection Imports System.Reflection.Emit Module DynamicAssemblyTest Sub Main() Const output_name = "Hello.exe" Dim domain As AppDomain = AppDomain.CurrentDomain Dim asm_name As New AssemblyName() asm_name.Name = "Hello" Dim asm As AssemblyBuilder = domain.DefineDynamicAssembly(asm_name, AssemblyBuilderAccess.Save) Dim mod_ As ModuleBuilder = asm.DefineDynamicModule(output_name, output_name) Dim type As TypeBuilder = mod_.DefineType("Hello", TypeAttributes.NotPublic + TypeAttributes.Class) Dim main As MethodBuilder = type.DefineMethod("Main", MethodAttributes.Public + MethodAttributes.Static, Nothing, Nothing) Dim il_gen As ILGenerator = main.GetILGenerator() il_gen.Emit(OpCodes.Ldstr, "Hello World!!") il_gen.Emit(OpCodes.Call, GetType(Console).GetMethod("WriteLine", New Type(){GetType(String)})) il_gen.Emit(OpCodes.Ret) type.CreateType() asm.SetEntryPoint(main) asm.Save(output_name) domain.ExecuteAssembly(output_name) End Sub End Module
またDel厨追い詰めてる(ワラ
DelphiからMSIL吐き出すなんて地獄だよ。( ̄ー ̄)
正直、.NETだのJavaだの主にサーバーサイドだしどーでもいい。
_____ ∧,,∧___ / ちかごろ /ミ,,゚Д゚ミ/\< C#MLの投稿数が /| ̄∪∪ ̄|\/ \_激減している気が汁ぅ |____|/
usersはドキュソのスクツ
_____ ∧,,∧___ / にタンねるより ⊂ミ゚Д゚;ミ/\< マツかと思われ /| ̄ ̄∪ ̄|\/ \_ |____|/
>>488 同意、MLなんて糞の役にものたたんな。
usersはググるとわりと上位にくる。 よって初心者のスクツに。。。 にタンねるはこのスレをみればわかるかと。
______ | 躁重い | | 鯛のDeathね.| |______| _____ ∧,,∧.||__ / /ミ,,゚Д゚Φ/\< はみちちです /| ̄∪ ̄ ̄|\/ \ |____|/  ̄ ̄ ̄ ̄ ̄
>>491 「こっち」ってこのスレじゃないよ。(w
この板全体として。
そうおもいたいのですね
>>480 >動的にMSILを吐き出して、そのまま実行するサンプル。
動的にネイティブコード吐き出してそのまま実行させることはできないの?
Delphi だと楽勝ですが。
>>496 セキュリティ上に理由により、ネイティブコードは容認できません。
Delphiは動的にウイルスを作成して、実行できるということですね?:-)
>>MLなんて糞の役にものたたんな。 理解できない糞プログラマには、確かに役に立たんね。
>>497 不便な言語なんですね。
テキストエディタもセキュリティー上作れないとか?
偽装工作員にダマされるなよ。
涙目で書き込んでるDel厨・・・
>>501 はい、どんなコードも F9 押すだけです
あ、そ・・・
なんか哀れだなー。 デスクトップで思考回路が止まってしまってるDel厨。
なんか哀れだなー。 ILで思考回路が止まってしまってるVB厨。
507 :
デフォルトの名無しさん :02/07/20 00:33
つーか真面目な話、DelphiよりVB.NETの方が高度なことができるよね。 ここのサンプルコード見てる限り、VBの圧勝だよ。
>>テキストエディタもセキュリティー上作れないとか? そうなんです。セキュリティー上なんにも作れません。 IL 吐いて Framework にお願いすることは得意なんですけど。
>>DelphiよりVB.NETの方が高度なことができるよね。 そうだね。正確にいうと高度なことしかできない。
>>そうなんです。セキュリティー上なんにも作れません。 あっ、そうなんだぁ。 ところで、.NET 上のセキュリティーって、どこが保証しているの? まさか MS とか。そうか、MS はこれまでセキュリティーホールを 一度もつくったことがないからね。おめでたいね。
511 :
デフォルトの名無しさん :02/07/20 00:54
というか、Del厨もほんと目を覚ました方がいいよ。 このスレではVB.NETでコードが出てるけど、ほんとはJScript.NETでもCOBOL.NETでもいいんだ。 つまり、DelphiはCOBOLにすら劣ってるんだよ。 DelphiはもはやWindows上で孤立しちゃってるよ。先はないね。
Del厨ですが、とっくに C# やってますが。
>> DelphiはCOBOLにすら劣ってるんだよ。 あのね、そもそも対照プラットフォームが違うもので言語の優劣という のは無意味では? .NET の言語は、アセンブリを操るスクリプトみたいだから 言語間の差はないのね。 VB も C# も C++ も COBOL と同等、ということでしょ?
やぁ、みなさん、晴れてコボラーの仲間入りですね。おめでとう!
515 :
デフォルトの名無しさん :02/07/20 01:09
>>513 それが分かってるなら C# vs Delphi という構図がそもそも成り立たないことも分かってるよね?
C#では負けを認めても、VB.NETになると必死に負けを認めないDel厨は変だね。
516 :
デフォルトの名無しさん :02/07/20 01:12
でもさ、M$ のやることだろ。
>>515 というか、Delphiに負けるような言語ってあるの?(嘲笑禿藁
>>それが分かってるなら C# vs Delphi という構図がそもそも成り立たないことも分かってるよね? はい、ここのスレタイは vs ではなく、仲良し です。マターリ と行きましょう
519 :
デフォルトの名無しさん :02/07/20 01:17
>> C#では負けを認めても 誰が? 勝手に決めるなよ。優劣の比較は無意味である、と言ってるのに。
無意味でも無いと思うけど
>>520 人が決めるのではなく、客観的に見て勝負がついてる
>>522 そう。客観的に見てVB.NETがDelphiに勝ってる。
客観的? 笑わせるなよ。優劣の比較が無意味である、という主張を認めながら
勝敗を議論するのは矛盾している、と
>>515 に言ってるのよ。
>>524 ムキになるなよ。いくら完敗したからって。(嘲笑激藁
>>525 ムキになるなよ。いくら矛盾を衝かれたからって。(嘲笑激藁
っていうか、わざわざレベル下げてVB.NETでコード出してるのに Del厨対抗できてないじゃん。
>>527 Delphi は IL 吐けません。いくら VB 厨でもいいかげん理解してくれよ。
やぁ、Del厨以外のみなさん、晴れてコボラーの仲間入りですね。おめでとう!
おっ、そうなんだぁ。.NET って COBOL でもできることしかできないだね。
ふーん、面白く無さそうだね。
インラインアセンブラでグラフィック処理とかやっていい? もちろん.NETがそんなに素晴らしい環境なら、速度で追いつくことも可能でしょ? 他にはフックとか、DirectX"7"でサーフェースのDCを弄ぶとか。 ネットというかセキュリティ関連は、確かにManaged環境にネイティブが勝てる筈も無く。それは認める。 なので今度はネイティブ有利な話題に移させて貰おう。 別にManaged C++に応援を頼むことは構わない。
祭りは終わったか?また来週の平日勤務時間からか? 御前等妄想ばかりしないで仕事しろ!
535 :
デフォルトの名無しさん :02/07/20 09:27
>>533 お前のアセンブラの腕によるな。
下手な奴がアセンブラ使うとCLRに負けるぞ(w
>>533 > 他にはフックとか、DirectX"7"でサーフェースのDCを弄ぶとか。
可能
VB厨はな、仕事が無くなるから業界紙の受け売り 情報をかき集めるのに必死なんだよ!! Del厨もマッタリしてないで彼等ぐらい必死になれよ!!
>536 んー…まあそうなんだけど、それならDelphiでもごりごり書けば何でもできるっつうことで、 書き易さの比較としてはアリではないかと。
>>538 Delphiの方が書きにくいって意味ね。
1994年生まれの古典的ツールと2002年生まれの新世代ツールを比べること自体意味なし
541 :
デルファイの名無しさん :02/07/20 14:01
>>535 うっ…そう言われると自信がありません。(MMXとか知らないし)
とりあえず適当にでっち上げた2値化処理です。添削よろ
640*480の32bitビットマップが1回10〜11msec(100回の平均)でした。モバイルPentiumV750。
asm
push ESI; push EDI
mov EAX, H; mov ECX, W; mul ECX; mov ECX, EAX
mov EDI, ScanLine0; mov EAX, W; shl EAX, 2; add EDI, EAX
@L:
sub EDI, 4
movzx ESI, byte[EDI]
movzx EAX, byte[EDI + 1]
movzx EDX, byte[EDI + 2]
add ESI, EAX
add ESI, EDX
cmp ESI, 127 * 3
ja @A
mov [EDI], 0
loop @L
jmp @Leave
@A:
mov [EDI], $ffffff
loop @L
@Leave:
pop EDI; pop ESI
end;
なお、C#でもBitmap.LockBitsでメモリポインタが取得できるところまで確認。
速度を求めるなら、DelphiやVC++で実行ファイル化ってのは今後も 残るだろうね。C#だと、どうしても速度や機能の制約は受けるわけ だし(それでもVBよりはましかもしれんが)。
C# よりも Delphi の方が (名前が)書きにくい
俺の思い違いかもしれないけど、.NETで 「インストール時にネイティブコードへ変換」ってのがなかった? それならDelphiやVCと速度はほとんど変わらんはずだよね。
>>544 原則.NETも実行時はネイティブのはずですけど、
最初からネイティブコードを想定して書けなかったり、全てがクラスである仕様がオーバーヘッドになったりで
やっぱ差は出てくるのではないかと。
ちょっと試した感想としては2倍差ぐらい。
でも浮動小数点演算では希にC#の方が速い場合もあったりして驚きました。
いちばんのネックはランタイムの初期化とロードでしょ。 JIT自体はそれほどのネックじゃないので、PreJITしてもそれほど大きな効果はないよ。 それと、フルネイティブにしても、GCのロジックを持ってたり スレッドプールを抱え込んでたりしたら、今の.NETのパフォーマンスと それほど変わりはなくなると思うよ。
547 :
デフォルトの名無しさん :02/07/20 15:39
いずれにしてもDel厨は.NETを知らなすぎ。 ブビ厨ですら常識なことも分かってない。 もっと勉強した方がいいよ。 Delphi.NETでブビ厨に遅れて.NETに参入してくるわけだし。 このままだと大恥かくだけだよ。
∧_∧∩ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( ´∀`)/< 先生!
>>533 =541のより速いのあっさり作れました!
_ / / / \ 大した事出来ない奴に限ってインラインアセンブラとか持ち出す
\⊂ノ ̄ ̄ ̄ ̄\ \ 例のパターンのようです!
||\ \ \______________________
||\|| ̄ ̄ ̄ ̄ ̄||
|| || ̄ ̄ ̄ ̄ ̄||
.|| ||
>548 結局使う奴の技術次第。 DelもC#も厨房はキッチリ扱えないってこった。
∧_∧∩ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( ´∀`)/< 先生!ちなみにうちの環境で8.5msecから5.5msecになりました!
_ / / / \ 大して最適化技術の無い僕でもあんなコードは書きません。
\⊂ノ ̄ ̄ ̄ ̄\ \______________________
||\ \
||\|| ̄ ̄ ̄ ̄ ̄||
|| || ̄ ̄ ̄ ̄ ̄||
.|| ||
>>533 「インラインアセンブラでグラフィック処理とかやっていい? 」
とか言ってんじゃないよワショーイ...
∧ ∧ ∧
/ ヽ / ヽ_ / .∧
/ `、 _/ `、⌒ヾ⌒ヽ/ ∧
/  ̄ ̄/ u (.....ノ(....ノ / ヽ
l::::::::: | u .:(....ノノ
|:::::::::: -=・=- / ̄ ̄ヽ ::::::::::::::/`ヽ
.|::::::::::::::::: \_(___..ノ u ::::::::::::::::::::(....ノノ
ヽ::::::::::::::::::: \/ヽ u ::::::::::::::::::::::::::::ノ
551 :
デフォルトの名無しさん :02/07/20 18:08
>>540 2002年生まれの新世代ツールを使わないと勝てなかったVBって
ことになるね。
DelphiなりJavaなり使ってればC#やら.NETやらすぐ使えるのに 今ごろになって必死にお勉強しなきゃならんVBと比べてるのがイタイ どっちも使えてりゃその時々で最適なもの選べばいいだろ
>>552 ふふっ。言語を叩く奴ほどイタイ奴はいないね。
サーバでサービスとして動かすアプリを作る場合、 .NETは簡単なのか?
あれだけ大々的に宣伝してるのに簡単じゃなかったら悲惨だろ.NETてなに?ってなっちゃうよ
じゃあ、 inp 命令を素通しするだけのサービス書いてみて
シーーーーー・・・・ン・・・・・
インポ命令?
VB厨はな、やっとオブジェクト指向言語の 仲間入り出来たからうれしくてたまらないんだよ!! Del厨もそれぐらい察してやれよ!!
borland.comにping送り続けるサンプルならいいよ
通報しますた。
>>548 =550
541が大したことないのは自分でも認めるが、
それより速いコードとやらを提示してくれないと貴方の言うことも信じないぞ(w
>>563 ンな事したら俺よりハイレベルな人に突っ込まれるのが
オチじゃねーか ワショーイ...
∧ ∧ ∧
/ ヽ / ヽ_ / .∧
/ `、 _/ `、⌒ヾ⌒ヽ/ ∧
/  ̄ ̄/ u (.....ノ(....ノ / ヽ
l::::::::: | u .:(....ノノ
|:::::::::: -=・=- / ̄ ̄ヽ ::::::::::::::/`ヽ
.|::::::::::::::::: \_(___..ノ u ::::::::::::::::::::(....ノノ
ヽ::::::::::::::::::: \/ヽ u ::::::::::::::::::::::::::::ノ
ただの道程だろ?
君等激藁激藁ってへらへらやってる場合じゃないぞ!! 米国のITバブルの余波が.NETで日本にも来るんだよ!! インドや中国のプログラマが大艦隊で押し寄せて来るんだよ!! なんとかしろよ!!
>>563 納得いかないだろうからお見せします(ポッ
MOV ECX,Width
IMUL ECX,Height
MOV EDI,BtmLine
MOV ESI,127*3+1
@L: MOVZX EAX,BYTE PTR [EDI+0]
MOVZX EBX,BYTE PTR [EDI+1]
MOVZX EDX,BYTE PTR [EDI+2]
ADD EAX,EBX
ADD EAX,EDX
CMP ESI,EAX
SBB EAX,EAX
AND EAX,0x00FFFFFF
STOSD
DEC ECX
JNZ @L
※長くなるので入り口と出口のPUSH、POPは省略
(;´Д`) 127*3+1 →127*3
>>568 そんなもの信じてるから日本は戦争に負けて未だに韓国から
愚痴られるんだよ!!
ネタニマジスレカコワルイ
>>569 SBB…そうかぁ。
分岐を無くせないかは一応考えたのですが、SETXXを使うと余計に遅くなったので諦めてました。
勉強になります。
ちなみに541と同じ条件で計測すると、1回平均9.7msec前後でした。
次はC#で同様のものを作ってみるか…。
(もちろんアセンブラは使えませんしif文も使わざるを得ないでしょうけれど)
>>573 遅くなってる最大の原因は
メモリアクセスしていく方向が後ろになってる事なんだよ ワショーイ...
∧ ∧ ∧
/ ヽ / ヽ_ / .∧
/ `、 _/ `、⌒ヾ⌒ヽ/ ∧
/  ̄ ̄/ u (.....ノ(....ノ / ヽ
l::::::::: | u .:(....ノノ
|:::::::::: -=・=- / ̄ ̄ヽ ::::::::::::::/`ヽ
.|::::::::::::::::: \_(___..ノ u ::::::::::::::::::::(....ノノ
ヽ::::::::::::::::::: \/ヽ u ::::::::::::::::::::::::::::ノ
(;´Д`) なんか俺の日本語変だ・・・
ようはビットマップの最後のラインから順方向にアクセスするようにすれと言いたかった。
>>569 のBtmLineはDelphiでTBitmap使ってるなら
BtmLine := Bitmap.ScanLine[Bitmap.Height - 1] で求める。
試しに541のコードを方向だけ順方向に変えてみましたが、速度的にそう変わらないようですけど…。 ( loopをdec, jnzにしたら速くなりました。じゃあloopって何のために… )
>>541 というか、まんま
>>569 を使っても大して速くならないとしたら環境の違いのせいか・・・
あとLOOPが速いのは386あたりまで。
とにかく、俺らみたいにたいした最適化もできない奴らが
アセンブラ使って〜とかアセンブラ使えば〜とか
言うもんじゃないんだよ ワショーイ... …ネル。
∧ ∧ ∧
/ ヽ / ヽ_ / .∧
/ `、 _/ `、⌒ヾ⌒ヽ/ ∧
/  ̄ ̄/ u (.....ノ(....ノ / ヽ
l::::::::: | u .:(....ノノ
|:::::::::: -=・=- / ̄ ̄ヽ ::::::::::::::/`ヽ
.|::::::::::::::::: \_(___..ノ u ::::::::::::::::::::(....ノノ
ヽ::::::::::::::::::: \/ヽ u ::::::::::::::::::::::::::::ノ
はい…以後気をつけます。
(;´Д`) ワショーイ こわひ…
じゃアセンブラを使わないコードで 24bitColor -> 1bitへの変換 輝度については上のと同じ単純加算方式 procedure cvtmono24(src,dst:TBitmap;kido:DWORD); type ADWORD3 = array[0..2] of DWORD; var s:^ADWORD3;//24bitColor function cv8:BYTE;//6word=24BYTEを処理する var i:Integer; var a,b,c,d:DWORD; begin //baaa //ccbb //dddc for i:=0 to 1 do begin b:=s^[0]; a:=(b and $FF00FF)+((b shr 8) and $FF); a:=( a shr 16)+(a and $1FF ) ; c:=s^[1]; b:=((b shr 16) and $FF00)+(c and $FFFF); b:=(b and $FF)+(b shr 8) ; d:=s^[2]; c:= (c shr 16) +( (d and $FF) shl 8); c:= (c and $FF)+ (c shr 8) ; d:= d shr 8; d:= (d and $FF00FF) + ((d and $FF00) shr 8); d:= ( d shr 16) + (d and $1FF) ; result:=( result shl 1) + ( ( a-kido) shr 31); result:=( result shl 1) + ( ( b-kido) shr 31); result:=( result shl 1) + ( ( c-kido) shr 31); result:=( result shl 1) + ( ( d-kido) shr 31); inc(s); end; end; var i,j,d,Width:Integer; var p:^BYTE; begin if src.PixelFormat<>pf24bit then exit; Width:=src.Width; dst.Width :=Width; dst.Height:=src.Height; dst.PixelFormat:=pf1bit; for i:=0 to src.Height -1 do begin p:=dst.ScanLine[i]; s:=src.ScanLine[i]; for j:=0 to (Width-1) div 8 do begin p^:=cv8;inc(p);end; end; end;
582 :
デフォルトの名無しさん :02/07/21 12:37
DelphiってGDI+使えるの? あ、XPそのものが駄目なんだっけ。失敬失敬。(プ
GDI+も使えるよ。自前で定義すれば
DelphiってXSLTとかXPathって使えるの? 使えるわきゃないか。(ギャハ
俺のマシンだとこれでも>541より速い。>569には負けるが。 素人はコンパイラにまかしとけってこった。 Byte* p = 底のラインのアドレス int l = 幅×高さ×4 for (int i = 0; i < l; i += 4) { if (p[i] + p[i+1] + p[i+2] < 127*3) *(DWord *)(p + i) = 0; else *(DWord *)(p + i) = 0xFFFFFF; }
>>581 あ、色が反転してしまうので result:=not Result; でも入れて下さい
この手の処理は、ある程度メモリアクセスに隠れてしまうので
速度比較をしたいなら、マンデルブロ集合を描くとかの方がいいかも
var x0:double=-1.5; var y0:double=-1; var x1:double= 0.5; var y1:double=1; procedure TForm1.FormPaint(Sender: TObject); var cl:array [0..1000] of TColor; function func(x0,y0:double):TColor; var i:Integer; var x,y,w:double; begin x:=x0; y:=y0; for i:=0 to High(cl) do begin w:=2*x*y; x:=x*x-y*y +x0; y:=w+y0; if x*x+y*y>2.0 then break; end; result:=cl[i]; end; var x,y , xs,ys:Integer; begin for x:=0 to High(cl) do cl[x]:=round( sin(x/High(cl)*PI/2)*255) +round( sin(x/High(cl)*PI*3)*255)*$100 +round( sin(x/High(cl)*PI*5)*255)*$10000; xs:=ClientWidth ; ys:=ClientHeight ; for y:=0 to ClientHeight-1 do for x:=0 to ClientWidth -1 do Canvas.Pixels[x,y]:=func( x0+x/xs*(x1-x0),y0+y/ys*(y1-y0)); end; procedure TForm1.FormResize(Sender: TObject); var rect:TRect; begin rect:=ClientRect; InvalidateRect(Handle,@rect,false); end; var vx0,vy0:Integer; var vx1,vy1:Integer; var vmove:boolean; procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin vx0:=x; vy0:=y; vx1:=-1; vmove:=true; end; procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var cx0,cy0,cx1,cy1:double; var rect:TRect; begin if vx1>=0 then begin cx0 := x0+vx0/ClientWidth *(x1-x0);cy0 := y0+vy0/ClientHeight*(y1-y0); cx1 := x0+vx1/ClientWidth *(x1-x0);cy1 := y0+vy1/ClientHeight*(y1-y0); x0:=cx0; y0:=cy0; x1:=cx1; y1:=cy1; vx1:=-1; end; vmove:=false; rect:=ClientRect; InvalidateRect(Handle,@rect,false); end; procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer); begin if not vmove then exit; Canvas.Pen.Mode:=pmNot; if vx1>=0 then Canvas.Rectangle(vx0,vy0,vx1,vy1); vx1:=x; vy1:=y; Canvas.Rectangle(vx0,vy0,vx1,vy1); Canvas.Pen.Mode:=pmCopy; end;
とりあえず作ったもの GUI処理は1レスに入るように適当 実装部だけ これを高速に出来る?
アセンブラで?
このスレ面白い。いままでアホくさい環境を使ってきた奴らが .NET になってやっと Delphi に追いついた(追い抜いた?) とかいって、Delphi がどうのこうのといいだしたのね。 とくに VB 厨は、これまでの苦難の歴史が感じられて煽りに迫力が感じられる。 .NET になっても VB というのも笑わせられるけどね。 なぜ C# じゃないのだろう?まっ、そこまで VB 好きならそれでもいいけど。 Del厨は、C# なら1週間で乗り換えられる。VB 厨が必死であることは わかるが、力が入りすぎてるんでは。 現状で Del と VB.NET あるいは C#.NET のスペック比べは興味あるね。 純粋な数値計算なんかはどうなんだろう。パイを500桁まで求める、とか。 言語は道具。こだわらずに流行や作成アプリにあわせて適切なのを選んだら いいんじゃないかね。VB だってもちろんOK。
祭り再開?
長文には必ず多くのツッコミが入ると言い伝えられてます・・・
C#、Delphiにインラインアセンブラなんてできたの??
596 :
デフォルトの名無しさん :02/07/21 23:18
インラインアセンブラなんてものがある限りクロスプラットフォームは実現不可能。 DelphiはWindows専用だからそういう機能があるんだね。 VB.NETはクロスプラットフォームだからそんな機能はないよ。
>>VB.NETはクロスプラットフォームだからそんな機能はないよ。 ではウィンドウを表示することもできないの? いや、もちろんできることは知っているけど、それでクロスプラットフォーム になるの?
>>597 System.Windows.FormsはもとからWindows専用じゃないのか?
もっともその他のOSで互換ライブラリが実装される可能性もあるが。
ユーザインタフェースってのはプラットフォームにかなり依存されるし。
>>595 「.NET ではセキュリティー上の理由により」とか言うんじゃないの。
できないことはすべてセキュリティー上の理由です。ハイ
>>598 回答ありがと。
.NET の仕様としてクロスプラットフォームを目指すのは賛成。
でも Java の先例があるとおり、どのくらい実現できるかは、
興味深いところだね。
初めからクロスプラットフォームを意識してコーディングすると
コンソールアプリしかつくれなくなったりして、実用性が疑われます。
>>599 あなただったら、セキュリティーを考慮する場合、
インラインアセンブラは使用できるようにするの? しないの?
>>601 できないことはすべてセキュリティー上の理由です。ハイ
うわー・・・
>>602 つーことはMS優秀じゃん。できないことにはちゃんとした理由があるんだね。
>>つーことはMS優秀じゃん。 そうだね。.NET 上ではセキュリティーホールはゼロです、って保証すればね。
>>605 でも、できないこと(インラインアセンブラ等)に関しては言い訳とかじゃなく、
そうしなければならない適切な理由があるんだよね。
>>608 >つーことはMS優秀じゃん。
これについては一致してないよね?
610 :
デフォルトの名無しさん :02/07/22 00:11
っていうかさ、MSが「Trustworthy Computing」っていうスローガン出したのは知ってるよね? もう新機能追加とかパフォーマンス向上とかで商売する時代じゃないのよ。 Del厨は未だにデスクトップレベルで知能の発達が止まってるから分からないかもしれないけど。 セキュアであること、高度に抽象化されて生産性が高いこと。これが大事。
Del厨を「デスクトップ知恵遅れ」と呼ぼうぜ
>>スローガン出したのは知ってるよね? 知ってる。IE の update するときに読まされた。 ビルゲイツが全社員に直接メールを送ったそうだね。 >セキュアであること、高度に抽象化されて生産性が高いこと。これが大事。 これにも賛成。しかし、今ごろ何言ってるの? という感じはぬぐえない。 OSでシェア No1 を獲得したから、余裕で言ってるのよ。いままでは 何だったのよ。MFC がセキュアじゃなくて、高度に抽象化されていなくて 生産性が低かったのは、明白でしょ。Delphi の VCL は、.NET より古い ので、セキュアではないが、抽象化と生産性はかなり高度だよ。しかも 7年前に実現してたんだよ。.NET より優れている、とはもちろん主張しな いがね。 オレは、 C# を始めます。
Java使いの目から見れば、Del厨よりVB厨の方がいいこと言ってると思う。 確かに今さら感はあるけど、よくぞ気付いてくれた!というのもある。 その点Del厨はまだまだついて来れてない未熟さがあるね。
>> Del厨よりVB厨の方がいいこと言ってると思う。 オレは Del 厨だがね、たしかに必死さが違うよね。 でも Del 厨からみれば、C# はいかにも簡単そうに見えて なんでそんなに必死になる必要があるのか理解できないよ。
はげどー
>>614 文法の表面しか見てないからでしょ。
ライブラリやランタイムの深いところまで見ていけば、.NETはとてつもない壮大な構想だというのが思い知らされる。
はっきり言って、Javaを一通りマスターしてても.NETを理解するのに1年はかかると思う。
DOS→Windows並みの進化というのは嘘じゃないんだよ。
>>614 C#に移行しないDel厨とか、
C#がどんなのか知らずに騒いでるだけとか、かな。
数がいる分、厨も多いだけでは。
>>613 具体的にどのレスえいいこと言ってるだね?
VB厨のレスの大半が必死でDel叩いているだけだから
あきれてカキコする意志も萎えてるんだが,,,
 ̄ ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
∧,,∧____
/,ミ゚Д゚彡,,, /|
□⊂へ ::::⊂,,,ミ //
(_ミ ゛,, ノ~~//
(_丿|_|"" し'
クロスプラットのことはCLXきてみてさわってから
お話してはどうかしら?
.NETでクロスできると
いまだに思考するのはいかがなものかと。
MSがやる気になってたら、リナでもBSDでも
IIS以外のアパチとかでもクロスできるだろうが
技術ではなく政治的にそんなことやるわけないでしょ。
>>Javaを一通りマスターしてても.NETを理解するのに1年はかかると思う。 Java使いからみてもそうなんだとすると、そうなんだろうね。 ちなみに、Java と C# とは「表面上」ほとんど変わらないでしょ。 もちろん、ライブラリには違いがあるけど。 >>.NETはとてつもない壮大な構想だというのが思い知らされる。 壮大だから偉大だとは限らないのでは。オレも C# を始めるんで まぁ、成功を祈っているが。
>>619 少なくともDel厨はろくでもないことしか言ってないね。
>>619 君みたいな視野の狭い人間には分からないだろうけど、CLXなんてIA-32の2つのOSで動くだけで、
そんなものはクロスプラットフォームとは呼ばないのだよ。
CLIの方はOSは3つ、CPUはIA-32・SPARC・ARMを今現在サポートしてるのだよ。
こういうのをクロスプラットフォームって言うんだ。
そしてそれは「やるわけない」じゃなくて「今現在実現済み」なんだよ。分かる?
>>619 >VB厨のレスの大半が必死でDel叩いているだけだから
>あきれてカキコする意志も萎えてるんだが,,,
まぁ、これまでのVB使いの苦難の歴史を慮ってですね、
.NET のうえから、やっと Del がどうのこうの言えるので
嬉しくってしょうがないのよ。
すこしは察してやれよ。
>>622 >CPUはIA-32・SPARC・ARMを今現在サポートしてるのだよ。
おっと。PowerPCも忘れてたね。
>>623 でDel厨は素直に負けを認めているわけか。いい心がけだ。
>>622 二つと三つ比べて、なにいってんの
目糞鼻糞みたいだな
KylixなんてKDEでしか動かないだろ。 Linuxサポートとか言っておきながらCPUもウィンドウシステムも限定されるなんてクソだね。
>>625 VB 厨はなんでも勝ち負けで判断するのね。
これまで負け続けてきた、とでも思ってるのかい。
もっと、誇りをもてよ。
誇り高きVB厨諸君!
Del厨もどうやらどうやってもVB.NETに勝てないことに気付き出したんだ。 だから必死に話題の矛先を変えようとしてるんだ。 察してやれよ。(嘲笑激藁
WinMeは.NETインストできないって聞いたんだけど、 何にインストできるんだ?
./ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
∧,,∧____ |
>>623 察してるよ。察してもウザイだけだけどね。
∬ /,ミ゚Д゚,彡,,, ./|<
>>622 おや、聞いたことがなかったです。
□⊂へ ::::⊂,,,ミ // | Win系では動くってのは聞いてるけど。
(_ミ ゛,, ノ~~// | .NETアプリがLinuxやBSDやMacOSX、ソラリス
(_丿|_|"" し' | で動くのですか?
\___________________
>>627 グノムでも動くんではなかったかしら?
VS.NETなんてWinでしか動かないなんてクソだね。(って煽り返していいの?)
しかしDel厨はC#は優れてると認めても、VB.NETだけは意地でも認めないのは見ていて面白いね。
フサギコ必死だな。(藁
>>633 C# を始めるってカキコした Del 使いです。
.NET 上では、VB も C# も C++ も COBOL も大差ないことは
知っています。Delphi より C# が優れているから C# を始める
わけではありません。C# を始めることになんら他意はありません。
ただ、Delphi から見て一番始めやすいことは事実です。
>>635 そう?
C#よりVB.NETの方がObject Pascalに近いと思うよ。
なんでそんなに毛嫌いするんだろ?
>>なんでそんなに毛嫌いするんだろ? それは被害妄想というやつでは? >C#よりVB.NETの方がObject Pascalに近いと思うよ。 これには同意しません。
638 :
デフォルトの名無しさん :02/07/22 01:35
.NETへの移行パス VB → VB.NET or C# VC++ → MC++ or C# Java → J# or C# BCB → Delphi.NET or C# Delphi → Delphi.NET or VB.NET
自由はC#などに負けはしません。
VB →→→→→やっと→→→→→ VB.NET では?
>>638 なるほど。Del厨だけがC#は必要ないのか。
つーかDel厨は.NET使わなくていいよ。うざいから。
「つーかDel厨」というのはハツミミです
>>642 MC++はRADじゃないから。
何でもBorlandユーザーさんってRADしか使わないとか聞いたから。
>>645 > RADしか使わないとか聞いたから。
んなこたないYO!
>>645 BCBがRADじゃなかったらみんなVC++使っちゃうし。
______
| 言語は |
| 宗教です .|
|______| _____
∧,,∧.||__ /
/ミ,゚Д゚ Φ/\< 信じるものは救われる
/| ̄∪ ̄ ̄|\/ \ のか?
|____|/  ̄ ̄ ̄ ̄ ̄
>>636 宗教上の理由により
食せないものもあるんじゃないかな。
650 :
デフォルトの名無しさん :02/07/22 01:43
Delphi.NETっていつ出るの?
>>649 チミは.NET使わんでよろしい。
どうせ.NETが必要になるほど立派なことしとらんだろうから。
.NETを使えば立派なことができるのか?
>.NETが必要になるほど立派なこと 笑わせるなよ!ハライテー
>>650 出ない。過去との互換性を保てないから全く別の商品名で出る。
656 :
デフォルトの名無しさん :02/07/22 01:50
言語名は .PASCAL と名付けられるそうです。
>>過去との互換性を保てないから全く別の商品名で出る。 オレは Del 使いだが、上のようになってほしい、と思っている。 Del は Win 上で別、.NET では Object Pascal を使える別の 製品であって欲しい。
C++マンセ ∧ ∧ マンセ / ヽ / ∧ マンセ / `、 / ∧ /  ̄ ̄ ̄ ヽ l::::::::: l |:::::::::: -=・=- -=・=- | マンセ |::::::::::::::::: \___/ | ヽ::::::::::::::::::: \/ ノ javaマンセ
オレはJava使いだけど、.NETではJ#ではなくC#を使う。 (javaマンセではない) 同じようなことができるんならVB.NETつかずにC#使うのが 普通じゃないか? VB.NETは淘汰されると思うのだが。
∧,,∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ミ 彡 < .NETを使っている君は (ミ ミ) \_______ ミ ミ ∪ ∪ ∧,,∧ サッ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ミ,,゚Д゚ミ < 立派な人なんですね。 ⊂ Om \_______ ミ、,, ミ, .しヾJ
>>VB.NETは淘汰されると思うのだが。 いつの時代にも厨はいるのよ。だからその溜まり場が必要なの。
.NETが必要な案件てどんなの思い浮かぶ?
>>.NETが必要な案件 VB厨が Del厨とはりあって2chに書き込む、くらいかなぁ
>>.NETが必要な案件 立派なアプリ作成、くらいかなぁ
リッパ、リッパ、リッパカパッパッパーの.NET
とりあえず、みんなさんで
∧,,∧ オデンでも食え
ミ ゚Д゚ミ
(ミ ミつ-□●△
ミ ミ
し''`J
>>657 フサはそうは思わない。
既存のVCLコンポの大半が
.NET上でコンポとして使えるようになって
くれると、大変うれすいが。
>>659 言語の移行はそんなに楽じゃない
J系とC系は似た記述が多いが
VB or PascalとC系はちと違う事情
.NETは必要とされてないのですね。
>>662 ドトネトが必要な案件が存在する事は認めるが、ネイティブコンパイラの
優位性の方が重要な案件の方が圧倒的に多いような気がする。
>>.NETが必要な案件 新しもの好きなクライアントが指定したとき、くらいかなぁ
>>ドトネトが必要な案件が存在する事は認める たとえばどんな?
>>既存のVCLコンポの大半が.NET上でコンポとして使えるようになって これには同意しない。こんなのだったら C# を使いたい。
>>671 そうか?
過去の資産を使えないようなら.NETやる意味ないんじゃない?
少なくともVBは移行できる仕組みがあるんで、
某もおそらく既存コンポを.NET上で使える仕組みを
作るはず。
ていうか、俺はなかったらC#を使うな。
>>過去の資産を使えないようなら.NETやる意味ないんじゃない? .NET は過去の資産を使うためにやるんじゃないよ。 VCLは優れたクラスライブラリだが、いかにも古いよ。 Graphics.pas や Controls.pas、Forms.pas、ExtCtrls.pas、Grids.pas などが、宣言が同じで実装が異なった形ででてくるなら、失望する。 .NET の機能をフルに使おうとしたら、絶対にプロパティーやメソッドの 追加は必要。→ それだけで .dfm の互換性なし。似て非なるものをつくるより いっそ、まったく新しいクラスライブラリをつくってほしい。
>>668 典型的なDel厨。
せいぜい未チェックのバッファだらけのクズプログラム作っててください。
677 :
デフォルトの名無しさん :02/07/22 08:44
やっぱりM$信者はすげえや。 ゲイツ様が「セキュリティが大事」と言えばこうも主張が変わるのか。
ごめん
>>589 訂正
× if x*x+y*y>2.0 then break;
○ if x*x+y*y>4.0 then break;
元のままでも殆ど変わらないんだけど、少しゴミが出るみたい
動作は、マウスでドラッグして指定した矩形範囲を拡大してゆくだけのもの
高速にするっていっても ○とても数学の才能がある人は何か方法があるのかも ○でなければもしかして固定少数点化すれば高速になるのかも ○そこらへんが高速になるならBMPを作ってScanLineで高速化とか?
Del厨ってグラフィックとかデスクトップ関連でしか立場がないんだね。(プー 時代はウェブアプリなのにー。
ウエブアプリってどこの用語? いったい何の事のつもりよ! .NETが少し楽なのはウエブサービス関連と IIS使う時だけじゃないの?
682 :
デフォルトの名無しさん :02/07/22 10:56
Delphiってさ、何も考えなくてもポトペタでアプリが出来上がっちゃうんだよね。 しかもコミュニティが閉鎖的で狭いから、大したことができなくても内輪でヒーローになれてしまう。 これって害悪以外の何者でもないよね。 この人たちって.NETで通用するのかな? こっちにはガベージコレクションとかセキュリティのエキスパートがいるからね。 しかもそういうエキスパートたちはほとんどが元VB使い。 今まで表面だけのアプリ作ってたDelphi使いたちにとっては異次元に感じるだろうね。 まあ、Delphi使いがこっちの世界に来るなら歓迎するけどさ、 あまり厨房的なマネはして欲しくないんだよね。 .NETの価値が下がるから。
683 :
デフォルトの名無しさん :02/07/22 11:06
======2==C==H====================================================== 2ちゃんねるのお勧めな話題と ネットでの面白い出来事を配送したいと思ってます。。。 ===============================読者数:115274人 発行日:2002/07/015 どもどもー、取り繕う為に稚拙でも必死の書き込みをしてしまった、苦しいひろゆきですー。 最近どうも気になることがあるですよー。。。 おいらの企業と闘う姿を称賛する声がだんだん小さくなってきた気がするですよー。 日本生命と闘っていたときは、おいらは間違いなくヒーローだったのに、最近じゃすっかり唇がロナウジーニョですよー、、、うぅうぅ それからもう一つ、珍走団に土下座させられた時ですけど、あの時おいらが震えていたのは風邪をひいていたからなんですよー。本当に本当ですよー。隊長にも聞いてみてくださいよー。 絶対に恐くて震えていたんじゃないですよー。信じてよー、、、うぅうぅ ついでにもう一つ、元削除人の皆さん!お願いです! おいらが彼女の手帳と携帯の着信履歴を盗み見てることや、おいらが本当はログをとってることを言いふらすのはやめてよー。。。うぅうぅ 以前は一緒に自作自演の厨房をからかって遊んでいたじゃないかー、、、うぅうぅ んじゃ!
>>682 > しかもコミュニティが閉鎖的で狭いから、大したことができなくても内輪でヒーローになれてしまう。
非常に痛いとこを突くね。
俺のVCLの予想。 Windows.Formsは基本的にWindows上でのみ動作することを考慮したもの。 VCLはWindowsと他のプラットフォーム(といっても当面はLinux?)でも 同じように動作するように考慮される。 Windowsで最適化されたUIを選ぶならWindows.Forms、 複数のプラットフォームで同じように動作することを期待するならVCL と言う風に使い分けされる。
確かにWindows.Formsを使わないGUI実装というのもアリかなとも思えますね。 いっそインラインアセンブラもアリにして、C#とMC++の中間を狙うとか。 682はコピペの気がする
687 :
デルファイの名無しさん :02/07/22 14:57
BitmapData Data = Bmp.LockBits(new Rectangle(0, 0, Bmp.Width, Bmp.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppRgb); try { byte* P = (byte*)(void*)Data.Scan0; for(int I = Bmp.Width * Bmp.Height; I > 0; --I) { if(*P + *(P+1) + *(P+2) > 127 * 3) *(System.Int32*)P = 0xffffff; else *(System.Int32*)P = 0; P += 4; } } finally { Bmp.UnlockBits(Data); } 一応言い出しっぺなので、二値化処理C#版も書いてみました。 で、同じ条件で計測…僕の環境では、速い順に、 541改(順方向にしてloopをjnzに変更) , 569 , C# , 541 でした。 やるなCLR…って541が遅いだけか ついでに質問。上のコードでPに対してfixedを使うと不要云々のエラーになるのは何故ですか?
>>687 値型でマネージドヒープ上にはないから、ポインタのアドレス移動を気にしなくてよい。
>>689 合ってるんじゃないの?
CS0213でしょ?
ここはブビ厨の方に判定してもらいましょう。
692 :
デフォルトの名無しさん :02/07/22 17:27
本屋行って気付いたんだけどさ、.NET関連の本の種類ってDelphi関連の種類より多くない? 今年生まれたばかりの技術なのにね。なんでだろう。 あ、Delphi使いの人には言っちゃいけないことだったかな? ごめんごめん。(プ
693 :
デフォルトの名無しさん :02/07/22 20:55
良スレあげ
694 :
デフォルトの名無しさん :02/07/22 22:37
新スレよろしく。
>>692 マニュアルだけじゃ理解できんやつが多いからだろ
>>691 VB厨はコード読めません。煽りは得意です
まぁ、ボーランドジャパンはチョンがやっていることがわかったから 将来は無いな。ケケケ
ほんと仲いいねえ。(ワラ
700 :
デフォルトの名無しさん :02/07/23 10:17
で、Delphi.NETはどうなったんですか? VS.NETみたいにパブリックベータは出さないんですか? BorlandのオープンさってMSに激しく劣りますね。
いやM$のは製品がβだから それは・・・
某も腐ってきたよな
(^Д^)ギャハ!↑みなさん、この人のレスどう思いますか♪ なんてありきたりなんでしょうね♪ 誰もが皆、一瞬つけてみたくなる発想のレスです♪ しかし、賢明な人はその自らの短絡的思考を野放しにする事を嫌がり、 こういうレスは控えます♪ しかし、この人はしてしまったのです(^^;ワラ 「誰もが思い付くような事」を堂々と♪ この人にとってこのレスは何なのでしょうか♪ このレスをしている間にも時間は刻々と 過ぎ去っているのです♪ 正にこの人のした事は「無意味」「無駄」でしかありません♪ ああ・・・何ていう事でしょう(^^;ワラ 図星で泣いちゃうかも(^^;ワラ
704 :
デルファイの名無しさん :02/07/23 21:12
>>405-406 ようやくできた…APIのサンプルって探せば結構見つかるものですね。どうだ!
program AdminHello; {$APPTYPE CONSOLE}
uses Windows, SysUtils; (* 一部足りない定数を宣言…省略 *)
function IsAdministrator: Boolean;
var ptg: PTokenGroups; sid: PSID; I, dwTokenGroupsSize: DWORD;
sia: SID_IDENTIFIER_AUTHORITY; hToken: THandle;
begin ptg := nil; sid := nil;
try
if not OpenThreadToken(GetCurrentThread, TOKEN_QUERY, False, hToken) then
begin if GetLastError <> ERROR_NO_TOKEN then RaiseLastOSError
else if not OpenProcessToken(GetCurrentProcess, TOKEN_QUERY, hToken) then RaiseLastOSError;
end;
dwTokenGroupsSize := 0;
GetTokenInformation(hToken, TokenGroups, nil, 0, dwTokenGroupsSize);
if GetLastError <> ERROR_INSUFFICIENT_BUFFER then RaiseLastOSError;
GetMem(ptg, dwTokenGroupsSize);
if not GetTokenInformation(hToken, TokenGroups, ptg, dwTokenGroupsSize, dwTokenGroupsSize) then
RaiseLastOSError;
sia := SECURITY_NT_AUTHORITY;
if not AllocateAndInitializeSid(sia,2,SECURITY_BUILTIN_DOMAIN_RID,DOMAIN_ALIAS_RID_ADMINS,0,0,0,0,0,0,sid)then
RaiseLastOSError;
for I := 0 to ptg^.GroupCount - 1 do if EqualSid(ptg^.Groups[I].Sid, sid) then begin Result := True; Exit; end;
Result := False
finally if sid <> nil then FreeSid(sid); if ptg <> nil then FreeMem(ptg);
end;
end;
begin if IsAdministrator then WriteLn('Hello World!');
end.
>704 (;´Д`)
>>706 >mono::プロジェクトのひとつ、Component Pascal
(゚Д゚)ハァ?
ComponentPascalはPascalと名前は付いていますが、実際はOberonみたい。
ObjectPascalとはまた別系統のPascal系言語ですね。興味深いかも。
>>688 BitmapDataは参照型ですが、データそのものは違うのですか?
709 :
デフォルトの名無しさん :02/07/24 20:13
710 :
デフォルトの名無しさん :02/07/24 20:53
FreeBSD 4.5-RELEASE (FIREWALL) #1: Sun Jun 30 13:54:43 GMT 2002
Welcome to FreeBSD!
Before seeking technical support, please use the following resources:
o Security advisories and updated errata information for all releases are
at
http://www.FreeBSD.org/releases/ - always consult the ERRATA section
for your release first as it's updated frequently.
o The Handbook and FAQ documents are at
http://www.FreeBSD.org/ and,
along with the mailing lists, can be searched by going to
http://www.FreeBSD.org/search/. If the doc distribution has
been installed, they're also available formatted in /usr/share/doc.
If you still have a question or problem, please take the output of
`uname -a', along with any relevant error messages, and email it
as a question to the
[email protected] mailing list. If you are
unfamiliar with FreeBSD's directory layout, please refer to the hier(7)
man page. If you are not familiar with man pages, type `man man'.
You may also use `/stand/sysinstall' to re-enter the installation and
configuration utility. Edit /etc/motd to change this login announcement.
%
711 :
デフォルトの名無しさん :02/07/24 21:25
.NET FrameworkのGUIコンポーネントを見てみたけど、基本的に VCLと大差ないね。というか、プロパティやイベントの関数登録 とかほとんど形がVCLそのまま(^^;。 Delphiへの移植は比較的楽かもしれない。
>>709 デブの言うことはアテにならん。つーかそんな基本的な事に
はまるやついるの?
>>709 VS.NETが出ただけでWeb開発の玄人気取りか。
ブビ厨はおめでたいな。
>>713 だって実際にVB.NETでウェブ開発やってるもん。
Delphiじゃできないでしょ?
あ、言っちゃいけないことだったかな?ウプププ
夏休み中のお子様厨は、放置!
WebSnapとかWebBrokerとか、高速CGIはDelphi5の売りで、6でも拡張されています。 …確かに使ったことは無いが …というかウェブ開発なんて凝らなければ標準入出力さえ扱えればどんな言語でもオーケーな気が
>>716 これだからDel厨は・・・。
認証とか暗号化とかどうするつもりよ?
そういうライブラリ使えばいいだけでは? 事実WebSnapには認証機能あるし いい噂を聞かないIISに縛られるのも考え物だし
719 :
デフォルトの名無しさん :02/07/25 03:32
>>718 (゚Д゚)ハァ?
.NETのどこにIIS限定の機能があるんだよ?
頭大丈夫ですか?
Web 開発に玄人もヘッタクレもないだろう。
Webデザイナーっていうんじゃないの?
Webアプリ作ってる人間をプログラマと呼ぶのはどうかな
「Webデザイナー(スクリプトもかけます)」だな。
Webアプリだから、単にHTML吐くだけのつもりなんじゃない?
>>726 IISがApacheに負けたってことだな。
元々ApacheなんてWinで完璧に動作してたものを、
.NET側が戦略で排除してただけじゃん。
>>727 つーか、某がDelphi.NETでApache対応を表明してたのに先を越されてやんの。(プププ
既に現行のWebSnapはISAPI/NSAPI,普通のCGI,Win-CGI,Apacheに対応済だが… それよりも、このスレに本当のWeb開発経験者が居そうに無いのが問題だ。(オレモナー
私はインターネットを開発しますた
VB.NET = VB6.0 + Visual InterDev?
VB.NET = VB6 + Java
何かさ〜、ここはC#とDelphiの話するスレぢゃないの? 大体、VBプログラマの何パーセントがVB.NETに移行できるの? ここに書き込んでるような上級VB厨の影には、PG生命を絶たれる100倍の初級中級厨がいるような...
上級VB厨(w
最上級VB厨ですが何か?
VB厨シルバー VB厨ゴールド VB厨プラチナ
第2種VB厨 第1種VB厨 特殊VB厨
このスレの失敗はアフォが変なスレタイにしたことだ と今更ながら言ってみる
∧,,∧ このスレにこんな時間にカ既婚 ミσ゚Д゚ミσ でる、オマエよりましですが、何か? と、言ってみるXPテスト
Del厨の立てたスレじゃDel厨しか集まらんよ
荒れる原因はフサギコが隠れブビ厨だから。
フサギコってVB.NETでコマンドライン開発すらできないんだろ? じゃあブビ厨以下じゃん。(ワラ
このスレ見て、M$環境に従属してるヤシの方が ストレス溜まるってことがよく分かる。(w プログラマーって因果な商売だな。
(名) (1)原因と結果。「―関係」 (2)〔仏〕 (ア)今ある事物が以前の何らかの事物の結果であり、また将来の何らかの事物の原因であること。 (イ)自分のなしたよい行為や悪い行為に応じて、それに相当するよい報いや悪い報いがあること。 (ウ)現在の不幸は、前世での悪業によっているということ。「これも―とあきらめる」 (形動)[文]ナリ 不運な巡り合わせであるさま。いやな運命にあるさま。「―な生まれつき」「―なやつだ」
ここでDelphi貶してるヤシって.NETに移行した旧Delphiユーザーだろ?
747 :
デフォルトの名無しさん :02/07/31 18:40
鯖が変わったのけ
>>746 そう思いたいんだろうが、どうみてもブビちゅうの書き込み。
次回は「単一言語使い vs 多言語使い」でお送りします。
次回は「単一VB使い vs 多VB使い」でお送りします。
>>750 多VBって、VB1とかVB2とかVB4とかVB6とかVB.NETとか?
VBScriptとかVisualBasic for ApplicationとかVisualBasic for MS-DOSとか?
>多VB使い ライセンス違反です。
DLL地獄のため多VB使いは存在し得ません。 バージョンアップを強要する機能です。
このスレにVBは関係ないだろ
Delphiにもあった DLL地獄のお話
http://www.borland.co.jp/midas/papers/multi_tier/multi_tier3.html >>
彼の国には、Delphi 2で書かれCDで配布されている電話帳ソフトがあったそうです。
Delphi 3は、このCDの制作中にリリースされました。
そこで、いくつかの情報システムは、この電話帳CDが売り出される前にDelphi 3で開発されました。
このCDの発売後まもなく、Delphi 3で書かれた情報システムの多数のクライアント・アプリケーション
が正しく動作しなくなりました。理由は、情報システムのユーザーがこのCDから電話帳をインストールし、
彼らのBDEが古いバージョンと置き換わってしまったからです。
Delphi駄目じゃん。(藁
>>756 それはDLL Hellの話じゃなくてタコなインストーラの話じゃないのか?
>>758 そうじゃないよ。Delphiで作ったExeはOSに依存せず動くのが悪いんだよ。
VBなんてWinのバージョンがあがると基本的に動かないんだから。
なんだよ、あれだけ巨大な.exeでさらにDLL Hellか。(プッ
BDEを強制上書きするインストーラのせいとしか読めないが… まあ、その頃はIE入れるとDelphi2でデバッグできなくなったり色々ありました。 関係ないけどVB対Delphiスレ立っちゃいましたね。 やってることここと似てるし
763 :
デフォルトの名無しさん :02/08/07 12:33
そのうちMSが開発ツール部門を某にアウトソーシングしたり。
>>759 > VBなんてWinのバージョンがあがると基本的に動かないんだから。
うそはいけない。
766 :
デフォルトの名無しさん :02/08/07 12:47
>>763 まあ、Delphi(VCL)の完成形が.NETという面はあるな。
ただ、逆にコンポーネントベースの.NETができた時点で
本家Delphiの存在意義はかなり薄れた気もする。C#でも
ほとんどDelphiと同じような感覚でプログラムを書ける
からね。
Delphiは、.NETの礎としてひっそり埋もれていくのかも。
>>766 C#/CLIがWin32やLinuxのネイティブコンパイル出来たらDelと同列になるが、
M$の会社としての戦略がそれを許さない。
>>767 つまりネイティブコンパイルしたら大幅にパフォーマンスが上がると思っている人?
やっと.NETに移行できて嬉しそうだな。> Del厨
住基システム作ってますが?
>>770 新しいものが普及するには時間がかかるJavaなんて10年たった今でこの状態だ。
それに比べれば.NETの普及速度はJavaよりもずっと早い。
773 :
デフォルトの名無しさん :02/08/07 15:29
>>772 Javaがいつ10周年を迎えたんですか?(プッ
Javaは1991からだろ
.NETってまだ5ヶ月?
>>776 いや。それは明らかに間違っておりますです。はい。
SDKが正式にリリースされのは Java 1996/03 .NET 2002/03 だと思う。 Javaって普及速度遅いな。.NETは一〜二年で追い越すんじゃないか。
781 :
デフォルトの名無しさん :02/08/08 02:41
.NET が普及してると思ってるやつ頭おかしいよな
冫─' ~  ̄´^-、 / 丶 / ノ、 / /ヽ丿彡彡彡彡彡ヽヽ | 丿 ミ i . -‐ ‐- .. | 彡 ____ ____ ミ/ ´,.::::;;:... . . _ ゝ_//| |⌒| |ヽゞ ヾ:;_ `_,.ン| |tゝ \__/_ \__/ | | l  ̄ ̄...:;:彡ヽ ヽノ /\_/\ |ノ.─、 ..::::;:;;;(....ノヽ ゝ /ヽ───‐ヽ / (_..ノ . ...:::::;;;;;(....ノ /|ヽ ヽ──' / } . .....:::;:::;:;;;;(....ノ / | \  ̄ ,/| .!, . .:.::;:;;;(....ノ / ヽ ‐――‐ .ト , . ..,:;:;:=:彳 ヽ、.. ....::::;;;ジ
>>781 いや、すごいよ.NET。googleで.NETで検索したら、ヒット件数
2億以上。ちなみにDelphiは345万、C#は131万だった。
>784 '.net'は除いたんだろうな。
>>782 それは(.NET≒熱湯)に掛けてるわけか?
.com が8億9千万 .net が2億二百万 .org が1億6千万 二位だよ。.com の方がメジャーだよ
とりあえず
>>784 は XX ということでいいですね。
789 :
デフォルトの名無しさん :02/09/14 20:14
>>789 あの程度のレベルのプログラムしかつくれん奴の実験を信じるのか?
>>790 まああの程度のレベルで作ってもC#なら結構速いって意味はあると思うよ
Power(x,2) をたぶんC#は x*x にとか最適化で結構頑張ってくれるんだろう
>Power(x,2) をたぶんC#は x*x にとか最適化で結構頑張ってくれるんだろう わざとそういうのを選んでるのかもね(w
Delphiは軽いコンパイラだから、最適化は軽め、 必要なら人間がチューニングして必要なだけ速くすればいいという思想 C#はコンパイラがガンバってくれる。ある程度のヘタレなコードを書いても コンパイラがカバーしてくれる。 どちらがいいかは今の所判らない。 ただ・・・確かにC#はベンチマークで良い数字を出すんだけど、使うととにかく 重く感じるのがどうもなあ・・・
794 :
デフォルトの名無しさん :02/09/15 09:12
795 :
デフォルトの名無しさん :02/09/15 09:40
以前やってた倍近く差が出るというこのコードも恣意的といえば恣意的だしさ procedure TForm1.Button2Click(Sender: TObject); function func(a:Integer):Integer; var i:integer; begin Result:=0; if a<1 then exit; Result:=1; if a<2 then exit; for i:=1 to a-1 do Result:=Result+func(a-i)+func(i); end; var StartTime:int64; begin StartTime:=GetTickCount; func(19); Memo1.Lines.Add(format('%10.2fsec',[(GetTickCount-StartTime)/1000]) ); end; private int func(int a) { if (a<1)return 0; if (a<2)return 1; int r=1; for(int i=1;i<a;i++)r += func(a-i)+func(i); return r; } private void button2_Click(object sender, System.EventArgs e) { DateTime stim = DateTime.Now; func(19); textBox1.AppendText( "\x0d\x0a"+((DateTime.Now.Ticks-stim.Ticks)/10000000.0).ToString("f") ); }
>>792 Powerだけでなく、Log(2)が定数になってないのも、
ネイティブ組(C++/Delphi)に不利と思われ。
>>795 ぱっと見ただけでも、なぜPascal側は関数内関数?(親のEBPが渡される)
なぜResultに代入してからif?(等価なのはif ... then begin Result := ...; Exit; end;)
なぜIncを使わない?(コンパイラの最適化の範疇だけどさ)
程度の疑問は沸くな。
797 :
デフォルトの名無しさん :02/09/15 20:58
DelphiとC#のベンチマークやってみたよ。 お題:円周率の計算(再帰とdoubleの四則演算のみを使ったアルゴリズム) 計測方法:bash(cygwin)のtimeを使用(exe起動のオーバーヘッドは0.2ms以下) 実行結果 C# real 1m26.994s user 0m0.020s sys 0m0.020s Delphi real 1m40.325s user 0m0.010s sys 0m0.020s 結果はDelphiがC#の86.71%程度の速度でした。
798 :
Delphiのソース :02/09/15 20:59
program Project1; {$APPTYPE CONSOLE} uses SysUtils, Windows; function calc(x1, y1, x2, y2: Real; Depth: Integer): Real; var x, y: Real; begin if x1 * x1 + y1 * y1 >= 1 then Result := 0 else if x2 * x2 + y2 * y2 <= 1 then Result := (x2-x1)*(y2-y1) else if Depth <= 0 then Result := (x2-x1)*(y2-y1) / 2 else begin x := (x1 + x2) / 2; y := (y1 + y2) / 2; Result := calc(x1, y1, x , y , Depth-1) + calc(x1, y , x , y2, Depth-1) + calc(x , y1, x2, y , Depth-1) + calc(x , y , x2, y2, Depth-1) ; end; end; function getpi: Real; begin Result := calc(0,0,1,1,27) * 4; end; var ct: Cardinal; pi: Real; begin ct := GetTickCount; pi := getpi; Writeln('pi=', pi, ' time=', GetTickCount-ct, 'ms'); end.
799 :
C ◆/5g1A/WE :02/09/15 21:00
using System; namespace CSharp { class CSharp { static double calc(double x1, double y1, double x2, double y2, int Depth) { if( x1 * x1 + y1 * y1 >= 1 ) return 0.0; if( x2 * x2 + y2 * y2 <= 1 ) return (x2-x1)*(y2-y1); if( Depth <= 0 ) return (x2-x1)*(y2-y1)/2; double x = (x1 + x2) / 2; double y = (y1 + y2) / 2; return calc(x1, y1, x , y , Depth-1) + calc(x1, y , x , y2, Depth-1) + calc(x , y1, x2, y , Depth-1) + calc(x , y , x2, y2, Depth-1) ; } static double getpi() { return calc(0.0, 0.0, 1.0, 1.0, 27) * 4; } static void Main() { Console.WriteLine(getpi()); } } }
っと 思ったら Real ・・・・・そりゃないだろ
>>801 type Real = Doubleにしても結果はほぼ変わらず。
想像するにDelphiのは古いスタック型のコード(正確な表現を失念)生成しているのに対して、
.NETは直接実数のレジスタを使用しているためかもしれません。
あ、ゴメン ヘルプみたら D6では RealはDoubleと相当で Real48が遅い互換Realに変わってたんだ・・・
でも違うんだよね、Doubleにしたら PenV650(かなり遅いけど)で C# 2分27秒 Del 1分55秒 こんなもんだと思うよ
Pen4だとC#が新命令を使うという可能性はあるかな
>でも違うんだよね、Doubleにしたら これは取り消しておこう
>805 C#がとても遅いですね。 こちらの環境はAthlon1G, WinXP, Del6Pro, .NetFWSDKで パッチはすべて当ててあります。 WindowsUpdateで適用していないパッチはないですか?
>>808 PenV650MHz、WinXP Pro-SP1、Del6Ent、.NetはVersion 1.0.3705です
別スレで797さんが書かれているように
新CPUに最適化されているかどうかの違いかと思いますが
810 :
デフォルトの名無しさん :02/09/16 01:14
VCLって最強! ?
ベンチマークスレですか? .NET環境(C#やVB.NET)とDelphi両方入れてるヤシって、どれぐらいいる?
ノ
> .NET環境(C#やVB.NET)とDelphi両方入れてるヤシって、どれぐらいいる? かなりたくさんいると思われ
両方入れてるマシンはかなりたくさんあると思われ
俺の目の前のマチンもそうだと思われ .ΛΛ. ___ ミ;゚Д゚ミ .||::::::::||レッ ミ つ___||_____|| ツ | ̄ ̄|__ミ――――― `ー┬‐'' ┴
816 :
デフォルトの名無しさん :02/09/16 05:11
>>815 .NET厨の最強の味方登場!
これからも.NET>>>>>Delphiを証明するためにがんばってください
・・・・・・ こんなのばっか・・・ カムバック...名無し#さん .ΛΛ. ___ ミ;゚Д゚ミ .||::::::::||レッ ミ つ___||_____|| ツ | ̄ ̄|__ミ――――― `ー┬‐'' ┴
>>817 >名無し#さん
お前、「名無しさん♯」さん(名無し潜伏中)ですよ。
|-`)
820 :
デフォルトの名無しさん :02/09/22 14:45
>>298 それってこれと同じじゃないの?
type TPai = Extended;
function getpi: TPai;
function Hypot(x,y:TPai):TPai;
var w:TPai;
begin
x:=x*x+y*y;
Result:=Sqrt(x);
Result:=Result + (x-Result*Result)/Result/2; //精度を少しだけあげる
end;
var x,y ,x1,x2,y1,y2,g,r,len:TPai; i:integer;
begin
x1:=0; y1:=1; x2:=1; y2:=0; //直角2等辺3角形
g:=2;
for i:=0 to 30 do begin
x := (x1 + x2) / 2; y := (y1 + y2) / 2; r :=hypot(x,y);
x1:= x/r; y1:= y/r; len:=Hypot(x2-x1,y2-y1);
g:=g*2;
writeln(i,Format('%22.18f',[g*len]));
end;
Result:=g*len;
end;
var ct: Cardinal;
begin
ct := GetTickCount;
Write(Format('%22.18f',[getPi]));
Writeln(Format('%22.18f',[System.Pi]));
Writeln(' time=', GetTickCount-ct, 'ms');
Readln;
end.
>>798 の間違いです。
たぶん角度を2分割しながら計算してるように思うのだけど
822 :
デフォルトの名無しさん :02/09/28 13:33
外の比較的マイナーな文学作品を翻訳出版する 小さな出版社がある。そして文学ファンはこういった出版社を 潰さないため、今後も翻訳を続けてもらうために 1人で同じ本を2・3冊買うことが良くある。 我々もこういう時だからこそDelphi7を買って ボーランドを支えるべきなんじゃないだろうか。 Delphi7の売り上げはDelphi8以降の開発資金となるし、 ボーランドジャパンの今後に大きな影響をもたらすだろう。 Delphi7の出来のみを云々するのは あまりにも近視眼的ではないだろうか?
Delphi7.NETはプレビュー版だもんね。 .NETは開発は終わったがユーザの要求を見るって言ってたもんね。 .NET1.0は無視した方が良さそうだし。
☆★☆★☆ アンチに朗報! ☆★☆★☆ VS.NET 7.0と.NET 1.1は連携できません! .NET 1.1を導入すると、VS.NET 2003を買わされる羽目になります!
>>825 買わされるっていっても、MSDN会員なら無料、VS.NET登録ユーザなら29ドル程度だよ。
Delphi7 Personalよりはるかに安いんだけど。
>>825 キャッシュバックキャンペーンの関係もあって
ほとんどのVS.NETユーザーはMSDNに入ってるから「関係ないよ」
>>826 おんなじ間違い書くなよ。Personalは無料。
7JPerの無料番あるの?
>>827 あのCDの山を入れ直して、さらにコードも修正して、さらに互換問題で悩んで、苦労なこった。
>>830 別になんの問題も起きていませんが、なにか?
CD?
833 :
デフォルトの名無しさん :02/10/04 04:53
いや、すごいよ.NET。googleで.NETで検索したら、ヒット件数 2億以上。ちなみにDelphiは345万、C#は131万だった。
C# 1,180,000 C++ 5,830,000 Delphi 2,760,000 Java 23,100,000 COBOL 627,000 VB.NET 519,000 VB "Visual Basic" 514,000 VB "Visual Basic" -VB.NET 473,000 ".NET Framework" 411,000
C# 1,320,000 C++ 6,480,000 Delphi 3,260,000 Java 26,300,000 COBOL 692,000 VB.NET 585,000 VB "Visual Basic" 563,000 VB "Visual Basic" -VB.NET 473,000 ".NET Framework" 411,000
VB はすでに VB.NET に追い越されたのか! VB は Delphi の何倍ものユーザがいるのに、WEB での情報が少ないのは 情報交換する価値がないか、HTML が書けないか(藁
>> VB は Delphi の何倍ものユーザがいるのに、WEB での情報が少ないのは VB使いは、ほんとうはVBが嫌いなんだよ。仕事なんでしかたなく
>>838 仕事で仕方ない人を差し引いてもDelphiユーザーより多いと思われ
VB使いの「仕事」は著作権が何も残らないスタイルの仕事=「労働」の事 労働の成果を勝手にWebで情報公開やったらこれは大変な事になるわけ
>> 仕事で仕方ない人を差し引いてもDelphiユーザーより多いと思われ 同意。でも大部分は公開するほどの情報を持ってない、ってことだね。
というか VBのヘルプは一つ一つ 例題もあって その範囲で済んでしまう だからその範囲で一生終ってしまう人も多いんだけど Delphiは VCLソース読めという雰囲気だしね
>>842 Delphi だってヘルプですむようなレベルなら、わざわざWEBで公開する
必要なし。ヘルプの例題が多いから、っていうレベルのことじゃないでしょう。
初心者入門ページが多い少ない、ってことを話題にしてるんじゃないし。
>>だからその範囲で一生終ってしまう人も多いんだけど
こういうのを
「大部分は公開するほどの情報を持ってない、ってことだね。」
っていうんじゃ
>>労働の成果を勝手にWebで情報公開やったらこれは大変な事になるわけ テクニックや Tips みたいなものは、技術面だけを取り出せば、 具体的な内容とは無関係にできるのでは
845 :
Delフサギコ ◆A6VzDeLphI :02/10/11 00:26
.∧∧ Del相談室で書いたんだけど、スレ違いだったので ,.、ミ,,゚Д゚彡 /i こっちを再利用で移行します。 ;'`;、. :,.:∪`゙:゙:`''':,'.´ -‐i '、;:.: .、.:',.: .:: _;.;. :.‐'゙゙~  ̄ `` U U C#が早いようなのですが、どうしてでしょう... この程度のコードでどこに最適化の余地が... もしかして、Delは本当にDoubleは苦手? procedure TForm1.Button1Click(Sender: TObject); var i: Integer; d: Double; begin for i := Low(integer) div 5 to High(integer) div 5 do begin d := d + i; end; Button1.Caption := FloatToStr(d); end; private void button1_Click(object sender, System.EventArgs e) { int i = 0; double d = 0; for (i = Int32.MinValue/5; i <= Int32.MaxValue/5; i++) { d = d + i; } button1.Text = d.ToString(); }
C# mov esi,0E6666667h nop jmp 00000034 *1 mov dword ptr [ebp-1Ch],esi (*2) fild dword ptr [ebp-1Ch] fadd qword ptr [ebp-14h] fstp qword ptr [ebp-14h] inc esi cmp esi,19999999h (*1) jle 00000027 *2 逆アセンブル。
フサギコのC#賞賛キタ━━━━━━(゚∀゚)━━━━━━ !!!!!
Delphi mov eax, $e6666667 mov [esp+$08],eax (*1) fild dword ptr [esp+$08] fadd qword ptr [esp] fstp qword ptr [esp] wait inc eax cmp eax,$1999999a jnz -$17 *1
とりあえず逆アセンブルリストを貼ってみた。 名前をC#フサギコにするならこの先を教えてあげよう
.∧,,∧ 煽りは抜きでオネガヒ ,.、ミ゚Д゚,,彡 /i ;'`;、. :,.:∪`゙:゙:`''':,'.´ -‐i '、;:.: .、.:',.: .:: _;.;. :.‐'゙゙~  ̄ `` U U どこも賞賛はしてないし。 単純に不思議なの。 微妙にC#はタイマーを止めるみたいですが プロセスの優先度でも違うのでしょうか。 もしかして、.NETフレームワークをインスコすると .NET以外コードを故意に遅くしるってことは ねいですよね。まさかね。
846=848=849ですけど、いくらアセンブラ読めないといっても、 読む努力ぐらいしてもいいと思うけどなあ。 アセンブラの知識が必要な話題を自分で持ち出しといて コードに反応せず煽りに反応ですか。少しは反省しなさいよ。 見ればわかるけど、単純に、Delphiの方がループ中のwait命令がひとつ多い。 理由はわからないけど、FPUの計算を確実に待つ堅牢なコード。 一方C#は、(恐らくCPU別に )waitが不要な事を見切ってJITしている。
>>850 浮動小数点演算モードの話は見つけたかい?
.∧,,∧ なんで反省しなきゃいかんのだ。 ,.、ミ#゚Д゚彡 /i 頃すぞ(゚Д゚)ゴルァ ;'`;、. :,.:∪`゙:゙:`''':,'.´ -‐i '、;:.: .、.:',.: .:: _;.;. :.‐'゙゙~  ̄ `` U U 今、女とIMちうで急がしんだよ.. 必要なら アトで汗でもなんでも読む努力するさ。
.∧,,∧ 俺があおっちゃったよ。 ,.、ミ。_。彡 /i ごめんなさい。 ;'`;、. :,.:∪`゙:゙:`''':,'.´ -‐i '、;:.: .、.:',.: .:: _;.;. :.‐'゙゙~  ̄ `` U U というか、ありがトン。 すごく詳細でわかりやすいでつ。 堅牢コードと、そじゃないのと、 ちこっと調べてみるです。
>>853 フサさん...
女関係が落ち着くまで 2ch やめたら?
ナンデヤネン ∧,,∧,..,、、.,、,、、..,_ /i ミ゚Д゚;,彡.:、:, :,.: ::`゙:.:゙:`''':,'.´ -‐i ⊂'、;: ...:⊂ ,:. :.、.:',.: .:: _;;;..; つ ̄ ̄
つまり、DelはDouble計算は 最適化度合いが、苦手って言うことなんでしょうか?  ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ∧∧,..,、、.,、,、、..,_ /i ミ゚Д゚彡、:、.:、:, :,.: ::`゙:.:゙:`''':,'.´ -‐i '、;: ...: ,:. :.、.:',.: .:: _;.;;..; :..‐'゙  ̄  ̄ `"∪∪''`゙ ∪∪´´ ソレハソレデ シャーナイ ノカ... ところで、いったいどうやって 逆汗コードとか得るんで残暑・・・ 謎っすが。とりあえず明日具具るか...
Delの場合、バイナリをコンパイルしたのとは別のマシンで実行する ことが多いので、CPUの種類にあわせたギリギリの最適化は困難と いうことでは? (Delに限った話じゃないけど) この辺はJIT使う.NETの方が有利ですね。
>>857 浮動小数点演算モードが、Delphi は Extended、C# は Double。
基本がわかってないと何使っても悲しいね
マシン別の最適化云々に関係なくDelは最適化が下手糞。 演算モードがヘン。 ユーザーが糞。
/⌒\? γ彡・ω)ミ /Doubleで計算してても |ミ,, ゚Д゚彡 < 常にExtendedになるでしょうか? | つ_|| ̄ ̄ ̄ | \ でも、桁を余分に計算してるほど劇的には遅くないんすよ 〜ミ,,, ,,|\||Letsノ-ト| divの数を5→2変えてうちのマシンでDelが1分C#が40秒とか '\||.======.| そんな程度の差でした...  ̄ ̄ ̄ 俺のD6では、設定が多分デフォルトで [プロジェクトオプション][コンパイラ] コード生成 [V] 最適化 [ ] スタックフレームの生成 [ ] Pentium FDIV対応 構造体データの配置[8]▼ こんなんなっているようですが これが影響してるかも...
つまり過去ログなんて読んでられないと?
>>864 1.5倍も時間がかかるのは劇的に遅いといってもいいと思う。
内部的にextendedで計算されるってことは、doubleを使ってもメモリ節約以外の意味は
あんまりないのかな。
/⌒\ γ彡・ω)ミ /検索したけど |ミ,, ゚Д゚彡 < ログにある? | つ_|| ̄ ̄ ̄ | \ごめん、調べきれてません 〜ミ,,, ,,|\||Letsノ-ト| '\||.======.|  ̄ ̄ ̄
何れにせよC#の方が速いのは嬉しいことだ、 ところで、いまだにネイティブWin開発環境なDelと .NETに最適化されているC#を比較するのって、なんか意味ってあるの? むしろ、VB.NETとC#を比較して速度差があるとか無いとかって比較 じゃないとって気がするけど・・・・・・・・。 こんなベンチは Delphi.NETでも出てきたらやったらいいと思うよ、 まぁ、当然C#の快勝だろうしDELPHI.NETなんて作れないだろうけど。(プ
waitの有無って、最適化が賢いとか賢く無いとかそういう問題じゃない気もするが。
>>858 の言う通りで、どんなCPUでも正確に実行できるように入れているのと思う。
.NETの場合はその都度コンパイルするのでその時のCPU以外考えなくていいし。
ちなみにこんな↓風にしてもうちのマシンじゃ少ししか速くならなかったけど、試してみて。
(アセンブラで浮動小数点命令なんて滅多に使わないからバグってたらごめん)
function b: double;
var w: longint;
asm
mov w, 0
fild dword ptr w
mov eax, $e6666667
@1:
mov w,eax
fadd qword ptr w
inc eax
cmp eax,$1999999a
jnz @1
end;
(.NET大ブームスレでSet8087CWの事を書いたのは自分だが)
Set8087CWで演算精度を落としても、言うほどは差が無かった気がする。
>>869 確かに速度的には1秒速いだけだったし、何より答えが違ってた。
>>なんか意味ってあるの?
無い。
(仮に選択肢が.NETとDelphiだけとして)Extendedの精度が欲しい時はDelphiを使うしかないし、
.NETには、doubleの計算が少しばかり速いなんて事よりも、他にメリットいっぱいあるでしょ。
単純に最適化の話で言えば、C#のJIT後のコードは、nopが残っていたり、
Int32.MinValue/5 < Int32.MaxValue/5 であることを見て無かったりと、Delphiに比べても意外に甘い気がする。
ループ中に無いので影響が出て無いけど、ややこしいアルゴリズムなら逆転しそう。(あくまで予想)
…つーか、ネイティブ対.NETの速度対決なら、ネイティブサイドは最適化の甘いDelphiなんか使わずに
Intelの最適化C++コンパイラ持ち出して来ればいいだろーに。
>>870 FPUレジスタのままで計算するから、一旦メモリ上のdouble変数に落とさないので、精度が少しだけいい筈。
それとも、致命的に違ってた?(汗
普通こう書く fldQWORD PTR __real@8@00000000000000000000 moveax, -429496729; e6666667H movDWORD PTR _i$[esp+4], eax $L525: fiaddDWORD PTR _i$[esp+4] inceax cmpeax, 429496729; 19999999H movDWORD PTR _i$[esp+4], eax jleSHORT $L525 popecx ret0
はい、凡ミスです。ごめん。 fadd qword ptr w →fiadd w
>>868 > .NETに最適化されているC#を比較するのって、なんか意味ってあるの?
今この議論を続けてるのは、局所的な優劣をネタに煽りたいうんこと、
知的好奇心を満たしたい人だけ。
もちろんおれは後者。
ほんとだってば。
>Int32.MinValue/5 < Int32.MaxValue/5 であることを見て無かったりと、 >Delphiに比べても意外に甘い気がする。 ループを0方向に変える最適化はC++だってやらないよ。 大して効果がないのにiの増分を-1,1に固定されちゃ割に合わない。
ところで、正しい結果って0.0ですよね?(-x から x まで全部足すのだから) なんか、double精度の時、C#/Delphi両方とも変な値になるような。 Delphiで型をExtendedにした時か、アセンブラの時だけちゃんと0.0になる。 途中でdoubleの有効桁数を超えている?
>(-x から x まで全部足すのだから) 確認してみなよ
64bit整数型を使って、Int32.MinValue/5 .. 0を全部足したところ、 -92233720325598085 (17桁) doubleの精度は15〜16桁なので、桁が足りない→結果が狂う。 Extendedは19〜20桁いけるのでOK。 誰だよ、このお題持ってきた香具師。
>>875 いや、そうじゃなくて、初期値がループ継続条件を満たしているので、
初回の継続条件チェックを省けるという話。増分は関係無い。
計算処理で優劣を競いたいなら、古来からベンチマークとして活用される 円周率を求める処理等で計測した方が理想的だとおもうけど、 既にやってる板はありますか?
.∧∧ なんかいろいろおかしい。 ,.、ミ,,゚Д゚彡 /i ;'`;、. :,.:∪`゙:゙:`''':,'.´ -‐i '、;:.: .、.:',.: .:: _;.;. :.‐'゙゙~  ̄ `` U U やっぱサンプルがダメなのかなと思ってしらべてたら Button2のコードが最適化スイッチONで ループが1回しか通らず バグっているみたいなんだけど.... サンプルが変だと思ったら、いろいろ変更して試してくださいな。 procedure TForm1.Button1Click(Sender: TObject); var i, k: Integer; d: Double; begin k := 100; d := 0; for i := Low(integer) div 100 to High(integer) div 100 do begin d := d + i; end; TButton(Sender).Caption := FloatToStr(d); end; procedure TForm1.Button2Click(Sender: TObject); var i, k: Integer; d: Double; begin k := 100; d := 0; for i := Low(integer) div k to High(integer) div k do begin d := d + i; end; TButton(Sender).Caption := FloatToStr(d); end;
んなもんCPUウィンドウで追っかけりゃ一発で分かるだろ。
∧,,∧ / 誰か、、、たつけて ミ;゚Д゚彡< これだけでも、最適化チェックONで値が ミつ つ \ 変なのですが,,,,おれだけ? D6Pro,,,UP2適応です procedure TForm1.Button3Click(Sender: TObject); begin Self.Caption := IntToStr(Low(integer) div 100); end;//-21474836 procedure TForm1.Button4Click(Sender: TObject); var k: Integer; begin k := 100; Self.Caption := IntToStr(Low(integer) div k); end;//21474836 ???なぜか正数だ、、 最適化スイッチのON/OFF変更 だけではソースに変更なくてコンパリウしないのキヲツケテ >んなもんCPUウィンドウで追っかけりゃ一発で分かるだろ。 CPUウィドウで追っかけなくても変なのはわかるのですが,,,, なぜそうなるかは,,,わかる人しかわからないかしら。。。。
∧,,∧ / ・・・ ミ,,゚Д゚彡 < こ,,,こんな風に書いてあったのですが ミつ つ \ CPU窓、、 最適化適応版は k := 100; mov esi,$00000064 Self.Caption := IntToStr(Low(integer) div k); mov eax,$80000000 xor edx,edx idiv esi lea edx,[ebp-$04] call IntToStr mov edx,[ebp-$04] mov eax,ebx call TControl.SetText xor eax,eax : :
∧,,∧ / ・・・ ミ,,゚Д゚彡 < 俺には何が何やら、、、 ミつ つ \ 最適化無し版はこうなってました。 k := 100; mov [ebp-$08],$00000064 Self.Caption := IntToStr(Low(integer) div k); mov eax,$80000000 xor edx,edx cdq idiv dword ptr [ebp-$08] lea edx,[ebp-$10] call IntToStr mov edx,[ebp-$10] mov eax,[ebp-$04] call TControl.SetText xor eax,eax : :
それ、1000で割ったらどうなる?
?
∧,,∧
>>886 ミ,,゚Д゚彡 やっぱりk:=1000;Low(Integer) div kで負の値に
ミ つ旦)~~ ならないです、、
環境が壊れたる?でしょうか
>>887 コンパイラのバグでしょう
割算は 32+32 / 32 で
Low(integer) は integer型だから符号拡張しなければいけないのに
それを抜かしてしまったのでしょう
>>887 D6のバグです、D7で修正されてます.
var k,i:integer;
begin k:=100; i:=Low(i); self.caption:=IntToStr(i div k); end;
では正常に動作するのでは?
∧,,∧ / ̄ ミ*゚∀゚彡 < うまく動きました。 ミ つ且~~ \_ D6/D6UP1/D6UP2全部のバグ?っすか 〜ミ,,,,,, ,,ミ サンクスコ Low()divなんて書き方が悪かったですか。 とりあえずほっと一息。
//////////// Delphi ///////// procedure TForm1.Button1Click(Sender: TObject); type TTest=Cardinal; function Collatz(n:TTest):TTest; begin Result:=0; while n >1 do begin if (n and 1)=0 then n:=n shr 1 else n:=n+n+n+1; inc(Result); end; end; var k:Integer; var tm:DWORD; begin AllocConsole; tm:=GetTickCount; for k:=1 to 999999 do Collatz(k); writeLn(' 実行時間=',GetTickCount-tm,'ms'); end; //////////// C# ///////// static int Collatz(int n) {int c=0; while(n>1){ if ( (n&1)==0 ) n>>=1; else n=n+n+n+1;c++;} return c; } static void Main(string[] args) { DateTime stim = DateTime.Now; for(int i=0;i<999999;i++) Collatz(i); System.Console.WriteLine("{0}",(DateTime.Now.Ticks-stim.Ticks)/10000.0); System.Console.ReadLine(); }
たまに比べてみるけど、普通に書いたコードはC#の方が多少速いですね 今迄、C#よりDelphiがはっきり速かったコードは procedure TForm1.Button2Click(Sender: TObject); function func(a:Integer):Integer; var i:integer; begin Result:=0; if a<1 then exit; Result:=1; if a<2 then exit; for i:=1 to a-1 do Result:=Result+func(a-i)+func(i); end; var StartTime:int64; begin StartTime:=GetTickCount; func(19); Memo1.Lines.Add(format('%10.2fsec',[(GetTickCount-StartTime)/1000]) ); end; //////////////////////////// private int func(int a) { if (a<1)return 0; if (a<2)return 1; int r=1; for(int i=1;i<a;i++)r += func(a-i)+func(i); return r; } private void button2_Click(object sender, System.EventArgs e) { DateTime stim = DateTime.Now; func(19); textBox1.AppendText( "\x0d\x0a"+((DateTime.Now.Ticks-stim.Ticks)/10000000.0).ToString("f") ); }
傾向として、C#は、関数内部の処理はJITで動的に最適化される分
ネイティブを上回る事も多々ありますが、
マネージド故かどうかは知りませんが関数の出入り口の処理が弱い気がしてます。
>>892 のコードも、Delphiはebpすらローカル変数に使っているのに、
C#は真面目にスタックフレームを作っていました。
つまりC#は、ひとつの関数内でカタがつくような処理の方が得意と言っていいと思います。
Delphiは、最適化そのものは緩めですが、レジスタ割り当てが上手なのと、
呼びだし規約がfastcallなのでローカル変数が少なければスタックフレームを作らずに済むので、
関数を呼びまくる方が得意でしょうね。
>> つまりC#は、ひとつの関数内でカタがつくような処理の方が得意と言っていいと そのとおりだよね。小さなループでのベンチは JIT の不利を帳消しにして 最適化の有利だけが目立つ結果になる
C# と VB.NET だと関数呼び出しのオーバーヘッドが大きくて VB.NET が 大幅に遅いと話題になってたね。
つまり構造化をしてはいけないのか
897 :
デフォルトの名無しさん :02/10/14 10:58
仲良くしてくれと歩み寄ったのはDel厨
>>897 と、突然、話の筋に関係ないその書き込みは?電波?(汗
.NET大ブーム9 GUIの非クロスがバレバレ クラスライブラリから直接 CreateWindowEx 呼んじゃダメだろ。 GUI 関連は、CLI にも CLR にも含まれて無いからISO的にはOK? 途方に暮れたMonoチームは Form 出すために Wine を呼び出すことを考えているそうで本末転倒。 ここはひどいクロスプラットフォームですね。どうするMS。 複数言語単一ランタイム、実行時ベリファイ、実行時セキュリティなんて、 動けば良い&VBマンセーのブビ厨には要らねーよ。.NETは壮大なネタでした。
901 :
デフォルトの名無しさん :02/10/16 22:17
902 :
Delフサギコ ◆A6VzDeLphI :02/10/17 11:04
,,,,,,,,,,,,,,,,∧,,∧ / 〜′,,,,,,,,,,ミ,,゚Д゚彡 < どきんぐとかどうですか? UU"""" U U \ VS.NET使っていて、ドッキングUIがなかなか心地良い 感じではあるんだけど C#アプリではドッキングFormやドッキングツールバーは 簡単に作れるのでしょうか? ライブラリレベルでサポートされてるでしょうか? あと、日本で、.NETコンポーネント配布サイトは どこか作られてますか? DelphianWorldみたいなトコ。
> ひどいクロスプラットフォームですね。どうするMS ひどくありません、だってWin9xでもMeでも2000でもXPでも動くし、将来も 動かせるよ!って意味のクロスなんですから。 Linux?なんですか?BSD?ハァ?世の中にはWindows以外のOSは存在していませんよ! しかし、Macでの.NETってどーなってんだろうね、Monoを使うのかな? そーいや、可能ならKylixをMacでも動かす!とかって何処かで聞いたような 気がするけど、Kylix.NETでって事かな・・・。
>KylixをMacでも動かす CLXのベースとなっているQtがmacにもあるみたいですので、 コンパイラだけ作り直せばおーけーみたいなのをどこかで読んだ気が。 だからネイティブのままじゃ無いですか?
>>904 書き込んだ本人です。どこに書いたか忘れたけど。
作り直すのがたいへんなのは、IDE の方だと思う。
現在は WINE の上で IDE が動いてるので。
コンパイラ自体は C++ で実装されてて、MacOS X には gcc もあるので、
バイナリフォーマットの変更だけで済むはず。
え? Delphiのコンパイラは Delphiでかかれているんじゃなかったの?
それこそガリレオIDEができたら、IDEはmac用.NET(あるの?)上で動かして、 コンパイラはILかmac専用バイナリのどちらでも吐けるように ・・・絵に描いた餅ですね・・・ IDEをCLXで書き直して、KylixをWineから解き放つのが一番かな・・・
>>906 コンパイラ本体はアセンブラ。で、コマンド部分(dcc32.exe)はBorland C++。
IDE(delphi32.exe)がDelphi自身。
・・・だったと思いますよ。
確か、dcc32.exeに"Borland C++"って文字列が埋め込まれてますもの。
909 :
デフォルトの名無しさん :02/10/17 22:46
次スレの季節
>> IDE(delphi32.exe)がDelphi自身。 最初のIDEは、どうやってつくたんだろう? もちろん、IDEなしでつくったんだよね。
Turbo PascalかBorland C++でしょ。
地味にdcc.exeだけで作ったんじゃないの。
∧,,∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ミ,, ゚Д゚彡 < 日ソフの記事だったかな。
〃つ_|| ̄ ̄ ̄ | \_____________
〜ミ,,, ,,|\||Letsノ-ト|
'\||.======.|
 ̄ ̄ ̄
ちょっと話ちがうんだけど
TurboPascalコンパイラが出てきたときの話を
読んだんだけど、Web検索してもどうしても出てこない。
インタビューに必要なのはパッションだ!
http://itpro.nikkeibp.co.jp/free/ITPro/OPINION/20020604/1/ これの本物の記事のほうだったか
ヘイルスか、ヘルスかのバーグタンが
しこしこPascalコンパイラを作って、早いのできたから
BOrぁんdに売り込みに行って採用されたとか
なんとか書いていた気が汁です。
>>910 WideStudioとか#デベロップとかエクリプス
追いかけてみるとよいのでは?
コンパイラ本体をアセンブラで書くかなあ?
Turbo Pascalってのは、コンパイラ本体を汗で書いて全てオンメモリにして爆速だったから、流行ったんだぞい。 この製品で某が大きくなったんでしょ。 で、Del3以前はコマンドコンパイルするとTurbo Pascalって出るぞ。
>コンパイラ本体を汗で書いて この部分は知りませんでした。 コンパイラを書く技術は持ち合わせてないけど、もし自分でやるとすれば 最初の目標はセルフコンパイルだと思うので「アセンブラでは書かねーだろ」と 思い込んでました。 確かにフルアセンブラでないとCP/Mで動かなさそう。
∧,,∧ /
>>891-892  ̄ ̄ ̄ ̄ ̄ ̄ ̄
ミ,, ゚Д゚彡 < GetTickCountより高精度だとか
〃つ_|| ̄ ̄ ̄ | \聞いた事があります。
〜ミ,,, ,,|\||Letsノ-ト|  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
'\||.======.|
 ̄ ̄ ̄
関数実行時間測定ベンチマークのやりかた。
C#でどうやるかは知らない。教えて。
//uses Windows; が必要
var Frequency, CountStart, CountEnd: Int64;
Freq: Single; Time: Double;
begin
QueryPerformanceFrequency(Frequency);
Freq := LARGE_INTEGER(Frequency).LowPart;
QueryPerformanceCounter(CountStart);
//計測したい処理内容をここに記述
Sleep(1000);
QueryPerformanceCounter(CountEnd);
Time := (LARGE_INTEGER(CountEnd).LowPart
- LARGE_INTEGER(CountStart).LowPart) / Freq;
Writeln(Time); Readln;
//1.00000??????とか出力される。
//Memo1.Lines.Add( FloatToStr(Time) );
//0.999838526963623 というような値が取得可 単位は秒
end;
せっかくのInt64をLARGE_INTEGERにキャストするなよ。そのまま使え。 >C#でどうやるかは知らない。教えて。 ランタイム プロファイリングで健作しろ。
コピペ厨だからよくわかない。 .ΛΛ. ___ ミ;゚Д゚ミ .||::::::::|| ミ つ___||_____|| | ̄ ̄|__ミ――――― `ー┬‐'' ┴
System.Diagnostics
こうかニャ Λ,,Λ. ___ ミ ,,彡 ||::::::::||レッ .ミ つ___||_____|| ツ | ̄ ̄|__ミ――――― `ー┬‐'' ┴ procedure TForm1.Button3Click(Sender: TObject); var Frequency, CountStart, CountEnd: Int64; Time: Double; begin QueryPerformanceFrequency(Frequency); QueryPerformanceCounter(CountStart); //計測したい処理内容をここに記述 Sleep(1000); QueryPerformanceCounter(CountEnd); Time := (CountEnd - CountStart) / Frequency; Memo1.Lines.Add( FloatToStr(Time) ); //0.99621125031254 が出力され end;
922 :
デフォルトの名無しさん :02/10/23 10:57
だって面白くないでしょ。 XBOXのゲームが作れるとか 9千800円のPDAのアプリが作れるとか 無料で使えるWebサービス鯖があるとか 何かメリットないと 触る気になれない
>>922 Del.NET インストールしてみた、今の段階だと
.NETのクロスコンパイル?程度しか出来んのだろうが、
そもそもコンパイル方法がわからん!
そんな俺に、誰かコンパイル方法等を懇切丁寧に教えて
.NETもいいじゃないか!と言わせてくれ。
>>924 失望するからしなくてよろしい、今のまま.NETの夢をみておやすみ。
926 :
デフォルトの名無しさん :02/10/27 23:54
927 :
デフォルトの名無しさん :02/10/28 10:05
Delphi・・・Win32、Win64(D8)、DOS(D1)、Win16(D1)、Linux(同封Kylix)、.NET(D8) BCB7・・・Win32/64、DOS、WinCE、Linux(同封Kylix)、.NET C#・・・.NET 勝ち組み・・・Java、Delphi、VC++ 負け組み・・・VB、VB.NET、C#、COBOL
判った判った 負け組みでいいから俺のMSDNの有効期限内にEverettの配布が始まる事を一緒に祈ってくれ。
無理だと思う。でも可哀想だから祈ってあげるよ。なもなも。
>>927 同封って・・・。封筒で来たのか?
もしかして、CD-R媒体で割物?
ゴメン。 気に入ったネタみたいだから、少しでも料理してあげようと努力してみたけど、ダメだったよ。 そのネタ腐ってるみたい。 次はEverett ででも仕入れてきて。
∧,,∧ /やっぱ、標準関数とか ミ,,゚Д゚彡 < 標準クラス増築は 〃つ_|| ̄ ̄ ̄ | \ ヘイルスバーグ級のセンスがいるの? 〜ミ,,, ,,|\||Letsノ-ト| '\||.======.| FileSetDateとか関数宣言みると  ̄ ̄ ̄ センスのなさが浮き彫りすぎ。 #なぜディレクトリ版FileSetDateがない? #なぜ引数がTDateTimeじゃない? 話違うけど、 AnsiSameText/AnsiSameStrに みられるように、大小文字区別するしないを それを意味しない関数名で区別するのもいい加減、止めレと… 現状のVCLをタンに.NET化したら、あくまでも 過去資産移行のためだけのBorland.VCL名前空間に 成り下がる気が汁てなりません。 理想をいえば、.NETのライブラリ豊富さと同等に ネイティブExeが作れるツールにならんかと思う。 そうなれば、マスコミに言うように ガリレオがキラーVS.NETとなれると思うが D4-D7のVerUpペースから推測すると、無理ぽ、っすよね。 VCL.NETとVCLと差は、開くばっかりになるのかしら。 VCL/VCL.NET/CLXの進化速度、どうせ遅いんだから VCL.orgとか外部に作ってVCL.某と区別して ライブラリ進化を早める方法は取れないものなのか,,,
という事で、 #なぜディレクトリ版FileSetDateがない? サポートしている全てのOSで 安全に可能な方法が無い為だと思います。 #なぜ引数がTDateTimeじゃない? これも、TdateTimeで渡すと、その精度で設定出来ると勘違いする人も多いでしょう OS依存の処理ですから仕方ないと思います
!! ∧,,∧ そなんか>>OS依存 Σミ゚Д゚,,彡 ミ つ且~~ ミ,,__ ヾ ⊂二二二UU二二⊃ 鋭いレス、サンクスコ。 また、俺は、FDelphiと株って車輪の際発明したですか....鬱
>>935 終わった処理系の終わりっぷりを
いつまでもうだうだ言うのはやめろ。
ほんとだね。 C# も VB.NET も来年まで凍結状態か。 とりあえず今やってる奴は終ったも同じだよね。 まあ3年先には多少元気になるかもね。
VS.NETにはコードテンプレートが無いのが痛い・・・ でもこんな半端な機能は実装されることはないんだろうな。 DELPHI32.DCI [code_TraverseDir | ディレクトリを巡回する] procedure TraverseDir(APath: String); var sr: TSearchRec; begin try // todo:ここにディレクトリに入った時の処理を記述 APath := IncludeTrailingPathDelimiter(APath); Win32Check(FindFirst(APath+'*.*', faAnyFile, sr) = 0); try repeat if (sr.Name = '.') or (sr.Name = '..') then continue; if sr.Attr and faDirectory <> 0 then begin // todo:ここにサブディレクトリを巡回する直前の処理を記述 TraverseDir(APath + sr.Name); end else begin // todo:ここにファイルが見つかった時の処理を記述 end; until FindNext(sr) <> 0; finally FindClose(sr); end; finally // todo:ここにディレクトリから出る時の処理を記述 end; end;
,,,,,,,,,,,,,,,∧,,∧ /[の処理を記述 ] 〜′,,,,,,,,,,ミ,,゚Д゚彡< するときにイベントを呼ぶ UU"""" U ⊃ \ クラスを用意すると コード隠蔽できて綺麗かと。 コードテンプレが無いのはいやですが その処理を毎回挿入するのは、コピペとかわんらいのでは?
>>942 クラス&メソッドoverride版とコンポーネント&イベントハンドラ版もってるけど
いろいろな手間を考えるとコード隠蔽できて綺麗って程ではないよ。
この程度のコードは毎回コピペして手入れた方が楽。
イディオムいちいちラップしてたらきりないよ。
944 :
デフォルトの名無しさん :02/11/02 20:13
Delphi->C#移行ガイドみたいなサイトないですか?
このスレを逆に読めば?
モニタ逆さにして読んだけど良く分かりませんでした・゚・(ノД`)・゚・。
_______________
∧.,,∧ /
ミ.,,゚Д゚彡< こんなん、どやどや
ミ つ目(ミ . \
〜ミ,,O,,,,,,つ  ̄ ̄ ̄ ̄ ̄ ̄
Borland Delphi,C++Builder
http://www2d.biglobe.ne.jp/~katsu_k/borland.html C-C++プログラマのためのPascal講座
http://www.ne.jp/asahi/nagoya/ahomaro/builder/cpb-003.html c2delphi
http://www.infoeddy.ne.jp/~tensyo/c2delphi.txt Delphi&C++Builder&VisualBasic徹底比較
http://member.nifty.ne.jp/h_kova/procomp.htm Object Pascal, C-C++, VBのデータ型
http://homepage1.nifty.com/susho/windoze/datatype.html >>943 美しくないようでも初心者には使いやすいのかも。
.NETの隠蔽仕方は美しいと感じられますか?
あまりよくしらないけど、
DirectoryInfoとDirectory
FileInfoとFileクラスを分けているのは
なかなか賢いような気がしますよ。
TRegistoryIniFileとTRegIniFileのような
クラス構成の美しさを感じます。
さすが、ヘイルスバーグって気が汁ですが。
ふーん、面白く無さそうだね。
C# 以外は糞
じゃあ、 inp 命令を素通しするだけのサービス書いてみて
952 :
デフォルトの名無しさん :02/11/24 16:22
953 :
デフォルトの名無しさん :02/11/24 16:46
954 :
デフォルトの名無しさん :02/11/24 16:54
C#君はjavaさんの友達です。 C#君はDelphi君と一緒にして欲しくないそうです。
ママ、僕の本当のパパは一体誰なの?
956 :
デフォルトの名無しさん :02/11/24 17:00
>>956 使っていいAPIも限定されていたような・・・
958 :
デフォルトの名無しさん :02/11/24 17:16
>>955 javaの隠し子、C/C++は見かけ上育ての親だが、実質ジュウシマツの役割。
960 :
デフォルトの名無しさん :02/11/24 17:23
961 :
デフォルトの名無しさん :02/11/24 17:42
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\ Λ_Λ | 君さぁ こんなスレッド立てるから | ( ´∀`)< 厨房って言われちゃうんだよ | ( ΛΛ つ >―――――――――――――――――――‐< ( ゚Д゚) < おまえのことを必要としてる奴なんて | /つつ | いないんだからさっさと回線切って首吊れ | \____________________/ (-_-) ハヤクシンデネ… (-_-) ハヤクシンデネ… (-_-) ハヤクシンデネ… (∩∩) (∩∩) (∩∩) (-_-) ハヤクシンデネ… (-_-) ハヤクシンデネ… (-_-) ハヤクシンデネ… (∩∩) (∩∩) (∩∩) (-_-) ハヤクシンデネ… (-_-) ハヤクシンデネ… (-_-) ハヤクシンデネ… (∩∩) (∩∩) (∩∩)
966 :
デフォルトの名無しさん :03/01/05 05:52
>>935 JCLがあったけど…。 今はどうなってるのかな。
967 :
デフォルトの名無しさん :03/01/05 09:18
JEDI繋がんないな 終了?
埋め
埋め
埋め
埋め
埋め
埋め
埋め
旨めー
埋め
埋め
埋め
IP記録実験
http://qb.2ch.net/test/read.cgi/accuse/1042013605/ 1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。
27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?
38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27 鋭いです。
73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。
埋め
埋め
埋め
埋め
埋め
埋め
埋め
埋め
梅
荒らし終わったぽ埋め
埋め
埋め
埋め
埋め
埋め
埋め
埋め
埋め
埋め
埋め
埋め
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。