★初心者にVisual C++を教えるスレ★ Part26at TECH
★初心者にVisual C++を教えるスレ★ Part26 - 暇つぶし2ch401:デフォルトの名無しさん
07/06/28 00:46:16
ソースとpdbもちこんでは

402:デフォルトの名無しさん
07/06/28 02:09:28
プログラム経験ない管理部門ですが、突然C++使えるようになれと命令
されたんですが、独学で可能ですか?いろいろ調べるとC言語が理解して
いないと無理なように思えたんですが。

403:デフォルトの名無しさん
07/06/28 04:30:21
>>402
独学も可能だしC言語の知識がなくてもわかると思うけど…
でもやっといてもいいんじゃないかな?

404:デフォルトの名無しさん
07/06/28 08:09:23
>>402
基本的にCからやったほうがいいと思いますが
センスがあればC++でも問題ないと・・・
しかし初心者にはC++は難しい
自分は入りやすいように
DXライブラリというサイト利用してゲームを作っています。
グーグル検索してみて~
後は本を買ったりして基本と必要なことだけを覚えていくこと

405:デフォルトの名無しさん
07/06/28 09:00:39
>>402
よし、替え玉2号の俺に任せろ!

406:デフォルトの名無しさん
07/06/28 13:14:59
どこまでやるかによるけど…
プログラム経験ないんだろ?
変数とは何か、配列とは何か、演算子とは何かからはじめるわけだ。

使えるようになれと命令されたってことは猶予はせいぜい1ヶ月くらいか?
もう無理と断言していいんじゃまいか。

407:デフォルトの名無しさん
07/06/28 13:39:02
そうでもない

408:デフォルトの名無しさん
07/06/28 13:39:03
もう不要と断言されたようなもの?402カワイソスw

409:デフォルトの名無しさん
07/06/28 14:06:25
>>402
上司に俺を紹介すればいいと思うよ

410:デフォルトの名無しさん
07/06/28 18:43:32
>>402
別にたいしたことやるわけでもないなら余裕だろ
ポインタやらビット制御やらまでくると理解が難しいだろうが

411:デフォルトの名無しさん
07/06/28 20:36:10
復習をしようと思ってとても簡単そうな
#include "stdafx.h"
#include <stdio.h>
void main()
{
int a,b,wk;
scanf("%d,%d",&a,&b);
wk=a;
a=b;
b=wk;
printf("a=%d b=%d\n",a,b);
}
を試してみたのですがaとbを入れ替えるプログラムがうまく動きません。
写し間違いはないと思うのでが何が原因なんでしょうか

412:デフォルトの名無しさん
07/06/28 21:14:57
ここVCスレなんだしデバッガ使って自分で調べりゃいいだろ

413:デフォルトの名無しさん
07/06/28 21:30:28
入力でミスってるに1票。

414:デフォルトの名無しさん
07/06/28 21:40:34
C初心者スレへ行った方がいいと思うよ

415:デフォルトの名無しさん
07/06/30 12:47:13
BSTR型ってサイズの制限とか無いですよね?
Base64でエンコードされたファイルをBSTR型文字列で受け取ることになっているんですが、
メモリの許す限り何MBでも入りますよね?

416:デフォルトの名無しさん
07/06/30 16:34:38
有ります。

417:デフォルトの名無しさん
07/06/30 16:40:51
A four-byte integer
理論上は終了文字含まないで4GBだな。
バイナリ換算だと1GBか。

418:417
07/06/30 16:43:53
Win32だとUTF-16だから、文字数はその半分、
バイナリ換算すると512MBだった…… orz

419:デフォルトの名無しさん
07/06/30 17:21:59
何で限界バイト数が減るのか理解できん。

#Win32ではまず連続1GBもメモリは確保できないけど。

420:417
07/06/30 21:03:50
Base64の一文字当たりの情報量は6ビットだから、バイナリ変換すると3/4、
4GBytes => UTF-16:2G => 1.5GBytes だろ、常識的に考えて。

ごめん、今日はボケてるみたいだ orz

421:デフォルトの名無しさん
07/06/30 21:07:37
いつもじゃね?

422:デフォルトの名無しさん
07/06/30 22:45:44
>>415
>>417-420が4バイトといっているのは、
BSTRの先頭の文字列の長さを格納する部分の大きさを根拠にしている。
Win64でもこの大きさは変わっていない。

あと、言ったところでどうにもできないとは思うけど、
BSTR自体は直接バイナリデータを扱えるようにもなっている。

423:デフォルトの名無しさん
07/07/01 00:04:06
残念ながら、BSTRは例え64bitWindowsでも2^32-1バイトをサポートしていない。
最大は2^29バイトとなるように実装されている。

BSTRは別段UNICODE
(これはM$が勝手に決めたUNICODEであって、本来はいわゆるUTF-16に準拠したもの)を
格納するためではない。その気になればEUCだって代入できる。
現に>>422も単なるバイナリデータとして扱えると言っている。

ところが、少なくともVB6のCComBSTRのメンバ関数は、2バイト文字を扱うように実装されおり、
かつ、null-terminal文字列として扱っている。
BSTRはどんな文字セットでも扱えるとM$は称しているが、実際のところ安全なプログラムを組むには
UTF-16以外は代入しない方がいいと考えていい。

そして、文字列のバイト数は2^29-2であって、文字列は2^28-1文字(最後は`\0')しか代入できない。

ちなみに、Windows95系と互換性を持たせたかったら、4095バイトを限界にした方がいい。
うろ覚えだが、確かメガバイト単位までは実装されてなかったはず。

424:デフォルトの名無しさん
07/07/01 00:08:59
>VB6のCComBSTR
>null-terminal文字列
ここは突っ込むところなのだろうか。

425:423
07/07/01 00:16:16
>>424
よく突っ込んでくれた!といいたいところだが、単なるミスです。
当方チューハイ4杯入ってますので。

426:デフォルトの名無しさん
07/07/01 00:26:40
SysAllocStringの
> zero-terminated string to copy. The sz parameter must be a Unicode string
>in 32-bit applications, and an ANSI string in 16-bit applications.
についてはどう考える?
まあ、インターフェースと内部実装でコードが違ってる場合もあろうけど。

427:デフォルトの名無しさん
07/07/01 00:52:36
>>426
非ヌル終端の文字列でBSTRを初期化したければSysAllocStringLen。
バイナリデータでBSTRを初期化したければSysAllocStringByteLen。

428:デフォルトの名無しさん
07/07/01 00:56:28
>The sz parameter must be a Unicode string
こっちのほうだけど。

429:デフォルトの名無しさん
07/07/01 11:06:09
ありがとうございます。
まとめると、データがBase64文字列の最大100MB程度で
OSがWinNT系なら、何も考えずにBSTRに格納できるということでしょうか。
ただ、格納されるBase64文字列はUTF-8かSJISのどちらか(未確認)です。
Base64文字列データを返値として提供してくれる関数の返値の型がBSTRになっているのですが、
そのまま格納してはまずいのでしょうか…。
CStringに入れれば大丈夫だったり?


上の関数はライブラリで提供されてるので中身の実装は分からないのですが、中で
返値をBSTRに格納してるのなら一緒じゃないかと思ったり

430:デフォルトの名無しさん
07/07/01 11:28:49
>>429
それくらいだったら平気だろう。

431:デフォルトの名無しさん
07/07/01 14:12:29
VC++2005ってC99コンパイルできますか?

432:デフォルトの名無しさん
07/07/01 14:20:09
いいえ。

433:デフォルトの名無しさん
07/07/01 23:41:20
VisualStudio2005でC++のライブラリの追加がうまくいきません
ツール>オプション>プロジェクト及びソリューション>VC++ディレクトリ でインクルードファイルとライブラリファイルのところに
追加してるんですがうまくいかない場合は他にどこに気をつけるべき?

434:デフォルトの名無しさん
07/07/01 23:45:49
プロジェクトに追加しろよ

435:デフォルトの名無しさん
07/07/02 00:04:06
>>434
しょっちゅう使うつもりなんでできるだけ環境に入れときたいんですが……

436:デフォルトの名無しさん
07/07/02 00:22:21
ライブラリをインクルードファイルに追加する分際で何言ってんの?
だからプロジェクトに追加しないとリンクされねぇっつーの。
プロジェクトなりソースでファイルをリンクするように設定しろや
環境にPATHを入れるのは自由だ

437:デフォルトの名無しさん
07/07/02 00:53:23
visual C++ 2005 をインストールしようとしているのですが、
登録しなければインストールできないのですか?

URLリンク(www.microsoft.com)

438:デフォルトの名無しさん
07/07/02 00:56:45
ううん

439:デフォルトの名無しさん
07/07/02 08:56:42
>>434,>>436
なんだい、えらそうに。このタコが。

440:デフォルトの名無しさん
07/07/02 09:15:15
うまくいかないで考えが終わってるから
うまくいかないんだろう
猿の方が賢いかも

441:デフォルトの名無しさん
07/07/02 10:26:55
VC++なら、提供するincludeファイルに、#prafma comment(lib, "xxx.lib")
をつけときゃ、あとはディレクトリの指定だけしときゃいい

442:デフォルトの名無しさん
07/07/02 19:12:19
自作のクラスやメソッドをインテリジェンスで表示させるときに
コメントも一緒に表示できるようにならないかねぇ・・・
俺が知らないだけかもしれないけど・・・

443:デフォルトの名無しさん
07/07/02 20:26:37
New C++ Language Features - XML Documentation
に何か書いてあるっぽい。C#のXMLドキュメントコメントと似たようなものか?
でも、読むの('A`)マンドクセ

444:デフォルトの名無しさん
07/07/02 23:10:07
>>441
いや、どうせなら

#prazma

ディレクティブの方が多少面白かったのに。

445:デフォルトの名無しさん
07/07/02 23:45:21
タブブラウザを作りたくて、手始めにタブ表示を実装しようと

URLリンク(www.kumei.ne.jp)

を参考に作ってみたのですが、

URLリンク(www.dsnw.ne.jp)

のページ切り替え用タブのような、タブ同士の間にセパレータが
入った格好良いタブ表示にするにはどうしたらよいのでしょうか?

446:デフォルトの名無しさん
07/07/03 00:02:42
タブに普通にあるスタイルに見えるけど

447:デフォルトの名無しさん
07/07/03 00:13:30
>>445
URLリンク(www.kumei.ne.jp)
の先頭に

> さらにこのプログラムではタブコントロールから TCS_EX_FLATSEPARATORSスタイルを取り除いて
> タブとタブの境界線を描画しないようにしています。

と書いてあるけどこれとはまた別のこと?

448:デフォルトの名無しさん
07/07/03 00:31:40
>>446-447
dwStyle &= ~TCS_EX_FLATSEPARATORS;

の行をコメントアウトしたらできました。

大変下らない質問でスレを汚してしまい、
申し訳ありませんでした。

ありがとうございました。

449:デフォルトの名無しさん
07/07/03 03:44:25
ちょっと待て。それかっこいいのか?

450:デフォルトの名無しさん
07/07/03 07:26:00
>>449
まあまあ、主観の話なんだからケチ付けない。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch