[表示 : 全て 最新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辺り。

357 名前:356 mailto:sage [2008/09/08(月) 00:25:56 ]
正しくは「'scanf' の宣言を確認してください。」でした。

358 名前:356 mailto:sage [2008/09/08(月) 00:33:44 ]
すみません。自己解決しました。
Visual C++2005からの仕様変更が原因だったみたいですね。。

お騒がせしました。長らくのお付き合いありがとうございました

359 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 00:34:45 ]
それは2005以降出るよ。
詳しくは、そのエラーの行でF1押して出たページの「CRT のセキュリティ強化」を読むといい。
その関数使う事が決まってるなら無視してもいいし、気になるならヘルプに出なくする方法も書いてある。
scanf以外にも、printf系、str〜系で出る。

360 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 01:34:31 ]
移植性?なんだそれ?そんなの知らん!
俺はMSと心中するんだと言う気持ちならscanf_sなど_s系が付いた関数を使えば良いよ

361 名前:デフォルトの名無しさん [2008/09/08(月) 10:26:31 ]
すんません
VC++6.0(MFC)でテキストエディタ作れと言われたのですが、
最初の最初でつまづいてます。
プロジェクト新規作成→MFC→SDIアプリ→→で、初期のスケルトン作成。

その後ですが、IDR_MAINFRAMEのフォームの白い部分(メニューバーを除く全部
の領域)を全体的にテキスト入力欄にするにはどう操作すればいいですか?

ダイアログベースのプログラムならテキストボックス置けばいいだけですが、
SDIアプリケーションの場合はどうするのでしょうか?

362 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 10:32:15 ]
>>361
MFCだといくつかのやり方があって、どういう点を学習してるかによるが、、、
CViewをCEditViewに替えるだけでいけるけど、、、

Editコントロールを貼り付けるのなら、メンバーにCEditでも置いて
ウィンドウのOnCreateで一緒にCreateしてやって、OnSize時に
CEditをクライアントエリアと同じ大きさにしてやればいい。

363 名前:デフォルトの名無しさん [2008/09/08(月) 12:04:29 ]
>>362
ありがとうございます。
なんとか後者の方法でエディットボックス設置はできました。

あとは
・起動時にウィンドウのクライアント領域と合わせる
・リサイズ時にも合わせる

のようにしたいですが、ウィンドウサイズの初期値設定、クライアント領域の現在値の取得などはどのようにすれば良いですか?



364 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 12:10:38 ]
クライアントのサイズはGetClientRect()というのがあるけど、
WM_SIZEのハンドラ、OnSizeの引数に幅と高さもあるから、それそのまま使えばいい。
起動時にリサイズ(WM?SIZE)も来るから、起動時のことは考えなくてもいい。

365 名前:デフォルトの名無しさん [2008/09/08(月) 16:42:03 ]
>>364
ありがとうございます。
試行錯誤した結果、やはりCEditViewにすることにしました。

www.vcppclub.com/kouza/nextstep1/mdieditor1.html
ここを見たら1行も書かずに、読み込み/保存機能はできてしまったのですが、疑問が。

ファイル読み込みのダイアログを出す→ユーザーが選択したファイルを読み込む→テキストエリアに表示
保存も同様。

これらに必要な処理がどこにも書かれていないような気がするのですが。

調べていた段階で、メンバ関数 OnFileOpen() を作成し、
GetOpenFileName();でダイアログを出し、
CFile型に読み込む手順が必要そうだったのですが、
自動生成されたソースではどこにも書かれていません。
にもかかわらず読み書きできるのが疑問です。
(サイトのサンプルはMDIですが、SDIでもほとんど同じのようです)



366 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 17:33:51 ]
その辺はMFCとDocumentViewアーキテクチャの話だからなあ。
CWinAppからCDocument、CEditViewの操作はMFCの中に含まれている。
もちろん、自分で変更することも可能。

367 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 18:35:50 ]
派生した部分しか見てないんだろ

368 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 21:37:06 ]
オリビア派生

369 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 02:47:07 ]
VisualStudioのエディタのタブや改行の記号表示について質問があります.
デフォルトの表示を変更したいのですがどのようにすればよいのでしょうか?

具体的には改行文字を$にタブ文字を>---という風に変更したいのですが

370 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 06:11:23 ]
ひとりごとです

371 名前:デフォルトの名無しさん [2008/09/09(火) 10:49:53 ]
CEditViewでの、現在表示されている文字列を格納しているメンバは何ですか?
入力されたものを文字列型にコピーして保存やらなにやらいろいろやりたいのですが。
逆に文字列型に格納された文字列を表示する方法も。

そういったテキストバッファの操作のしかたがいまいち分からないです

372 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 11:00:09 ]
エディットコントロール自身がバッファを持ってる
普通は直接バッファいじらないでメンバ関数使ってアクセスする

373 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 11:18:51 ]
普通はCDocumentの派生クラスに自分でデータ構造作ってビューはその表示方法書いたりするけど
CEditViewは特殊だからな。GetEditCtrl()でCEditのインスタンスが取れるのでそれを操作すればいい。

374 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 11:28:37 ]
typedef struct tagTest {
unsigned int x :1;
} Test;

このようなコードを見かけたのですが、「:1」は何を意味しているのでしょうか。

375 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 11:31:25 ]
>>374
ビットフィールド



376 名前:374 mailto:sage [2008/09/09(火) 11:43:07 ]
素早い回答、ありがとうございました。

377 名前:デフォルトの名無しさん [2008/09/09(火) 13:53:02 ]
>>372-373
なるほど。
CEditのメンバ関数見るとそれらしいものがあるようですね。
しかし、GetLine()のように、行ごとに取得してくる関数はあるみたいですが、
「とりあえず改行も含めて全体をCStringにコピー」するようなものは見当たらないです。

全部の行を走査してコピーする部分は自分で作成しないとダメですか?

378 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 14:02:47 ]
全取得はGetWindowText()
これはCEditでも、CEditViewでも使える。

379 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 14:06:23 ]
>>377
MSDNを見るときは、継承元のクラスのメンバも見よう。
GetWindowText()で取れるんじゃね?

って書いてたら先を越されたw

380 名前:デフォルトの名無しさん [2008/09/09(火) 14:28:49 ]
>>378-379
おぉ ありがとうございます!
MSDNの見かたを訓練するようにします。

ところでもうひとつ質問が。
MainFrameのメニュー選択によりそれらの動作をさせたいのですが、

void CMainFrame::On????(){

}
↑ここの記述で、
MainFrameのほうからViewを操作するにはどのようにすれば良いですか?
C(アプリ名)Viewクラスのインスタンス名が分かれば「名前.関数名」のような形
で呼び出せると考えたのですが、
どこにも宣言部分が見当たらないようです。

381 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 15:12:49 ]
>>380
えーと、SDIだったよな?
CFrameWnd::GetActiveView()でどうか。

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内部で変換がかかるのでオーバーヘッド有り。






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

前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