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


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

★初心者にVisual C++を教えるスレ★ Part28



1 名前:誰も立てないから・・ [2007/11/30(金) 22:40:42 ]
Visual C++入門者・初心者からの質問を、
お兄ちゃん達が優しく、時には厳しく回答してくれるスレッドです。

■質問するにあたって
・エラーや警告のときはエラーメッセージを書きましょう。
・開発環境も書きましょう。
・できるだけ具体的に。

質問の仕方については次のページが大変参考になります。
www.hyuki.com/writing/techask.html
myu.daa.jp/osiete/

■回答するにあたって
・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。
 (MSDNのどの項目だとか、何のキーワードでGoogleするとか)
・ネタや煽りは軽く流しましょう。

過去スレ、関連スレなどは>>2-5

369 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 08:38:49 ]
>>367
ソリューションエクスプローラの
プロジェクト右クリック→追加→リソース

370 名前:デフォルトの名無しさん [2007/12/28(金) 09:35:34 ]
>>368
PATH 環境変数の変な所に二重引用符が入っているかもしれないね.

371 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 10:44:55 ]
>>370
その通りでした。ありがとうございます。

372 名前:デフォルトの名無しさん [2007/12/28(金) 19:51:28 ]
普通、テンプレートの定義はヘッダファイルでしますよね。

【hoge.h】
template <typename T>
void foo(const T& t) {
std::out << t << std::endl;
}

しかし、T が int と double しかありえないとわかっている場合、
(完全な)特殊化の宣言を翻訳単位に書くことでテンプレートの
インスタンスが生成されていました、少なくとも Visual C++ 2005 では。

【hoge.cpp】
template <typename T>
void foo(const T& t) {
std::out << t << std::endl;
}
template <>
void foo(const int&);
template <>
void foo(const double&);

373 名前:つづき [2007/12/28(金) 19:51:48 ]
Visual C++ 2005 では hoge.h をインクルードしてそのつど
テンプレートをインスタンス貸し手もよかったし、
かわりに hoge.cpp をリンクするということもできました。

しかし Visual C++ 2008 では hoge.cpp をコンパイルしても
hoge.obj にはテンプレートのインスタンスは含まれません。
コンパイラは「なに実体(定義)のない特殊化してるの?」
と無視するようで、当然リンカは「解決できない参照があるよ」
と怒ります。

この挙動はコンパイラ依存なのでしょうか?それとも何か
C++ の標準が変わったのでしょうか?

374 名前:デフォルトの名無しさん [2007/12/28(金) 19:57:21 ]
wr

375 名前:371=372 [2007/12/28(金) 20:13:31 ]
完全特殊化とインスタンシエーションを間違えてました。
template <> ってなにやってんだよ俺。
正しくは <> いりませんでした。

376 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 07:27:20 ]
>>369
ありがとうございます。できました。

377 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 09:46:24 ]
VS2005EEでコンパイルしたら.exeの他にいろんな拡張子のファイルができるんですが、
.exeを配布するときに同じフォルタにつめなければいけないファイルってどれですか?
bccのときは、.exeだけで大丈夫だったんですが



378 名前:デフォルトの名無しさん [2007/12/29(土) 09:49:03 ]
小数点を扱うときに ふと思ったのですが、
.NET における System.Decimal みたいな型って、
アンマネージドなVC++に存在するんでしょうか?
もし無いならば、精密な小数点計算ではどう対応してるのでしょうか?
よろしくお願いします。

379 名前:377 mailto:sage [2007/12/29(土) 10:22:35 ]
自己解決しました。何もつめなくても大丈夫みたいでした。

380 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 10:48:58 ]
>>378
System.Decimalは、
OLEオートメーションで使われていたDECIMAL型が元になっていると思う。

381 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 12:47:43 ]
switch caseのcase内でreturnする際にもbreakをつけたほうがいいでしょうか?

382 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 13:13:12 ]
>>381
VCというより、Cの話だな。
当然、イラン

383 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 13:54:43 ]
>>382
ありがとうございました。

384 名前:337 mailto:sage [2007/12/29(土) 15:32:24 ]
>>345
そうですね……似たようなコードを自分で書くことにします。

385 名前:デフォルトの名無しさん [2007/12/29(土) 15:34:47 ]
VC++6.0です。
非MFCでモーダルダイアログを作成したいのですが、
DialogBoxとリソースを使わずにCreateWindow(Ex)で作る事は出来ますでしょうか・・・?
拡張スタイルにTOOLWINDOWを使うと、コントロールメニュー無し・タイトルバーあり・閉じるボタンのみありを作れるものの。
タイトルバーが小さな感じになってしまい、他のスタイルを何通りか試してみても、
コントロールメニューが残ったりと再現が出来ません。

マクロと書いてあったので、どうにか出来るかなと思って試行錯誤してますが、どうもこれと言った設定が見つかりません。
助言頂けたら幸いです。

386 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 17:33:55 ]
>>145
むちゃくちゃ遅いですが回答ありがとうございました><

387 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 21:21:13 ]
>>377
変にオプションをいじっていなければ、exeだけ。
ただし、別途ランタイムが必要。



388 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 21:54:00 ]
x64でインラインアセンブラは使えないんですか?
まだ対応してないというだけで、新しい2008では使えるんですか?

389 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 22:07:42 ]
>>388
使えないよ。
MSは組み込み関数を使えってスタンスなんだと理解してる。

390 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 22:54:36 ]
>>380
ありがとうございました。

391 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 13:27:33 ]
VS2005MFCです
カスタムコントロールのサイズを取得する、関数って準備されてない?

392 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 13:29:28 ]
>>391
■MFC相談室 mfc18d.dll■
pc11.2ch.net/test/read.cgi/tech/1185917008/

393 名前:デフォルトの名無しさん [2007/12/30(日) 17:08:00 ]
visual c++ 5.0 express
だとメイクファイルのエクスポートってできないんですか?
どのバージョンならできます??

394 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 20:16:30 ]
VC6.0は少なくともできる。ってか5でもできると思うけど持ってないから何とも・・・

395 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 22:57:37 ]
express ???????????????????

396 名前:デフォルトの名無しさん [2007/12/31(月) 01:41:41 ]
Visual C++ 2005 Express Editionについて質問します。

昨日始めたばかりで右も左もわかりませんが、よろしくお願いします。
コーディングする時に、スペースを打つと・が表示され、
TABを打つと、→が表示されますが、これを消すにはどうすればいいんでしょうか?

分かりにくかったらすいません、よろしくお願いします。。。


397 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 01:56:45 ]
[編集]-[詳細]-[スペースの表示]



398 名前:396 mailto:sage [2007/12/31(月) 02:01:36 ]
ググろうにもどうやってググればいいのか分からなくてほんと困ってたんです。

>>397さんありがとですmm

399 名前:デフォルトの名無しさん [2007/12/31(月) 03:08:41 ]
>>394
ありがとうございました。

400 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 06:27:05 ]
VC2008のExpression Editionで生成した.exeファイルを、開発した計算機以外で実行させるにはどうしたらよいでしょうか?
現状では『アプリケーションの構成が正しくないため・・』というエラーメッセージ表示と共に止まってしまいます。

取りあえずググった結果、2005では 構成プロパティ->ランタイムライブラリ の項を『マルチスレッドMT』にする事で解決できるという記事を目にしたので試して見たのですが、
実行できるようになっただけで、正しく動きません。
(.exeファイルをエントリポイントとした、いくつかの.dllで構成されたアプリケーションなのですが、.exeファイルの機能だけが実行されていて、他の.dllの機能が実行されている様子がない。因みにこれら.dllファイルもマルチスレッドMTで構成しています)

これは2008では有効な対処法方ではないのでしょうか?それとも自分が開発したアプリに問題があるのでしょうか?

どなたか解決方法に心当たりございましたら、御教授の程宜しくお願い致します。

401 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 06:37:15 ]
>400 はスルーしとけ
答えてやってももろくなことはないぞ

402 名前:400 mailto:sage [2007/12/31(月) 06:56:31 ]
何か問題ありましたでしょうか・・・

403 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 09:00:38 ]
>何か問題
対処法方
心当たりございましたら
御教授の程

404 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 10:37:06 ]
>>400

多分、共有ライブラリのバージョンが合つてない。
とりあえずスタティックリンクにすれば直ると思う。


405 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 10:50:33 ]
実行ファイルには、単純にDLLのインポートライブラリをリンクしただけなのか、
起動後に動的に読み込ませているのか、はっきりしる。
C++/CLIなのか、MFC使っているのか、そこらへんも全て書け。
>.dllの機能が実行されている様子がない。
何を根拠に?

406 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 11:32:51 ]
Visual C++ Express Editionの2008と2005、どちらを使おうか迷っているのですが、
C言語とDirectXの勉強に使うには、2008と2005どちらの方が良いですか。

407 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 11:38:58 ]
>>406
どっちも使って使いやすいほうにすれば?その為の無料なんだし



408 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 11:47:11 ]
今って2008のExpressってのも出てるのか
知らんかった

409 名前:デフォルトの名無しさん [2007/12/31(月) 11:54:52 ]
2005じゃないの、今なら、勉強用なら

410 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 12:12:28 ]
>>409
2008は扱いが難しいのでしょうか。
それとも、2005の方が情報が多くて問題解決がし易いという意味ですか。
2005の方が問題解決のヒントが多いのであれば、2005の方を使ってみます。

411 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 12:29:11 ]
まあそりゃあ多いだろうよ

412 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 13:34:39 ]
勉強していくなら情報が転がってる2005のほうがいいでしょ
2008でやっていくなら自分でその情報を発信する側になるぐらいの勢いないとな

413 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 13:35:52 ]
2008はでたばかりだしね

414 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 14:50:38 ]
VCって無料(フリー)のソフトですか?

415 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 14:51:13 ]
いいえ


416 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 14:54:47 ]
機能制限された無料版もあるソフトです

417 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 14:55:19 ]
ありがとうございます



418 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 15:11:59 ]
Visual C++ 2005 Express Edition、Windows SDKの環境での質問です

リソースエディタでタブコントロール付きのダイアログボックスというものを
作ってみたのはいいのですが、これをアプリケーション内で利用するにあたり、
MFC等を使わずに実装する方法がよくわかりません
別のダイアログを貼り付ける、みたいな話はあるようなのですが
実際どのようにコーディングするのかがわからないのです

タブコントロール実装のためのコーディング手順などを教えていただきたいです
長くなるようでしたら、このあたりがわかるようなサイトなどありましたら教えて下さい
よろしくおねがいします

419 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 15:34:26 ]
知ってるけど教えようがない

420 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 15:39:29 ]
コーディング手順ってのもまた珍妙な語だな、考えてみると

421 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 16:43:56 ]
だいたいはプロパティシートを使うんじゃないの。

422 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 16:50:56 ]
MFC等を使わずに実装する方法がよくわかりません

423 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 17:09:19 ]
タブはボタンみたいなものだよ
ボタン押した時に何をするかは作る人の勝手だし、
タブで何をするも作る人の勝手

424 名前:418 mailto:sage [2007/12/31(月) 17:51:23 ]
質問の仕方が悪かったでしょうか?
普通にリソースエディタでタブコントロールを追加したダイアログボックスを
ただDialogBox()関数で呼び出しても、何もない四角が表示されるだけなのですが、
これを選択できる状態にするには具体的にどういった手順を踏めばよいのか、
別のダイアログボックスを貼り付けるにはどうすればよいのかが知りたいです。
よろしくお願いします。

425 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 18:17:52 ]
>>424

www.kumei.ne.jp/c_lang/sdk/sdk_69.htm

↑直接的にはこれだけど、他のページも見てみると良いよ。


426 名前:418 mailto:sage [2007/12/31(月) 19:52:13 ]
>>425
ありがとうございます
そのサンプルだとタブコントロールの作成自体が自前だったので多少混乱しましたが
GetDlgItem()でリソースエディタで作ったタブのハンドルを取得する事で
項目追加については解決しました

そちらのソースを見た感じだとタブ用のウィンドウの上に後からボタンを作っているようなのですが、
リソースエディタ上でタブの上に見えるようにボタンを配置し、それを表示非表示で切り替えたり
する事はできないのでしょうか?

手動で作るか、別のダイアログを固定位置の子ウィンドウとして呼び出すとかしかないでしょうか

427 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 20:13:34 ]
そりゃ、ShowWindow(GetDlgItem(**),SW_HIDE)とか駆使しればできるだろうけどさ。
ダイアログエディタが混雑するぜ。



428 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 14:40:45 ]
MSDNて使いにくいね。
特にC言語やC++言語の標準ライブラリの調べにくさはC++Builderのヘルプの比ではない。

429 名前:418 mailto:sage [2008/01/01(火) 15:17:20 ]
ダイアログをタブコントロールの子ウィンドウとして呼び出して
なんとか実装できました
どうもありがとうございました


430 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 22:07:34 ]
VC関係のサイトを回っていると、何の説明もなく

throw "あいうえお";

みたいな記述を良く見るのですが、これはどういう意味なのでしょうか?
プログラムを実行させるとランタイムエラーメッセージが出て処理が止まるのはいいのですが
たとえば配布したプログラムでこのthrowが呼び出されてしまったときに、
この"あいうえお"という文字列は、何をもって確認するのですか?

431 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 22:09:12 ]
>>430
VC以前の問題。
throwって知ってる?

432 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 22:09:43 ]
おおもと(mainとか)でcatchしとくんだろ。
char*を投げるのはあんまし感心しないけど。

433 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 22:15:06 ]
正直throwというのが良くわからないです
この場合どういう効果があるのでしょうか
ランタイムエラーメッセージが出る時にthrowで送られた情報が
そのメッセージの中で見られるのかと思ったのですが、見られないのですか?

434 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 22:16:34 ]
throwはC++の機能、try/chatchあたりでも勉強してくればいい
当然の如くVCには全く関係ないから

435 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 22:26:20 ]
char*とか、std::exception継承クラスならともかく、かってな
ユーザオブジェクトを投げられたら、いずれにせよランタイムは
情報を出すことが出来ないからなー。

436 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 22:36:15 ]
throw知らね、って言ってる人には分かる内容じゃないだろうな。

437 名前:デフォルトの名無しさん [2008/01/02(水) 09:12:15 ]
・XPでパスワードLOOK中かどうか判断する方法(ctrl + del + altのあれ)
わかる方お願いします。ヒントだけでも結構です。





438 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 11:37:22 ]
スロー(throw)だけじゃなくてスルー(through)も一部では需要ありそうだなw

439 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 11:40:09 ]
MSDNのLockWorkStationの解説より
>There is no function you can call to determine whether the workstation is locked

440 名前:デフォルトの名無しさん [2008/01/02(水) 15:38:52 ]
結局,関数の宣言の際に例外仕様ってつけるべきなんですか?

441 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 15:41:36 ]
宣言関係ないと思うが、、、仕様どおりでおk
誰が作って誰が使うかによってかわるし、こうしろという決まりごとはないよ。

442 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 22:58:47 ]
>>440が言ってるのって、
void hoge() throw()
見たいなのじゃないの?

C++FAQ第二版で例文がそう記述されてて、
試してみたら(コンパイラに言われたんだか誰かに言われたんだかネットで見たんだか定かでない)けど
「古い記述方法」
という感じだった。 凄くうろ覚えでゴメン。

443 名前:デフォルトの名無しさん [2008/01/03(木) 05:48:25 ]
>>442
そう.それ.
例外仕様を頑張って記述したところで,例外仕様の部分って
関数の型としては扱われないし,何かつけてて意味あるのかなって.

444 名前:デフォルトの名無しさん [2008/01/03(木) 17:20:05 ]
別スレから、こちらに書き込みます。

リソースの編集したいのだが、
RCの中から、そこいらのヘッダをインクルードしてるファイルだと
フリーソフトではエラーが出て読み込めない。

どうしたら良いですか?
 あきらめたほうが良いですか?お金はびた一文も出しませんので
お金がかからない何か良い方法はないでしょうか?


445 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 17:20:42 ]
>>444
あきらめた方がいい

446 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 18:43:29 ]
テキストファイルだから手動でコピペするだけ

447 名前:デフォルトの名無しさん [2008/01/03(木) 23:26:43 ]
自分はプロジェクトのプロパティ(コンパイルオプションとか)
をプロジェクトごとに指定することはあまりやらなくて,
あらかじめ用途ごとの vsprops ファイルを作っておいて
組み合わせて適用しているのですが,そうすると
プロジェクトごとに最初から指定されているオプションがうざいです.

デフォルトで全部「親から継承」に簡単にすることってできないんでしょうか?



448 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 21:16:05 ]
C++/CLIでファイルから特定の文字列を検索する部分なのですが、
C++/CLIのStringクラスのCompare(ryメソッドでは、
完全一致は探すことができたのですが、部分一致を探し出すことができませんでした
Cのstrstr関数やC++STLのStringクラスのfindメソッドのような、
文字列から文字列を探すことのできる、C++/CLIのクラスメソッドはないのでしょうか?

449 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 21:42:44 ]
>>448
単にオーバーライドを見つけられていないだけな気もするけど、一応。

ファイルの内容が全てメモリに収まる程度という前提なら、
内容をSystem::Stringに全部押し込んだ後で、System::String.IndexOfか?
System::Text::RegularExpressions辺りで一気にやるほうが楽かもしれん。

450 名前:449 mailto:sage [2008/01/04(金) 21:44:22 ]
オーバーロードだった orz

451 名前:448 mailto:sage [2008/01/04(金) 22:20:11 ]
>>449
すぽーんと見落としてました・・お恥ずかしい
読み込むのはファイルの一部だけなので、IndexOfで大丈夫そうです
どうもありがとうございました

452 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 00:48:48 ]
構成プロパティの文字セットをUnicodeを使用するにした状態で

int _tmain(int argc, _TCHAR* argv[])
{
  _tprintf( _T( "testあいうえお" ) );
  _gettch();

  return 0;
}

というような感じでコードを書いたのですが、
abcまではDOS窓に表示されるんですが、あいうえおが表示されません
Unicodeだとどうすれば日本語も表示されるようになるのでしょうか?

ちなみにマルチバイト文字セットにすると上手く行きます
できるだけマルチバイトでもUnicodeでも正常動作するようにしたいのです
_Tで囲むことで期待通りの表示になるかと思ったのですが…

よろしくお願いします

453 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 00:51:40 ]
あ、abcではなくてtestでした_| ̄|○よろしくお願いします

454 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 00:54:21 ]
>>453
本当に表示されてるのはtestだけなんだな? その後に何も表示されてない?

455 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 00:56:57 ]
>>454
えーと、入力待ちのカーソルが、間隔を開けずにtestの真横に表示されます
文字化けしてでるとかもないです

456 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 00:57:00 ]
setlocale

457 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 01:26:48 ]
>>456
ありがとうございます。こんな感じでいいのでしょうか?
一応あいうえおの表示はされたのですが、何か弊害などはありますか?

int _tmain(int argc, _TCHAR* argv[])
{
  _tsetlocale( LC_ALL, _T( "Japanese_Japan.932" ) );
  _tprintf( _T( "testあいうえお" ) );
  _gettch();

  return 0;
}




458 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 02:29:07 ]
CLRのSystem::Windows::Formsクラスを使用するWindowsアプリケーションでは、
処理は全てFormクラス内のメソッドにまとめるものなのでしょうか?
WinAPIでのWindowsアプリケーション作成もしたことがないので、混乱しています・・

459 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 02:35:48 ]
好きにしなさい

460 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 09:36:58 ]
>457
そういうプログラムなら標準Cで作った方が汎用性が高いから
そんな見苦しいことやって喜んでるのはお前ぐらいだと思う

461 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 10:03:22 ]
マジですか
もはや時代はユニコードだと思っていたのですが違うのですか?

462 名前:デフォルトの名無しさん [2008/01/05(土) 10:17:10 ]
自己完結しているアプリなら言語は関係ないだろ
ウェブとか、多言語つかうならユニ

463 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 10:56:10 ]
VC++の_t系はWindows APIとの整合性を取るためのものだと俺は思っている。

464 名前:デフォルトの名無しさん [2008/01/05(土) 14:23:23 ]
COM の BSTR は MBCS ですか? Unicode ですか?
もしくはそういうことは COM の規格の範囲外のことですか?

465 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 14:25:30 ]
COMの規約ではどうなっているかしらないが、
Win16ではMBCS、Win32以降はUTF-16 (x86ならリトルエンディアン)。

466 名前:デフォルトの名無しさん [2008/01/05(土) 14:57:05 ]
>>465
API でいえば hogehogeA と hogehogeW の話ですよね?
主要な COM コンポーネントでも二種類の
インターフェイスが用意されていると思ってたんですが,
そうではないのでどうしたものかなぁ,と.

しかしよく考えたらたとえば MSXML が XML 文書を
受け取るのも BSTR なわけで,その時は文字コードに
よらずなんでも受け取るのだから BSTR は文字コード
を限定しないなにか(32ビットで領域のサイズが
明示的に前置された何か)だと思うことにします.

467 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 17:56:23 ]
>>457
寝てたわ・・・
プログラムよりも、デフォルトで開くコンソールのコードページの問題だからねえ。



468 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 02:01:00 ]
猫本見ながら何度もやってるんですが、画像を表示するところで詰まってます><
ビットマップをrcに変換し
LoadBitmapでインスタンスハンドルを取得するところでエラーが出ちゃうんですが
正しい手順教えて下さい><

switch(msg){
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
hBmp = LoadBitmap(hInst, "IDB_BITMAP1");
GetObject(hBmp, (int)sizeof(BITMAP), &bmp_info);
w = bmp_info.bmWidth;
h = bmp_info.bmHeight;
hdc_mem = CreateCompatibleDC(hdc);
SelectObject(hdc_mem, hBmp);
BitBlt(hdc, 0, 0, w, h, hdc_mem, 0, 0, SRCCOPY); //描画
DeleteDC(hdc_mem);
DeleteObject(hBmp);
EndPaint(hWnd, &ps);
break;

C:\temp\a.c(102) : error C2065: 'hInst' : 定義されていない識別子です。
C:\temp\a.c(102) : warning C4047: 'function' : 間接参照のレベルが 'struct HINSTANCE__ *' と 'int ' で異なっています。
C:\temp\a.c(102) : warning C4024: 'LoadBitmapA' : の型が 1 の仮引数および実引数と異なります。
cl.exe の実行エラー

開発環境はVisualC++6.0です

469 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 02:21:40 ]
>>468
> C:\temp\a.c(102) : error C2065: 'hInst' : 定義されていない識別子です。






[ 続きを読む ] / [ 携帯版 ]

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

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