[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 07/15 20:46 / Filesize : 200 KB / Number-of Response : 834
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【初心者歓迎】C/C++室 Ver.35【環境依存OK】



1 名前:デフォルトの名無しさん mailto:sage [2007/02/19(月) 21:36:23 ]
エスケープシーケンスやWin32APIなどの環境依存な物でもOK。
ただしその場合、質問者は必ず、環境を書きましょう。
※sageは禁止です。
【前スレ】
【初心者歓迎】C/C++室 Ver.34【環境依存OK】
pc10.2ch.net/test/read.cgi/tech/1169039760/
【アップローダー】(質問が長い時はココ使うと便利)
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm

802 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 21:00:31 ]
>>797
>基本的に循環しないように分割の設計していかないと駄目だと思うのよね。
>それが基本的に本当だと思うのよね。

んなこたねーよ馬鹿。循環していなくても
同じ宣言・定義を2回読む危険性はあるだろ。

>>799
標準ライブラリもインクルードガードされているから大丈夫。ソース見れ。

>>800
#include <stdio.h>と何回も書くと
その分だけオブジェクトコードが増えるとでも思ってるのか?
時間は数ミリくらいは遅くなるだろうが。

803 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 21:11:19 ]
>>802
>>799>>797理論について標準ライブラリも重複しないようにせにゃならんのかと言ってんじゃね?

804 名前:デフォルトの名無しさん [2007/03/25(日) 23:18:38 ]
>>798->>803
バカかお前ら。依存関係の事言ってんだよ

805 名前:デフォルトの名無しさん [2007/03/25(日) 23:24:59 ]
>>804 ごめん、よくわからん

806 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 23:25:03 ]
結局これか
www.kouno.jp/home/c_faq/c10.html#7

807 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 23:28:37 ]
>>804
無能

808 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 23:34:21 ]
>>806に関連して(このスレの流れには関係ないが)
borlandのコンパイラ及びmakeは、自動的に依存ファイルの更新をチェックする機能がある
(.objのコメントにincludeされたファイルと日付を含め、makeがそれをチェックする)
まあmakeにかかる時間が若干増えるが。

809 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 00:24:06 ]
>>806
Indian Hill スタイルガイドを策定したヤツは馬鹿ですか? 信じられん。
一度、#include を入れ子にしてないプログラムのメンテしたことあるけど地獄だったぞ。

810 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 02:43:27 ]
例えばクラスAを保持しているクラスBとCがあって、それぞれが別々の
.cpp と .h のセットに記述されていた場合とか、
入れ子 #include が禁止だと非常に困る



811 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 05:27:27 ]
>789
どういう状況かは知らないが、似たような経験がある。

とあるアプリのプラグインを開発していたんだけど、
アプリの仕様上、その機能が使われる度に毎回プラグインがロードされるので
static変数が使いにくいという状況だった。

そのときに色々と調べて見つかった方法が、
・シードをファイル等に書き込んでおく
・プラグインとは別にプロセスを立ち上げ、種を保持しておく
・ミリ秒ではなくマイクロ秒を種に与える
の3つだった。他にもあるかもしれない。


812 名前:デフォルトの名無しさん [2007/03/26(月) 16:52:23 ]
Win32APIフックについて教えてください。

ユニットテストでAPI呼出失敗を検証する為、
APIフックを行う必要があります。
いろいろ調べた結果、以下のHPにサンプルがありました。

ttp://ruffnex.oc.to/kenji/text/api_hook/
ttp://ruffnex.oc.to/kenji/text/api_hook/ex2.cpp

動作検証した所、フックは成功しました。
しかし、フック状態から元の状態に戻す方法がわかりませんでした。
(プログラムを終了すれば元の状態にもどりますが、そうではなく、任意のタイミングで戻したい)

どのようなコードを書けばよいのか、識者の方ご教授いただけませんでしょうか。

813 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 16:57:48 ]
そりゃ、自分のプロセスのテーブルを上書きして書き換えてるだけだから。
そこのページに置いてある API_Hook.zip をちゃんと読めば分かるよ。

814 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 17:03:34 ]
ややすれ違い WindowsAPIべったりな話題だから
pc11.2ch.net/test/read.cgi/tech/1174416295/l50

さらにいうなら親切にBBS用意してるんだからそっちで聞くほうがいいとおもうけどな
さらにいうならもう一個下のサンプルにはちゃんと実装されてるんだから
それぐらい調べてからでも遅くないと思うんだけどな
でもってReplaceIATEntryInAllModsの引数逆転させてみな

815 名前:812 [2007/03/26(月) 17:40:00 ]
>>813
>>814
レスありがとうございます。

ご指摘の通り、ソースを調べてから質問するべきでした。
また、スレ違いであることも、重ねてお詫びします。
申し訳ありませんでした。

816 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 18:34:00 ]
Cの質問です。

unsigned int a = 1;
a -= 2;

このとき、aの値がUINT_MAXになることは保障されているのでしょうか?

817 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 18:42:17 ]
UnsignedIntegerOutOfBoundExceptionがシグナれます

818 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 18:52:17 ]
>>816
整数オーバーフローが発生した場合の動作は未定義

そもそもUINT_MAX==2^(sizeof unsigned)-1である保証もない

819 名前:816 mailto:sage [2007/03/26(月) 18:58:34 ]
>>818
分かりました
別の方法を考えてみることにします・・・

レスありがとうございました!

820 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 19:31:05 ]
>>818
あれ、そうだっけ。
intとかの負数を含む型は、
オーバーフローは未定義だったのは規格で書いてあった覚えあるけど。
unsignedも未定義って書いてたっけ?
確か2^Nで余剰を取った結果になるって書いてたと思うけど。




821 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 21:09:16 ]
>>816
規格では、符号なし整数の演算結果が範囲外になったときは範囲内に収まるまで
(その型の最大値+1) を足したり引いたりした値になるとされている。 ISO C 6.3.1.3

これにより ((unsigned int)-1) は常に UINT_MAX に等しいと言える。

822 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 21:19:31 ]
UINT_MAX は-1よりも~0の方が好きだな
単なる好みの問題だけど

823 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 21:21:05 ]
オーバーフローはバグの原因になるから理解するのはいいけど、
実際にプログラムに組み込むなよw

824 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 21:44:31 ]
>>822
それって保証されてるん?

825 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 22:00:58 ]
C90/C99ともにただ 0 とだけ書いた場合は (int)0 と等価なので
それを全ビット反転するわけだから -1 になると思うが

826 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 22:01:46 ]
書き漏らした

int範囲で -1 になると思う

827 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 22:02:27 ]
負数の表現方法は C の規格外。

828 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 22:03:45 ]
~0Uだな

829 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 22:12:28 ]
つまり、-1 が 0x80000001 な環境でも
(unsigned)-1 は 0xFFFFFFFF (が UINT_MAX とする)になるということか。

830 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 22:15:01 ]
まぁそういうことだよな?
ただの -1 なら 0x80000001 で解釈されるけど
(unsigned)キャスト時はコンパイルでUINT_MAXに置換されるってことなんだろうか



831 名前:デフォルトの名無しさん [2007/03/26(月) 23:28:52 ]
VC++ 2005を始めました。
Byte単位でのファイル入出力はできますか?
ビギナー本には書いてないし、ネットでも色々探したのですが…。
エロい人、方法を教えてくだされ。

832 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 23:34:42 ]
fread() fwrite()

833 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 23:36:00 ]
fstream






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<200KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef