C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

ツッコミ 実践C++/CLI


(過去ログ 5 を表示中)

[トピック内 20 記事 (1 - 20 表示)]  << 0 >>

■4726 / inTopicNo.1)  ツッコミ 実践C++/CLI
  
□投稿者/ 中博俊 神(576回)-(2006/07/04(Tue) 23:21:44)
中博俊 さんの Web サイト

分類:[討論] 


分類:[討論] 

本スレッドは、書籍"実践C++/CLI"へのツッコミを行うスレッドです。

0
引用返信 編集キー/
■4727 / inTopicNo.2)  Re[1]: ツッコミ 実践C++/CLI
□投稿者/ 中博俊 神(577回)-(2006/07/04(Tue) 23:23:20)
中博俊 さんの Web サイト

分類:[討論] 

Blueさんより

List7-1(P215)のBのコードですが、
>-T("AllDrive")
となっています。

List8-1(P234)のC〜Eのコードですが、
> LPTSTR ReadBuffer = Target.GetBuffer(CharCount);
に対して、
> ReadBuffer[CharCount] = '\0';
は不味いのではないでしょうか?
\0を代入するのであれば、
LPTSTR ReadBuffer = Target.GetBuffer(CharCount+1);
としなければならなそうです。
\0を代入しない場合はたしか、
LPTSTR ReadBuffer = Target.GetBufferSetLength(CharCount);
でOKだったような。
ちなみに細かいですが、'\0'よりも_T('\0')のほうが最適なのではないでしょうか?


0
引用返信 編集キー/
■4728 / inTopicNo.3)  Re[2]: ツッコミ 実践C++/CLI
□投稿者/ 中博俊 神(578回)-(2006/07/04(Tue) 23:31:05)
中博俊 さんの Web サイト

分類:[討論] 

>List7-1(P215)のBのコードですが、
>>-T("AllDrive")

おっしゃるとおり

-T("AllDrive")

_T("AllDrive")

>List8-1(P234)のC〜Eのコードですが、

おっしゃるとおり

LPTSTR ReadBuffer = Target.GetBuffer(CharCount);

LPTSTR ReadBuffer = Target.GetBuffer(CharCount + 1);

ReadBuffer[CharCount] = '\0'

ReadBuffer[CharCount] = _T('\0')

ちなみに'\0'では初期化されたcharの塊(Unicodeならint)とみなされないので、重大なバグです・・・orz

訂正してお詫び申し上げます。

0
引用返信 編集キー/
■4730 / inTopicNo.4)  Re[3]: ツッコミ 実践C++/CLI
□投稿者/ 読者予定 二等兵(1回)-(2006/07/05(Wed) 07:25:53)

分類:[討論] 

購入を検討しているものですが、せめて目次を提示していただけないでしょうか?

0
引用返信 編集キー/
■4731 / inTopicNo.5)  Re[4]: ツッコミ 実践C++/CLI
□投稿者/ 中博俊 神(580回)-(2006/07/05(Wed) 09:14:56)
中博俊 さんの Web サイト

分類:[討論] 

> 購入を検討しているものですが、せめて目次を提示していただけないでしょうか?

ごめんなさい。
出版社に問い合わせていただくか、書店でならんでいますのでご確認をお願いします。

m(_ _)m

0
引用返信 編集キー/
■4737 / inTopicNo.6)  Re[5]: ツッコミ 実践C++/CLI
□投稿者/ 囚人 二等兵(11回)-(2006/07/05(Wed) 12:48:27)

分類:[討論] 

早速買って前半部分を読んでみました。
C++/CLI は面白いですね。

ではツッコミをひとつ。イチャモンみたいですが…。

38ページ「…すべてのオブジェクトについてObjectへのダウンキャストができるようになっています」
以降も同様の意味で使用されていますが、これは「アップキャスト」ではないでしょうか。
「ダウンキャスト」は継承ツリーの下方向に向かってのキャストの事なので、逆かと思われます。

0
引用返信 編集キー/
■4742 / inTopicNo.7)  Re[6]: ツッコミ 実践C++/CLI
□投稿者/ 中博俊 神(582回)-(2006/07/05(Wed) 14:16:53)
中博俊 さんの Web サイト

分類:[討論] 

本の中身を確認していませんが、書かれていることが事実なら間違いですね(^^;;;;
また後ほど確認をします。m(_ _)m

0
引用返信 編集キー/
■4768 / inTopicNo.8)  ツッコミ 実践C++/CLI
□投稿者/ επιστημη 二等兵(3回)-(2006/07/05(Wed) 21:02:35)

分類:[討論] 

p170 「メッセージポンプを直接意識しない」→ メッセージマップを… ぢゃないかな。

# 「ワーニング」にもちょびっと引っかかります「ウォーニング」じゃないと。


0
引用返信 編集キー/
■4769 / inTopicNo.9)  Re[8]: ツッコミ 実践C++/CLI
□投稿者/ 中博俊 神(587回)-(2006/07/05(Wed) 21:06:57)
中博俊 さんの Web サイト

分類:[討論] 

えぴすさんまで読んでいただきありがとうございます。(^^

>p170 「メッセージポンプを直接意識しない」→ メッセージマップを… ぢゃないかな。

そりゃそうか。
MFCでもメッセージポンプは意識しないですね。メッセージポンプはベタCだっつの。

メッセージポンプ

メッセージポンプ/メッセージマップ

と訂正します。

# 「ワーニング」にもちょびっと引っかかります「ウォーニング」じゃないと。

わたしの周辺ではワーニングなので、まったく意識しなかったですね。編集さんからも相談無かったし・・・

0
引用返信 編集キー/
■4775 / inTopicNo.10)  Re[9]: ツッコミ 実践C++/CLI
□投稿者/ επιστημη 二等兵(4回)-(2006/07/06(Thu) 09:14:28)

分類:[討論] 

No4769に返信(中博俊さんの記事)
> えぴすさんまで読んでいただきありがとうございます。(^^

あ、省略するときゃ「えぴ」というルールがあります。
C++標準化委員会アムステルダム会議で採択されました(ウソ

> # 「ワーニング」にもちょびっと引っかかります「ウォーニング」じゃないと。
> わたしの周辺ではワーニングなので、まったく意識しなかったですね。編集さんからも相談無かったし・・・

んー… "walking"を「ワーキング」て読んじゃったらワケわかんねーぞ!?


0
引用返信 編集キー/
■4776 / inTopicNo.11)  Re[10]: ツッコミ 実践C++/CLI
□投稿者/ επιστημη 二等兵(5回)-(2006/07/06(Thu) 09:20:59)

分類:[討論] 

p13
× ワイド文字列 wchar や tchar などの…
○ ワイド文字列 wchar_t* や LPTCHAR などの…


0
引用返信 編集キー/
■4777 / inTopicNo.12)  Re[11]: ツッコミ 実践C++/CLI
□投稿者/ επιστημη 二等兵(6回)-(2006/07/06(Thu) 09:32:17)

分類:[討論] 

p36〜

ref class CCliClass
{
public:
CCliClass(void); [*]
};

これ、ちょっと引っかかる。
「引数なし」なら(C++では) CCliClass() とするのがフツーかな、と。


0
引用返信 編集キー/
■4778 / inTopicNo.13)  Re[6]: ツッコミ 実践C++/CLI
□投稿者/ επιστημη 二等兵(7回)-(2006/07/06(Thu) 09:34:05)

分類:[討論] 

No4737に返信(囚人さんの記事)
> 38ページ「…すべてのオブジェクトについてObjectへのダウンキャストができるようになっています」
> 以降も同様の意味で使用されていますが、これは「アップキャスト」ではないでしょうか。

p38line1にもありますね > ダウンキャスト


0
引用返信 編集キー/
■4780 / inTopicNo.14)  Re[7]: ツッコミ 実践C++/CLI
□投稿者/ επιστημη 二等兵(8回)-(2006/07/06(Thu) 09:38:11)

分類:[討論] 

p41

class kitei { ... };
class a1 : public kitei { ... };
class a2 : public kitei { ... };
class mix : public a1, public a2 { ... };

その後に続く説明とあわせるならば、

class a1 : public virutal kitei { ... };
class a2 : public virtual kitei { ... };

が正解かと。




0
引用返信 編集キー/
■4781 / inTopicNo.15)  Re[8]: ツッコミ 実践C++/CLI
□投稿者/ επιστημη 二等兵(9回)-(2006/07/06(Thu) 09:42:31)

分類:[討論] 

p42

× 実態としては同じものを…
○ 実体としては同じものを…

# ありがちー


0
引用返信 編集キー/
■4783 / inTopicNo.16)  Re[9]: ツッコミ 実践C++/CLI
□投稿者/ επιστημη 二等兵(10回)-(2006/07/06(Thu) 09:58:13)

分類:[討論] 

p48
「デストラクタとファイナライザを考慮したC++/CLIの終了処理」
csharpllでネタになった話なんですけど、

デストラクタがファイナライザを呼び出す場合、
ファイナライザが都合二度呼ばれることにはならないか?
それを考慮してファイナライザにあるリソース解放が二度行われないように
(ファイナライザは何度呼ばれてもだいぢょぶなよう)考慮せにゃならんのでは?
# 自信ナシ orz



0
引用返信 編集キー/
■4794 / inTopicNo.17)  Re[10]: ツッコミ 実践C++/CLI
□投稿者/ επιστημη 二等兵(12回)-(2006/07/06(Thu) 15:02:12)

分類:[討論] 

p52 List 3-18
> HeapClass Stack1 = null;
> try
> {
>  HeapClass Stack1 = gcnew HeapClass();
> }
> finally
> {
>  Stack1.Dispose();
> }

C#なんだかC++/CLIなんだかワケわからんです。

HeapClass^ Stack1 = nullptr;
try {
 Stack1 = gcnew HeapClass();
} finally {
Stack1->Dispose();
}

なのカナ?

だとするとHeapClass()のgcnewに失敗したときゃ
Stack1 == nullptr よね。
そんな状態で(nullptrに対して) Dispose() していいのか?


0
引用返信 編集キー/
■4796 / inTopicNo.18)  Re[11]: ツッコミ 実践C++/CLI
□投稿者/ επιστημη 二等兵(13回)-(2006/07/06(Thu) 15:09:40)

分類:[討論] 

p53 クラスと構造体
「もともとC++のクラスは構造体+関数ポインタを出発点としています」

これ、意味わかんなかった。 "+関数ポインタ"って?
仮想関数テーブルのことかしら?
# だとすると仮想関数を持たないクラスの立場は?


0
引用返信 編集キー/
■4797 / inTopicNo.19)  Re[12]: ツッコミ 実践C++/CLI
□投稿者/ επιστημη 二等兵(14回)-(2006/07/06(Thu) 15:11:59)

分類:[討論] 

p54 値型と参照型

「スタック上に値が保持される」
→ "value class は gcnew できない(heap上に生成できない)" ってこと?


0
引用返信 編集キー/
■4798 / inTopicNo.20)  Re[11]: ツッコミ 実践C++/CLI
 
□投稿者/ やねうらお 二等兵(2回)-(2006/07/06(Thu) 15:12:29)
やねうらお さんの Web サイト

分類:[討論] 

> そんな状態で(nullptrに対して) Dispose() していいのか?

私もそこは気になりましたが、↑のときに例外が発生することを意図してプログラムしているのであれば、「Dispose() していい」ということになるような…。

0
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -