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


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

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



1 名前:デフォルトの名無しさん [2008/07/31(木) 18:02:28 ]
Visual C++入門者・初心者からの質問を、
お兄ちゃんお姉ちゃん達が優しく、時には厳しく回答してくれるスレッドです。

■質問するにあたって
・エラーや警告のときはエラーメッセージを書きましょう。
・開発環境も書きましょう、特にWindowsForm、MFC、Win32アプリケーションの区別。
・できるだけ具体的に。

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

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

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

382 名前:デフォルトの名無しさん [2008/09/09(火) 15:24:53 ]
>>381
CViewのポインタが帰ってくるようで、継承して作られたC???Viewの関数は使えないようです。

CFrameWnd::GetActiveView()->関数();

このようにしてもビルドが通らないです。

383 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 15:32:12 ]
>>382
GetWindowtext()が見つけられないようだったから、わざわざCFrameWnd::GetActiveView()の
書き方にしたのに、そしたらこれかよ・・・
CなんたらEditView* pView = (CなんたらEditView*)GetActiveView();
でいいだろ、ちょっとは考えろよ。

384 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 15:36:11 ]
メニューから直接よべる

385 名前:デフォルトの名無しさん [2008/09/09(火) 19:30:54 ]
>>383
未熟ですみませぬ・・・
おかげさまで思った通りのものができました。

386 名前:デフォルトの名無しさん [2008/09/10(水) 11:58:44 ]
お世話になります。VC++6でダイヤログベースのプログラムを作っています。
ダイヤログにボタンを新設し、Classウィザードを使ってON_BN_CLICKEDメッセージ関数を使って
ボタンがおされた事はプログラムで取得できるようにできました。

ボタンを何秒間押したかを調べたいのですが、ボタンが離されたメッセージがなく、
どうやって作ったらいいかわかりません。
どのようなメッセージを使えばいいのでしょうか?
よろしくお願いいたします。

387 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 12:04:58 ]
CButtonをサブクラス化して自分でLBUTTONDOWNとLBUTTONUPの時刻の差を取るしかないんじゃないかなあ

388 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 12:32:58 ]
ボタンのイベントは押した時じゃなくて、離した時に発生する気がしたけど

389 名前:デフォルトの名無しさん [2008/09/10(水) 15:12:46 ]
数日前にVC++ 2008 Express Editionを使い始めた初心者です。
ttp://homepage3.nifty.com/ishidate/
を参考にWindowsフォームアプリケーションのテンプレで作成したのですが、
一度目のビルドは普通に実行されて表示されるものの、少しでも書き換えた後(内容に一切変化がない場合でも)
以降ビルドを行おうとするとexeファイルが見つからないと表示され、エラーが発生します。
CやC++は以前から触れていたのですが、VisualStudioの操作に関しては
いまいち分からないので原因が分かりません。
どなたか分かる方は折られるでしょうか?よろしくお願いします。

390 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 15:16:29 ]
なんかおかしいね。
PCの時計はくるってない?



391 名前:デフォルトの名無しさん [2008/09/10(水) 16:59:39 ]
EXE だけど DLL としても使えるバイナリってどうやって作ればいいですか?

392 名前:デフォルトの名無しさん [2008/09/10(水) 18:07:37 ]
VC6で、2003以降のXmldocumentクラスに相当するものってありますか?

393 名前:391 mailto:sage [2008/09/10(水) 19:31:29 ]
自己解決しました。とりあえず
__declspec(dllexport)
付けて宣言しとけばEXEでビルドしてもエクスポートされるんですね。

394 名前:デフォルトの名無しさん [2008/09/10(水) 19:42:43 ]
VC++ 2008 Proを使っています。
デバッグでプログラムを実行させると出力欄に、
「'System.NullReferenceException' の初回例外が ImageRecognize.exe で発生しました。」
と表示されるのですが、これがどの行で発生したかを調べるにはどのようにしたらいいでしょうか?
どなたか教えていただけると嬉しいです _ _

395 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 19:45:00 ]
ヌルポ

396 名前:394 mailto:sage [2008/09/10(水) 19:47:11 ]
すみません、メニューのデバッグ→例外を設定することで出来るようになりました。
お騒がせいたしました。

397 名前:デフォルトの名無しさん [2008/09/11(木) 01:08:30 ]
CreateProcessで新規のルートプロセスを発行した後、
親プロセスはWaitForSingleObject(hHandle, 0)を実行して
即終了させようと思っています。(UNIXのデーモンプロセス生成のような感じ)
ここでWaitForSingleObject()のタイムアウト時間を0秒に設定すると
何か問題あるでしょうか?

398 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 01:20:13 ]
そのwaitに一体何の意味が?

399 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 01:25:50 ]
>>398
形式的に入れた方がいいのかと思ったのですが、
もしかして即終了させるならば必要ないですか?

400 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 08:08:02 ]
何のために待つのか考えろよ



401 名前:デフォルトの名無しさん [2008/09/11(木) 09:40:54 ]
VC++ 6.0で、
xmlファイルを解析して読み込む/書き込む仕組みを作らなくてはならないのです
が、手探りで困っております。

検索してみると、VC2003以降になればXmldocumentクラスなるものが使えるよう
ですが、
VC6.0ではmsxml.hを使わなくてはならないようです。
これについての資料やサンプルがweb上にあまり無くて困っています。

また、xercesのライブラリを使う手段も打診されているのですが、
これについてはどのようにすれば良いでしょうか?
ダウンロードしても構成ファイルが大量にあり、これらをどう組み込むのが検討
が付きません。
また、VC6用のサンプルのプロジェクトファイルは同梱されていたものの、なぜ
かビルドが通らないようです。
こちらから入手したものです。
xerces.apache.org/xerces-c/

次レスに続きます

402 名前:デフォルトの名無しさん [2008/09/11(木) 09:42:05 ]
xerces-all.dswを開いてビルドすると
エラー内容
C:\Liblary\xerces-c-src_2_8_0\src\xercesc\util\Platforms\Win32\Win32PlatformUtils.cpp(691)
: error C2039: 'InterlockedCompareExchangePointer' : '`global
namespace'' のメンバではありません。
C:\Liblary\xerces-c-src_2_8_0\src\xercesc\util\Platforms\Win32\Win32PlatformUtils.cpp(691)
: error C2065: 'InterlockedCompareExchangePointer' : 定義されていない識
別子です。
cl.exe の実行エラー

外部のライブラリを使用するプログラムを作ったことが無いので、そういった部
分の基本から教えていただけると幸いです。

403 名前:デフォルトの名無しさん [2008/09/11(木) 09:51:27 ]
>>401
VC2008とboostいれようぜ。
そしたら簡単。serializationとか

404 名前:デフォルトの名無しさん [2008/09/11(木) 09:55:05 ]
VC2008が無料で2005より軽いことをしらんのか?

405 名前:401 [2008/09/11(木) 09:57:19 ]
すんません
業務で、VC6と指定なのです。

406 名前:デフォルトの名無しさん [2008/09/11(木) 10:02:12 ]
この辺参照。

これ使うとXMLの扱いがとっても簡単になりますね
基本的にはシリアライズしたいクラスのメンバにserialize関数を追加するだけです
d.hatena.ne.jp/faith_and_brave/20070809/1186672741
d.hatena.ne.jp/cass_src/20070730




407 名前:デフォルトの名無しさん [2008/09/11(木) 10:04:40 ]
>>405
では、boostをいれれば? コンパイルできるかは知らないけれど。
でも、msxml.hを使うのが普通ですね。標準機能なので。

408 名前:デフォルトの名無しさん [2008/09/11(木) 10:18:04 ]
ありがとうございます。
boostを研究してみます。

409 名前:デフォルトの名無しさん [2008/09/11(木) 10:18:40 ]
この辺にMSXMLの使い方かいてありますよ。
あとはMSのサイトで調べれば完璧じゃないですか?

www.utj.co.jp/xml/dev/dom/dxdom1_1.html
www.utj.co.jp/XML/DEV/dom/dxdom2_1.html
www.sutosoft.com/oldroom/devdiary/20020505.html
www.sutosoft.com/oldroom/devdiary/20040307.html
hp.vector.co.jp/authors/VA014436/prg_memo/windows/vctips/006.html
www.s34.co.jp/cpptechdoc/article/xml/persist/

410 名前:デフォルトの名無しさん [2008/09/11(木) 10:23:01 ]
>>408
boostが動かせる(コンパイルできる) かどうかのコンパイラ別の対応表がどこかにあったのですが
忘れてしまいました。boostのホームページのどこかにあったはずです。
XMLを扱う簡単さでは、boostの方が上と思いますが
VC6の機能からなるべくはみ出ないようにするには、MSXMLと思います。



411 名前:デフォルトの名無しさん [2008/09/11(木) 11:24:48 ]
やはりVC6でビルドしようとすると、「ブロックが大きすぎてコンパイルできません」と出ます。
あきらめてmsxmlのほう使います。
詳しい資料ありがとうございました。

412 名前:デフォルトの名無しさん [2008/09/11(木) 15:42:25 ]
>>411
MSの機能以外を使って良いなら、いったんVC2008とboostのバイナリパッケージをインストールして
serializationを使ってXML操作DLLやLIBを作成してVC6でそれを利用するという手をある。
上位のライブラリをVC6で使えるかはよくわからないけど、
DLLにしてあればMinGWやBCCやVCで共通に使えるので平気と思う。

413 名前:デフォルトの名無しさん [2008/09/11(木) 15:45:08 ]
boostのバイナリパッケージはここにある。次に対応している。
Visual C++ 7.1 (Visual Studio 2003), 8.0 (Visual Studio 2005), and 9.0 (Visual Studio 2008)

www.boostpro.com/products/free

414 名前:デフォルトの名無しさん [2008/09/11(木) 17:15:00 ]

このサイトで解説している、以下の部分
www.sutosoft.com/oldroom/devdiary/20020505.html
// ●ファイルから読み込む。●
lpXMLDoc->put_async(VARIANT_FALSE);
VARIANT FilePath;
::VariantInit(&FilePath);
FilePath.vt = VT_BSTR;
V_BSTR(&FilePath) = ::SysAllocString(L"test.xml");
VARIANT_BOOL result;
lpXMLDoc->load(FilePath, &result);
::VariantClear(&FilePath);

わざわざファイル名を指定するのにVARIANT型を使うのは何故ですか?
CString型でパス名指定したりして読めれば楽なのですが・・・
実行ファイルと同じフォルダにtest.xmlを置いても、読み込みできていないよう
です。
::VariantInit〜::VariantClearで囲うことの意味、
V_BSTR(&FilePath) と、一見関数に見えるものに代入演算子が付いている意味など、
VARIANT型を扱う処理が全体的に分からず困ってます。

415 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 18:00:39 ]
DOM(Document Object Model)、COM(Component Object Model)の約束なのでしかたがないのでは?


Microsoft社が提唱する、部品化されたプログラムを作成・利用するための基盤となる技術仕様。
特定の機能のみを持つプログラム部品を組み合わせることでアプリケーションソフトの開発が容易になる。
この仕様に基づいてデータのやりとりができるプログラム部品のことをCOMコンポーネントと呼ぶ。
COMコンポーネントは開発に使った言語やコンポーネントのある場所などに拠らず、
どの言語からでも、どこからでも利用することができる。
ネットワークを通じて別のコンピュータ上にあるCOMコンポーネントを利用する技術をDCOMと言う。
これらの技術はWindowsだけでなく、UNIXやMac OSにも移植されている。
コンポーネント開発が楽にできるよう改良された次世代のCOM+の開発が進んでおり、
Windows DNAの中核技術として期待されている。
bizex.goo.ne.jp/tool/it/8_77/209/


416 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 19:01:57 ]
そういうのはVBで扱う前提だからVCだとめんどくさい

417 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 19:58:31 ]
CComVariantとか使うべき

418 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 23:08:34 ]
char str[20]とかいうのがあって
strが"abcd%EFG"だったときに
%以前の文字を削る(str="EFG"にする)にはどうしたらいいですか?


419 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 23:31:26 ]
>>414
#importでのraw_interface_onlyやめろ。
それを無くすと、高水準なラッパを作ってくれてめちゃくちゃ楽になる。
例えば、loadメソッドならVARIANTやBSTRを使わず文字列を直接渡せるようになる。

420 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 23:32:59 ]
size_t length = strlen(str);
char * rp = str; // read
char * wp = str; // write

while (rp != '\0') {





421 名前:デフォルトの名無しさん [2008/09/12(金) 11:37:10 ]
>>419
詳しく教えてください。
#importから、raw_interface_onlyを削除しました。

しかし、あいかわらずloadメソッドではVARIANT型、VARIANT_BOOL型のふたつの
引数が要求されます。

IXMLDOMDocument* を定義してから、インスタンスを生成し、ファイル名を指定
して読み込み、ノードを指定してい読み込んでくるまでの
一連の流れを教えていただけると幸いです。

422 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 11:46:14 ]
初心者スレでやることとは思えない

423 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 11:56:30 ]
コピペ

pDoc->load(_variant_t(L"majissuka.com/NewInfo.xml"),

424 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 11:59:33 ]
ファイルなら絶対指定では
file:///C:/windows/test.txt
かな? test.txtでもいいとはおもう。

425 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 12:13:02 ]
>>418
> char str[20]とかいうのがあって
> strが"abcd%EFG"だったときに
> %以前の文字を削る(str="EFG"にする)にはどうしたらいいですか?
>
char *p;
p = strchr(str,'%');
p++;
strcpy(str,p);

426 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 12:20:56 ]
これでいけたけど・・・
#include <msxml.h>
#include <comdef.h>
#include <atlbase.h>

int main(){
CoInitialize(NULL);
IXMLDOMDocument* lpXMLDoc;
CoCreateInstance(CLSID_DOMDocument, NULL, CLSCTX_INPROC_SERVER, IID_IXMLDOMDocument, (void**)&lpXMLDoc);
// ●ファイルから読み込む。●
VARIANT_BOOL result;
lpXMLDoc->put_async(VARIANT_FALSE);
lpXMLDoc->load(_variant_t(L"test.xml"), &result);

// ●ノード検索●
IXMLDOMNodeList* lpNodeList;
BSTR NodePath = ::SysAllocString(L"Test/Item");
lpXMLDoc->selectNodes(NodePath, &lpNodeList);
::SysFreeString(NodePath);
long lLength;
lpNodeList->get_length(&lLength);
for (int i = 0; i < lLength; i++){
IXMLDOMNode* lpItem;
lpNodeList->get_item(i, &lpItem);
BSTR str;
lpItem->get_text(&str);
USES_CONVERSION; printf("%s\n", W2A(str));
SysFreeString(str);
lpItem->Release();}
lpNodeList->Release();
lpXMLDoc->Release();
CoUninitialize();}

427 名前:デフォルトの名無しさん [2008/09/12(金) 17:59:27 ]
>>423-424,426
ありがとうございます。
やはりうまくビルドできないですが・・・
引き続き試行錯誤しつつ、XML関連のスレのほう除いてみます。


ところで、CEdit型のエディットコントロールの、それ自身のウィンドウ内での座標をゲットおよびセットする関数ってありますか?
(つまり、事後的にプログラム内で任意で位置を変更したい)
SetRect(),GetRect()だと思ったらコレはこのコントロール内での座標のことのようでした。

428 名前:デフォルトの名無しさん [2008/09/12(金) 19:02:06 ]
ふと思ったんだがCDとかDVDとかって
Diskか?
Discか?

429 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 19:05:27 ]
Discは光学メディア
Diskは磁器媒体

430 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 19:13:23 ]
CDはソニーが作ったから



431 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 19:21:35 ]
サンクス!
そう言う区分だったのか
ってことはCD/ DVDを「Disk」って書いちまった資料を全部直さないとか・・・


432 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 19:26:55 ]
ja.wikipedia.org/wiki/Universal_Disk_Format
Universal Disk Format (ユニバーサルディスクフォーマット、UDF)は光ディスク用のファイルシステムである。

433 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 19:46:30 ]
>Discは光学メディア
>Diskは磁器媒体
MOはどっち?

434 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 19:46:43 ]
e-words.jp/w/E58589E38387E382A3E382B9E382AF.html
光ディスク 【optical disk】
データの読み書きにレーザー光を利用する記憶媒体のこと。
CDやDVD、PDなどが代表的な光ディスクである。

435 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 19:48:37 ]
e-words.jp/w/E58589E7A381E6B097E38387E382A3E382B9E382AF.html
光磁気ディスク 【MO】
読み方 : ひかりじきディスク
別名 : Magneto-Optical disk

436 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 20:19:20 ]
VC2008でテキストボックスに0x01と表示するにはどうしたらいいですか?
unsigned char buf[2] ={0x01,0x02};
textBox1->Text = buf[0];

と実行したらエラーがでます。
error C2664: 'void System::Windows::Forms::Control::Text::set(System::String ^)' : 1 番目の引数を 'unsigned char' から 'System::String ^' に変換できません。(新しい機能 ; ヘルプを参照)
1> 使用可能なユーザー定義された変換演算子がない、または
1> 演算型のボックス化された形式からターゲット型への標準変換は存在しません

437 名前:デフォルトの名無しさん [2008/09/12(金) 20:24:20 ]
>>436
unsigned char *buf[2] ={"0x01","0x02"};
textBox1->Text = buf[0];


438 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 20:40:21 ]
>>437
その方法でもエラーがでまます。
error C2440: '初期化中' : 'const char [5]' から 'unsigned char *' に変換できません。
Hexデータをテキストボックスに表示したいだけなのに。難しい

439 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 21:14:27 ]
テキストボックスに "あいう"と表示してみろ

440 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 21:17:46 ]
>438
テキストボックスはテキストを表示する所だから
Hexデータは表示できない



441 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 22:53:49 ]
基本的なことなんですけど


文字判定でスペースが入力されたら 「空白です」 と表示させたいんですけど、誰かご教授ください


442 名前:デフォルトの名無しさん [2008/09/12(金) 22:57:06 ]
C++を初めてインスコしたんですけど、
製品の登録ってなんですか?
無料ですか?


443 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 22:58:38 ]
有料

444 名前:デフォルトの名無しさん [2008/09/12(金) 23:00:42 ]
そうですか。

いくらですか?


445 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 23:09:11 ]
>>438
抜粋
private: System::Void Showbutton_Click(System::Object^ sender, System::EventArgs^ e)
{
array<System::String^>^ Numdata = {L"0x01",L"0x02",L"0x03",L"0x04"};
if(i < Numdata->Length)
this->textBox1->Text = Numdata[i];
else{
i = 0;
this->textBox1->Text = Numdata[i];
}
}
private: System::Void NextShowbutton_Click(System::Object^ sender, System::EventArgs^ e)
{
i++;
}

446 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 23:15:48 ]
>441
キー入力をチェックしてもいいけど
マウスで入力する場合もありえるから
入力内容が変った時のイベントでやるのが無難

447 名前:デフォルトの名無しさん [2008/09/14(日) 01:09:45 ]
Express 2005で3連休プログラマーなんだけど、

 String^ folderName;

の ^ ってなに?



448 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 01:26:01 ]
>>447
ハットサイン、或いは山形アクセント記号。

449 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 01:30:56 ]
C++/CLIのスレで聞いて来いw

450 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 08:42:37 ]
C++/CLIとC++は別の言語。
C++を勉強したいならVisual studioのCLRのカテゴリには手を出すな。




451 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 10:09:05 ]
今まで普通に使えていたのですが突然MessageBoxが使えなくなりました。

1>.\main.cpp(135) : error C3861: 'MessageBox': 識別子が見つかりませんでした

とエラーが出ます。コードは
if(MessageBox(hWnd,"あ","あ",MB_YESNO) == IDYES)
等で文字セットはマルチバイト文字です。windows.hもインクルードしてあるのですが何がいけないのでしょうか。
VS2008再インストールしても直りません。

452 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 10:32:27 ]
デフォルトはマルチバイトじゃないはずだから
いらんところいじってるだろ

453 名前:デフォルトの名無しさん [2008/09/14(日) 10:58:11 ]
MessageBoxAだとかMessageBoxWとかにしてやってみたらー(

454 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 11:41:04 ]
プロジェクトの設定にある文字セットってどういう意味なの?
あの設定によってコンパイルが通らなくなるし。

455 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 13:12:52 ]
マルチバイトかUnicodeか

456 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 13:17:03 ]
>>455
exeファイルを配布する上で、文字セットの設定が問題になるの?

457 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 13:24:35 ]
Unicode: NTネイティブ、9xでは原則として動かない
マルチバイト: NT/9x両方で動くけど、NTではAPI内部で変換がかかるのでオーバーヘッド有り。

458 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 14:10:02 ]
>>457
なるほど。参考になります。
文字コードに「設定なし」とあるけどこれは一体?

459 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 14:15:19 ]
いや、9xの時代から、APIはAとWの両方あったような記憶があるけど。

460 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 14:26:05 ]
>>458
基本的にはマルチバイトと同じ。
ただ、<tchar.h>の中の一部に、なし/マルチバイト/Unicodeの3つで切り替わるやつが存在する。
例えば_tcscpy→strcpy/_mbscpy/wcscpy。
mbs版は2バイト文字の2バイト目が欠ける事態にならないなどといった効果を持っていることが多い。

>>459
エントリポイントだけはあるが、実装されているのはごく一部の例外的存在。
msdn.microsoft.com/en-us/library/ms813063.aspx



461 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 14:32:09 ]
TEXT/_Tマクロをちゃんと使った参考書って少ないよな

462 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 14:49:42 ]
>>461
正直、文字列は、ワイドかマルチバイトか決めうちにして、それは使わないほうがいいんじゃないかって気がする。

463 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 17:39:00 ]
自分ひとりでやるなら勝手だろうけど
マクロ使ってない糞サンプルばらまかれると迷惑する

464 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 18:07:04 ]
大人数でやるところほど、きめうちしたほうが無難っていうか。

ジェネリックテキストつかってても、ワイド文字版と、マルチバイト版と両方でテストやってるところなんてほとんどないだろうし。
文字列を編集してる処理とか、ちゃんと、マルチバイトでもワイド文字でも動くように意識して書いてなかったりするだろうし。
テスト以前に、コンパイル通すとかもやってないだろうし。
古いコードをあさったら、char *p = _T("・・・・"); みたいのいっぱいあるだろうし。

中途半端に対応しても、どうせ片方でしか動かないコードなら、きめうちのほうが安全だと思われ。

465 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 18:58:07 ]
そういう場合は開発環境も限定するだろ
特定の環境でしかコンパイルできないサンプルをばらまかれると皆が迷惑する

466 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 19:24:42 ]
いや、ジェネリックテキストなんて、VCにしかないでしょ。

467 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 19:28:35 ]
>>466
またまた御冗談を

真面目な話、BCCでもGCCでも<windows.h>が使えるやつならどれでも使える。
<tchar.h>も結構存在するし。

468 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 20:36:49 ]
それでもWindows限定じゃん。

469 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 20:42:29 ]
まあWindows APIだしね。

470 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 20:48:41 ]
>>465
それはジェネリックテキストを使っても、ぜんぜん解決してない。



471 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 06:11:10 ]
C#でメソッドなどの一行上に"///"書くことで自動生成されるXMLのドキュメント

/// <summary>
///
/// </summary>
/// <param name="i"></param>
/// <returns></returns>
public int hoge(int i) { return 0; }

このような機能はC++ではないのでしょうか
クラスやメソッドをオブジェクトブラウザで参照したいのですが,うまくいきません.
どのようにすればいいか教えていただけませんでしょうか.
お願いします.

472 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 06:19:51 ]
C++はプログラミング言語です

473 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 09:00:10 ]
テキストボックスを使わずに、キースキャンで読み取った文字から漢字辞書変換をしたいのですが
できるでしょうか?どのようにすればいいですか?

474 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 09:15:21 ]
IME使う


475 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 09:29:19 ]
説明してあるHPなんかあったら紹介して欲しいです

476 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 09:44:21 ]
つ[msdn]

477 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 09:52:50 ]
初心者にやさしくヽ(`Д´)ノ

478 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 10:03:22 ]
msdn.microsoft.com/ja-jp/library/cc448105.aspx
ここにIME関連のapiの一覧があるから
適当なapiの名前でぐぐれば何か見つかる

479 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 10:06:30 ]
ありがd

480 名前:デフォルトの名無しさん [2008/09/16(火) 18:04:42 ]
VC6でDirectXを使いたいです。
本格的なゲーム作るわけじゃないんですが、
ある業務用ソフトの画面効果で軽い2D処理が必要になりまして。(スプライトが
使えればいい程度)

ウェブを見た限りではVC6で使う情報はあまり無かったようです。
9.0のSDKと、VC6で使えるようになるという2004 Summer Extrasは入手しました。

ライブラリをインクルードするところから知りたいです。



481 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 18:22:45 ]
質問です。

VisualC++ 6.0 MFC
WindowsXP SP3

の環境で作成した、画面をビットマップ保存するプログラムを、
別のPC
VisualC++ 6.0
WindowsXP SP3

の同じ環境で実行すると、作成されたBMP画像が「描画できませんでした」となってしまいます。

この場合、どのようなことが原因だと考えられますでしょうか?
また対応策はあるのでしょうか?
どうかご教授おねがいします。

482 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 18:29:52 ]
業務用ソフトだったら外注に頼むだけ






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

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

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