スレを勃てるまでもな ..
867:デフォルトの名無しさん
07/11/23 23:08:38
>>859
それは、
不必要にデストラクタをvirtualにする
という愚をやらかしているだけだろ。
>>863
それはどこの何というコンパイラ?
例外をthrowする、throwされたものをcatchする、それにはコストは要するが、
例外中立なコードにはオーバーヘッドかからないと思うが。
868:デフォルトの名無しさん
07/11/23 23:10:33
catchしなくても例外が通り抜けるときにデストラクタを呼ばないといけない
さっきg++で試してみた
virtualかどうかは関係ない
869:デフォルトの名無しさん
07/11/23 23:10:35
デストラクタから virtual を外すのは
どうしても必要な時だけにするのが無難だべ。
870:デフォルトの名無しさん
07/11/23 23:17:58
逆だろ? 仮想関数を使う必要がある時だけ付けるよな。
871:デフォルトの名無しさん
07/11/23 23:19:40
馬鹿が飛びつくつまらない話が出てきちゃった
872:デフォルトの名無しさん
07/11/23 23:22:00
あとから仮想関数が必要になった時に付け忘れても知らんべ。
873:デフォルトの名無しさん
07/11/23 23:24:00
JavaやC#みたいに継承禁止ができたら、安心してvirtualをはずせるけど。
874:デフォルトの名無しさん
07/11/23 23:24:09
使われ方によって、virtualをつける必要があったりなかったりするC++は糞言語。
875:デフォルトの名無しさん
07/11/23 23:29:11
final/sealed 欲しいよなあ。
Final ですってコメントつけて非仮想デストラクタにすることはあるけど、
コメントだけじゃ心もとないよな。
876:デフォルトの名無しさん
07/11/23 23:31:57
クラス設計時点で継承の有無はわかるだろ。
あとから必要になったら、その時点で必要な修正を行えばいいと思うが。
877:デフォルトの名無しさん
07/11/23 23:33:10
C++しか知らないと、そういう物の考え方するんだ
878:デフォルトの名無しさん
07/11/23 23:33:54
うん
879:デフォルトの名無しさん
07/11/23 23:35:06
そういう意味で言うと、後から必要になったときでも修正の必要がないように、
デストラクタは必ずvirtualで、っていうのも、あながち間違った選択ではないと思える。
880:デフォルトの名無しさん
07/11/23 23:35:29
一体誰がどう使うクラスの設計してるんだ?
881:デフォルトの名無しさん
07/11/23 23:36:14
とりあえず virtual を付けとけば、
どういう変更が必要になろうが何の心配も要らない。
virtual を付けてないと、後の変更でバグを発生させる可能性がある。
その変更を行うのが自分とは限らないわけで、
どっかのバカが変な事をするかもしれない。
そう考えると、デストラクタを非仮想にするのは、
よほど非仮想にするメリットがある場合じゃないと怖くてできない。
882:デフォルトの名無しさん
07/11/23 23:37:33
C++って、そういう本質的でないところにも気を使わせるのが、糞言語たる所以だね。
883:デフォルトの名無しさん
07/11/23 23:38:31
速度やデータサイズは本質的な問題だよ。
884:デフォルトの名無しさん
07/11/23 23:39:30
じゃ、Javaなんてとてもじゃないが使えないってわけだ。
885:デフォルトの名無しさん
07/11/23 23:39:57
そこが本質的な問題になることがあるから。
886:デフォルトの名無しさん
07/11/23 23:41:02
速度やデータサイズを気にする必要があれば
Java なんてとてもじゃないが使えないってわけだよ。
気にする必要がないなら使えばいい。
887:デフォルトの名無しさん
07/11/23 23:42:07
道具は選んで使うべきだ
888:デフォルトの名無しさん
07/11/23 23:42:50
Cで書けばいいのに(^^
889:デフォルトの名無しさん
07/11/24 00:13:35
>>868
> catchしなくても例外が通り抜けるときにデストラクタを呼ばないといけない
当たり前だろ。
正常にreturnする時にもデストラクタは呼ばれるのだから、
それは、例外のオーバーヘッドとは言わないだろう。
>>869
それなら、virtual なんて書かずとも全てがvirtual で、
nonvirtual などと書いたものだけがvirtual でなくなる、
そういう言語仕様になるだろうに。
890:デフォルトの名無しさん
07/11/24 00:15:24
>>889
色々とお話しにならない。
891:デフォルトの名無しさん
07/11/24 00:19:11
>>872
それをもってして、C++は実行時オーバーヘッドが大きな言語だと言われてもなぁ。
>>873
継承できないようにするハックはあるけど、まぁ、オススメしないわな。
もっと別の方法で、管理すべきだろうな。
>>874
使い方によって、だろ。
キャストしたポインタでdeleteするような使い方をする側が、
デストラクタがvirtualであることを確認し、そうでなければ、
継承するのではなくメンバに持つように実装すべきなんだ。
892:デフォルトの名無しさん
07/11/24 00:21:26
>>890
具体的に
893:デフォルトの名無しさん
07/11/24 00:21:33
>>891
> それをもってして、C++は実行時オーバーヘッドが大きな言語だと言われてもなぁ。
別にそんなこと言っとらんわ。
894:デフォルトの名無しさん
07/11/24 00:22:58
>>891
> 継承できないようにするハックはあるけど、まぁ、オススメしないわな。
何か特殊なクラスを継承して、結局仮想関数が必要だったような気がする。
895:デフォルトの名無しさん
07/11/24 00:25:12
C++が糞言語であることには、誰も異論はないだろう。
使っている道具を糞だと言っているだけで、
それを使う人間が糞だと言っているわけでもないのに。
C++が糞言語だと言われて顔を真っ赤にするのは、
Stroustrupだけで、いいんじゃないか。
896:デフォルトの名無しさん
07/11/24 00:26:07
>>893
話の流れを無視した独り言だったのか。
897:デフォルトの名無しさん
07/11/24 00:26:23
>>889
下記の f と h のコンパイル結果を比べてみるといい
struct S { ~S(); };
int g();
int f()
{
S s;
g();
return 0;
}
int h()
{
S s;
return 0;
}
898:デフォルトの名無しさん
07/11/24 00:28:39
そういう言語仕様になるだろうにとか言われても、
今実際にそうなってないんだから、そういう事言っても無駄だよな・・・。
899:デフォルトの名無しさん
07/11/24 00:32:50
>>894
URLリンク(article.gmane.org)
これかな。
それなりのコンパイラなら、
vtableは作られるが、使われないので、リンカによって削除されるだろう。
900:デフォルトの名無しさん
07/11/24 00:35:05
>>898
そういう言語仕様になっていない
ということは、
というのが言語仕様を決めた人達は、
基本的にvirtual で例外的にvirtualではなくする
というポリシーではなかった、ということだね。
互換性のために、そういうポリシーだという可能性もあるが。
901:デフォルトの名無しさん
07/11/24 00:36:20
>>899
あ、別に仮想関数は要らんかったか。
902:デフォルトの名無しさん
07/11/24 00:37:39
>>900
デストラクタはデフォで virtual な方がいいけど、
他の関数は virtual がデフォである場合も nonvirtual がデフォである場合も
一長一短なので何とも言えない。
903:デフォルトの名無しさん
07/11/24 00:46:09
>900
Stroustrupに聞いてみ、と言おうと思ったら、本人のページに書いてあったわ。
URLリンク(www.research.att.com)
「多くのクラスは、基底クラスとして使われるように設計されないから」だって。
基底クラスは、「基底クラス」と意識して最初から設計しろ、ってことか。
904:デフォルトの名無しさん
07/11/24 00:47:20
仮想関数が1つでもあれば自動的にデストラクタもデフォで仮想関数になってくれればいいのにね。
905:デフォルトの名無しさん
07/11/24 00:55:29
>>904
virtualなメンバ関数があるからといって、virtualなデストラクタが必要とは限らないしなぁ。
結局、どのようにdeleteするのかは、そのクラスを使う人が決めることだから。
使う人が決めることなのに、作る人が決めないといけないのは変だがね・・・。
906:デフォルトの名無しさん
07/11/24 01:18:27
>>897
何が言いたいのか理解した。
~S()の呼び出しコードがhでは1個なのに対して、fでは2個になるってことか。
たしかにコードサイズは肥大するが、正常系のルートの実行速度には影響しないだろう。
ちなみに、
struct S { ~S(); };
というのは、
struct S { ~S() throw() ; };
とすべきだろうな。
デストラクタで例外をthrowしちゃいかんよ。
実行速度のために例外を(部分的に)使わないという選択もC++では可能だぞ。
int g() ;
を
int g() throw() ;
とすれば、f()やh()内では例外のためのコードが生成されない。
907:デフォルトの名無しさん
07/11/24 01:21:06
結局、C++は遅い と言っている人は、
Cと同じことをするコードをC++で書いて遅いと言っているのではなく、
Cよりも複雑なことをするコードをC++で書いて遅いと言っているわけだ。
908:デフォルトの名無しさん
07/11/24 01:30:37
>>907
少なくとも自分はそう言ってる
で、Cよりも複雑なことをしないのは難しい
まあ、Cとしてコンパイルできるコードを書けばいいだけだけど
909:デフォルトの名無しさん
07/11/24 01:42:10
stlとか複雑な機能を簡単にするやつを使うとCで書いた方が速い
たとえばstringなどは確保したときにサイズは確保されない もし文字列の最大長が分かっていればchar[]で取っておいた方が速い
910:デフォルトの名無しさん
07/11/24 01:43:35
> int g() throw() ;
> とすれば、f()やh()内では例外のためのコードが生成されない。
そうするとg()側でコストが掛かる
g 内のコードが例外を投げないことが明確なときはコストはないけど
例外指定を書けないCのライブラリを呼んでたりするとお手上げ
例外関連のコストを避けるのは難しいね、ということでした
911:デフォルトの名無しさん
07/11/24 01:45:25
>>909
そもそもクラスである意義を忘れないで下さい。
912:デフォルトの名無しさん
07/11/24 01:46:51
実際はアセンブラもCもC++もたいして変わらないが、まれにCよりアセンブラのほうが速く、まれにC++よりCのほうが速い
まれが重なると細かい手入れが出来るアセンブラが良くなる
913:デフォルトの名無しさん
07/11/24 01:52:57
>>908
そうか・・・
>>909
STLの使い方が悪いと、そうなるね。
そのstringの例だと、
固定長の文字列のクラスを作ったらどうよ。
>>910
え? Cのライブラリは自動的に throw() として扱われるっしょ。
CのライブラリがC++の例外をthrowすることなんて、できないんだから。
914:デフォルトの名無しさん
07/11/24 02:02:27
> え? Cのライブラリは自動的に throw() として扱われるっしょ。
> CのライブラリがC++の例外をthrowすることなんて、できないんだから。
いつもコンパイラにわかるわけじゃない
915:デフォルトの名無しさん
07/11/24 02:05:26
別にC++は遅くないと思うよ。標準ライブラリやSTLも使わずに、
カリカリにチューニングして書けば。でも、標準ライブラリも
STLも使わないC++使う意味なぞない。
標準ライブラリはメモリコピーとメモリの動的確保・開放
を前提にしているから遅い。だがしかし、これはC++を使う大きな
利点であるので捨てられない。
速度と効率を求めるならCを使えばいい。
916:デフォルトの名無しさん
07/11/24 02:19:11
これをインストールしたいのですがメイクが出来ません BCC5.5.1です
URLリンク(www.vector.co.jp)
どうすればいいんでしょうか? エラー内容です
..\source\lib\remul.cpp:
エラー E2017 ..\source\lib\remul.cpp 38: メンバー名 'ctype_base::digit' が曖昧(関数 Mint::isRemUL(const unsigned long,int) const )
*** 1 errors in Compile ***
** error 1 ** deleting ..\BC5LIB\remul.obj
..\source\driver\berntbl1.cpp:
エラー E2367 D:\Programs\bcc\INCLUDE\constrea.h 41: 非 RTTI 基本クラス streambuf からは RTTI クラスを継承できない
エラー E2367 D:\Programs\bcc\INCLUDE\constrea.h 207: 非 RTTI 基本クラス ostream からは RTTI クラスを継承できない
エラー E2318 D:\Programs\bcc\INCLUDE\constrea.h 255: 'ostream' は多様性を持つクラスではない(関数 constream::isCon(ostream &) )
*** 3 errors in Compile ***
917:デフォルトの名無しさん
07/11/24 02:33:31
>>914
具体例は?
>>915
STLが遅いと言ってる人は、
実装が悪いSTLを使っているか、
コピーにコストがかかるオブジェクトを直にコンテナに格納するとかの使い方が悪いんじゃないか。
918:デフォルトの名無しさん
07/11/24 02:38:19
ヘッダファイルに
int g();
と書かれててコンパイラにわかる?
919:デフォルトの名無しさん
07/11/24 02:53:18
>>918
C++から、C++を考慮していないCのヘッダファイルを使う場合、
extern "C" {
#include "hoge.h"
}
とするのが普通だろ。
"C"なら、C++の例外をthrowしないということがわかる。
920:デフォルトの名無しさん
07/11/24 02:56:30
>>918
で、コンパイラ付属のC標準ライブラリをC++から使った場合に、
例外をthrowするものとして扱われてしまう、そういう具体例は?
具体例を挙げてもらったところで、
そんなダサいコンパイラを使うのはやめろ
なのだが・・・。
921:デフォルトの名無しさん
07/11/24 03:04:18
じゃあ、C++のヘッダファイルでCのヘッダをナイーブにインクルードしちゃってた場合は?
いいだしたらきりがないけど
922:デフォルトの名無しさん
07/11/24 03:07:44
ああそうか
インクルードパスの調整とかで回避できるか
923:デフォルトの名無しさん
07/11/24 03:08:31
>>920
はは、そんなことは言ってないよ
924:デフォルトの名無しさん
07/11/24 03:14:34
>>921
そのC++のヘッダファイルの責任だよ、Cのヘッダファイルをextern "C"の中でincludeするのは。
間違った使い方をしたときの話をしても、しかたあるまい?
925:デフォルトの名無しさん
07/11/24 03:17:27
いや、そういうことも含めてコストの話をしていたつもり
ほとんどのプログラムは完璧じゃないから
論点がずれてたね
926:デフォルトの名無しさん
07/11/24 03:27:21
>>917
いやいや。例えば、あるバッファがプログラムの中で必要だったとしよう。
myvec.assign(nlen, '\0');
func(&myvec[0], myvec.size());
というように、C++だとかけるし、スコープ外にでれば、myvecで確保した
メモリが自動解放されるので、メモリリークの心配も少ない。Cだときちんと開放
しないとメモリリークを起こす。んで、これはC++の大きな利点。
クラスを自分で実装しても、ちゃんとメモリリークしにくい実装という
のはできるけど、標準ライブラリで多くの機能が実装されているという
のがC++の利点だといっているわけで。
ただし、こういう利点を享受するためには、メモリの動的確保・開放
を受け入れなければならないって話ナ。
927:デフォルトの名無しさん
07/11/24 04:08:27
>>926
何を言いたいのか、わからないなぁ。
もしかして組込屋?
以前に電話の交換機のソースを見たが、ありゃぁ酷かった。
変数がすべてグローバルでstaticな上に、変数名がメモリの番地で、
しかも、同じ変数を時と場合によって違う用途に使いまわしていたり。
メモリの容量が足りないとか、
どれだけ長く動かし続けても決められた状態以外にはならないとか、
そういう特殊な事情があるというのは理解できるが、ありゃぁ別世界だよ。
928:デフォルトの名無しさん
07/11/24 04:14:23
>>927
別世界だが、そういう世界でなければCをワザワザ使わないって。
俺もC++スキダケドナ。使えないのよ。
929:デフォルトの名無しさん
07/11/24 04:15:30
>>927
>変数がすべてグローバルでstaticな上に、変数名がメモリの番地で、
>しかも、同じ変数を時と場合によって違う用途に使いまわしていたり。
ちなみにこの発言は、もの知らなすぎるなw
930:デフォルトの名無しさん
07/11/24 04:21:57
ちなみに、メモリ制約の大きいところでは、そもそもメモリの
動的確保・開放は使えないからな。最終的に作り上げたアプリが
最大でいくつのメモリを必要とするかを提示できないといけないから。
931:デフォルトの名無しさん
07/11/24 04:24:47
>>929
ああ、その別世界の住人ではないからな。
たまたま機会があって、ちらっとソースを見て話を聞いて、
その彼らのコーディングルールにぶったまげただけだもの。
932:デフォルトの名無しさん
07/11/24 04:27:39
まぁ927は、コンピュータの基礎から勉強しなおすのを薦める。
933:デフォルトの名無しさん
07/11/24 04:33:23
>>932
話が繋がりませんが? どういうことよ。
マイコン = マイクロ・コントローラな人達の世界の常識なんて、いらないよ。
934:デフォルトの名無しさん
07/11/24 04:34:05
日本の時代錯誤的な作り方をしている携帯電話屋か。
過労で頭がどうにかしてしまったかい?
935:デフォルトの名無しさん
07/11/24 04:42:07
>>933,>>934
時代錯誤だと思い込んでるのは、幼稚な日本の技術者だけだよ。
自分の頭で普通に考えればわかることだ。
課題「なぜ、低級言語がなくなることは考えにくいか、1000文字以内で論じなさい」
936:デフォルトの名無しさん
07/11/24 04:44:32
>>935
三流大学の講師にでもなったら?
937:デフォルトの名無しさん
07/11/24 04:46:49
プッ
938:デフォルトの名無しさん
07/11/24 04:58:26
自分で理路整然と説明できないので、
学生たちにレポート書かせて、その中から優秀なのを見つけて自分のものにする
そんな人間だな。
携帯電話のアプリケーション用プロセッサの性能とメモリ容量は、
すでにSun4あたりの昔のUNIXワークステーション並で、
リブートせずに連続動作する時間は同じくらいなのに、ソフトの作りがまるで違う。
その理由は様々考えられるだろうけど、1つ言えるのは、
設計者が過去の別次元のやり方をそのまま使っているか否かだと思うよ。
939:デフォルトの名無しさん
07/11/24 05:00:59
お前ら、スレタイも読めない馬鹿には、発言権なし!
940:デフォルトの名無しさん
07/11/24 05:05:39
>>938
君の発想では、もっとも低レベルのCPU、メモリを使用している
ものは携帯電話までだというようだけど、それって今後も
ホントウにそうなのか?
941:デフォルトの名無しさん
07/11/24 05:07:10
こういうタイプの人間は決まって自分から答えを言おうとしないんだよな。
942:デフォルトの名無しさん
07/11/24 05:38:45
>>940
スレタイも読めない馬鹿ですか?
943:デフォルトの名無しさん
07/11/24 05:40:53
>>941
言おうとしないのは、言えないからだよ。
944:デフォルトの名無しさん
07/11/24 05:47:33
>>941,943
思考停止は、成長を停めるぞ。
945:デフォルトの名無しさん
07/11/24 06:28:37
>>944
煽るだけかよ。
スレタイを見て適切な行動を取れ。
でなければ、お前が思考停止の老害だ。
946:デフォルトの名無しさん
07/11/24 07:26:39
>>916
なんか指定のコンパイラが古いね。
エラーメッセージも危険な香りがする。
あきらめて同等の他のものを探した方が早い気がするんだけど、だめかなぁ?
947:デフォルトの名無しさん
07/11/24 09:01:17
ループの中で行う処理の中に標準出力を入れたとき、
コンパイルして実行したらループの中の標準出力がでてこないときがあるのですが
どうすれば解決できるのですか?
948:デフォルトの名無しさん
07/11/24 09:07:18
>>947
ループと標準出力を結びつけないで考えるようにすればいいんじゃないかな?
949:デフォルトの名無しさん
07/11/24 09:18:33
>>947
現象を再現できる最小のコードを書いてうpしてみそ。
950:デフォルトの名無しさん
07/11/24 09:20:25
組込み屋だが・・
>>927が例に出してるような環境は組込みでも珍しいと思う。
10年以上やってるが、そんなコードは見たこともない。
スタックは昔から使えるから、auto変数ぐらいは使えるはずだが。
ただ、
>変数がすべてグローバルでstaticな上に、変数名がメモリの番地で、
>しかも、同じ変数を時と場合によって違う用途に使いまわしていたり。
↑これはレジスタのような気がしなくも無い。
今ではmalloc/freeくらいは実装する場合が多いと思うよ。
動的確保でも、大体のメモリ見積はできるしね。
けどSTLとなると大概はオーバースペックだと思うな。
>>938
>設計者が過去の別次元のやり方をそのまま使っているか否かだと思うよ。
↑これは別に否定しないが、仮想記憶が無いことがほとんど、というのがでかいと思うよ。
ちょっと前までやってた仕事では、メモリ1GBあっても「足りない」と言ってたし。
951:デフォルトの名無しさん
07/11/24 09:22:02
>>947
何らかの理由でループの中に入らないことがある、と言う事だろう。
そのあたりが多分バグ。
952:デフォルトの名無しさん
07/11/24 09:40:44
>>949
再現というか、一通りforループの中の計算の処理をしおわって、ループを抜けた後に
ループの中に書いた標準出力がワーッと出てくるような感じなんですよね
シェルスクリプトみたいに逐一でるようにはならないのかなあと考えているのですが
どうすればよいのかわかりませんです
953:デフォルトの名無しさん
07/11/24 09:43:05
>>952
ループの中にfflush(stdout);とか入れてみるとか。
954:デフォルトの名無しさん
07/11/24 09:44:28
>>905
まあ new しないで使うだけの事もあるし、
new したとしても常に元の型で delete する場合もあるだろうしな。
ただ、安全を考えるならとりあえず virtual にしといて、
それが速度に影響していた場合だけ変えればいいと思うよ。
仮想関数が1つでもあればどうせ仮想関数テーブルは存在するし、
delete 使わずにデストラクタが直接呼ばれる場合には
どのクラスのデストラクタを呼ぶか確定してるから普通のメンバ関数と同じ形で呼ばれるから
特別なコストは発生しないし。(インライン化も可能。)
つまり、仮想デストラクタが影響するのは delete 時のコスト変化だけだから、
既に仮想関数テーブルがあるような状況では、
常に元の型で delete する場合にしか影響は無い。
でも、delete のコストで普通はまぎれる。
955:デフォルトの名無しさん
07/11/24 09:48:06
endlだとブッファが効く \nだと一行ずつ出力する
956:デフォルトの名無しさん
07/11/24 09:50:25
質問お願いいたします。
動かないゲームの補助ソフトのソースをいただき、
「○○の部分を○○に書き換えてコンパイルしてexeにすれば動くようになるよ」
と教えて頂き、書き換えまでは何とか出来たのですが、コンパイルが出来ません
googleでしらべてみて、該当ソフトらしき物を幾つかベクターで落として試してみたのですが、exeファイルに出来ない状態です。
ご指導いただけると嬉しいです
ちなみに書き換えたファイルの拡張子は cpp と h でした
よろしくくお願いします
957:デフォルトの名無しさん
07/11/24 09:56:44
ファイルをアップしてくれないと分からない
してくれればexeに出来るかもしれない
958:デフォルトの名無しさん
07/11/24 10:01:30
>>947
可能性1 標準出力がバッファリングされている
可能性2 ループがCPUを使いっぱなしのため、標準出力を画面等に表示するスレッドにCPUが廻らない
具体的な話を出さない質問だと、これくらいか。
959:956
07/11/24 10:02:20
>>957
URLリンク(www.vipper.org)
こちらになりますです
よろしくおねがいいたします
960:デフォルトの名無しさん
07/11/24 10:03:23
>>956
VC++ 2005 Express Edition でも使え
>>957
そのゲームがやりたいだけだろw
961:デフォルトの名無しさん
07/11/24 10:04:36
>>956
多分、コンパイルができるようにならないと無理だと思う。
cpp は C++ のソースファイルだと思うから、 C++ の勉強を一からしてみよう。
962:デフォルトの名無しさん
07/11/24 10:10:05
>>959
おいおい、そのソースはこうやって公開していいものなのか?
963:956
07/11/24 10:14:33
>>960
VC++ 2005 Express Edition が該当コンパイルソフト?なのでしょうか?
>>961
それがベストなのはもちろん理解しているのですが、今回とりあえずはこれさえexeに出来れば良いMPのでして・・・
>>962
作者の方が勝手にいじってくれて結構と公言しておりますので問題有りません
作者による更新が止まってしまったので、ソースを頂いて書き直したのですが、コンパイル出来ない状態です 笑
964:デフォルトの名無しさん
07/11/24 10:18:33
>>954
パレートの法則があるわけで、速度が求められる部分は限られていて、
大半の部分は速く動く必要がないので、C++が多少遅くても問題ないよね。
速度が求められる部分だけ、速度に気を遣って書けばいいし、
なんなら、そこだけCで書いてもいいしさ。
それに、C++が遅いといってもO(1)の話だから、どうでも良かったりする。
965:デフォルトの名無しさん
07/11/24 10:20:02
ようわからんが、オンラインゲームチーティング用コード?
966:デフォルトの名無しさん
07/11/24 10:22:25
まあ O(1) もループ内に入れば O(N) やら O(N^2) やらになるんだけどね。
967:デフォルトの名無しさん
07/11/24 10:22:53
>>959
おい、そいつはUltimaOnlineのチートツールか?
プログラムを書くのではなく、使うのが目的の人は、板違い。
968:デフォルトの名無しさん
07/11/24 10:24:55
升ツールにやれるアドバイスはないな。
969:デフォルトの名無しさん
07/11/24 10:25:43
>>966
そういう場合、多重にループさせるアルゴリズムのほうに問題があって、そっちを改良すべきでしょう。
970:デフォルトの名無しさん
07/11/24 10:26:16
>>963
このソースはVC++じゃないとコンパイルできない。
VC++はいくつかエディションがあるが、無償なのはExpress Editionだけ。
URLリンク(www.microsoft.com)
あと、このソースだとPlatform SDKが要る。
多分これ。
URLリンク(www.microsoft.com)
971:デフォルトの名無しさん
07/11/24 10:27:12
>>970
仁義守れや。
972:956
07/11/24 10:30:34
>>967
>>965
そうです
あれ、板違いですか
失礼致しました・・・
>>968
そう言わずに何とかお願い致します。
>>970
おっと
有り難うございます!
とても難しそうですが頑張ってみます!
973:デフォルトの名無しさん
07/11/24 10:52:45
なんでNODEFAULTLIB設定してるんだろ
あと古いプロジェクトファイルをVC2005でコンパイルするとたまにGSオプション無効にしないとリンカエラーになるのもよくわかんね
974:デフォルトの名無しさん
07/11/24 11:02:46
>>972
大麻の栽培方法を公衆の面前で人に聞いて回るような、そういう行為をしているっていう自覚ないんか?
975:デフォルトの名無しさん
07/11/24 11:07:09
ないからやっているんだろ
976:デフォルトの名無しさん
07/11/24 11:08:15
次スレ要る?ここへ合流でいいと思うんだが。
【初心者歓迎】C/C++室 Ver.44【環境依存OK】
スレリンク(tech板)l50
977:デフォルトの名無しさん
07/11/24 11:09:08
>>974
違法じゃないと思うからちょっと大げさなんじゃないかな。
金払ってやるゲームでのずるの仕方を聞いてるわけだ。
それ以上でもないし、それ以下でもない。
978:デフォルトの名無しさん
07/11/24 11:11:15
UOはチート自由なのか? それでよくゲーム運営が成立しているな。
979:デフォルトの名無しさん
07/11/24 11:37:16
>>977
認識が甘い。
チートは、
不正アクセス防止法
電子計算機損壊等業務妨害罪
この2つに抵触する可能性がある。
980:デフォルトの名無しさん
07/11/24 11:41:15
チートというよりbotのようだけど
981:デフォルトの名無しさん
07/11/24 11:46:35
違法か否かというのは刑事の話。
刑事とは別に民事で訴えられる可能性もある。
もしも、他の大勢のプレーヤのゲームバランスを著しく損うようなチートをして、
それが原因でゲーム会社の売上が見込みよりも大幅に減った場合、
その損害の賠償を求められる可能性もある。
一人のプレーヤがチートしたところで高が知れているので現実的には可能性は低いがね。
982:デフォルトの名無しさん
07/11/24 11:49:17
まぁ何にしても、
後ろめたいことをやるなら、自力でやれ、他人に手伝わせるな
ってことだ。
983:デフォルトの名無しさん
07/11/24 18:18:18
>動かないゲームの補助ソフトのソースをいただき、
HWND window = FindWindow ("Ultima Online", NULL);
確かに補助ソフトになるのかな?
笑ろた、
DLLへの参照が未解決になってるっぽいけど、
もしかして新手の釣りかも
調子こいてexe実行したらキンタマが感染なんて怖いお
984:デフォルトの名無しさん
07/11/25 13:18:23
RubyからDirectXは扱えないと一度レスもらったのですが、
ということはRubyからCOMにアクセスできないということなのでしょうか?
985:デフォルトの名無しさん
07/11/25 13:42:24
スレタイ嫁
986:デフォルトの名無しさん
07/11/25 13:59:35
スレ違いでしたね
すいませんでした。
というより
そろそろレス数も少ないので
証拠隠滅で埋めますか?ウヒ
987:デフォルトの名無しさん
07/11/25 14:20:14
埋める前に次スレたててこい
988:デフォルトの名無しさん
07/11/26 12:33:18
質問します
LPDWORD型をint型に変換する方法教えていただけませんか?
989:デフォルトの名無しさん
07/11/26 12:39:51
(int)lpdw
990:デフォルトの名無しさん
07/11/26 14:23:21
>>989
ありがとうございます。それって、こういうことですよね?
LPDWORD lpdw;
int i = (int) lpdw;
エラーになるようですが。
foo.c:4: error: aggregate value used where an integer was expected
991:デフォルトの名無しさん
07/11/26 16:44:33
そもそも、LPDWORD型は何なのか勉強しなおした方がいいとおもうよ
992:デフォルトの名無しさん
07/11/26 16:54:12
>>991
typedef struct {
int foo;
int bar;
} LPDWORD;
こうですか? わかりません。
993:デフォルトの名無しさん
07/11/26 17:15:05
LPDWORDは、long pointer DWORDじゃね?
994:デフォルトの名無しさん
07/11/26 17:18:32
>>993
どこの規格に書いてありますか?
995:デフォルトの名無しさん
07/11/26 17:33:20
Microsoftの俺仕様
996:やばす
07/11/26 17:36:52
rubyで最大値を出すコマンド教えてください><
997:デフォルトの名無しさん
07/11/26 17:38:06
何の最大値?
998:やばす
07/11/26 17:39:19
えーと
例えばクラスのテストの点数の最高点をだす
とかです
999:デフォルトの名無しさん
07/11/26 17:39:47
埋まるからとりあえず質問したいやつはここ行け
【初心者歓迎】C/C++室 Ver.44【環境依存OK】
スレリンク(tech板)l50
>>996
スレ違い
1000:デフォルトの名無しさん
07/11/26 17:40:56
umeeeeeeeeeeeeeeeeeeeeeeeeeee
1001:1001
Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4722日前に更新/260 KB
担当:undef