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

390:デフォルトの名無しさん
08/09/10 15:16:29
なんかおかしいね。
PCの時計はくるってない?

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

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

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

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

395:デフォルトの名無しさん
08/09/10 19:45:00
ヌルポ

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

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

398:デフォルトの名無しさん
08/09/11 01:20:13
そのwaitに一体何の意味が?

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

400:デフォルトの名無しさん
08/09/11 08:08:02
何のために待つのか考えろよ

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

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

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

次レスに続きます

402:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/09/11 09:51:27
>>401
VC2008とboostいれようぜ。
そしたら簡単。serializationとか

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

405:401
08/09/11 09:57:19
すんません
業務で、VC6と指定なのです。

406:デフォルトの名無しさん
08/09/11 10:02:12
この辺参照。

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




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

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

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

URLリンク(www.utj.co.jp)
URLリンク(www.utj.co.jp)
URLリンク(www.sutosoft.com)
URLリンク(www.sutosoft.com)
URLリンク(hp.vector.co.jp)
URLリンク(www.s34.co.jp)

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

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

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

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

URLリンク(www.boostpro.com)

414:デフォルトの名無しさん
08/09/11 17:15:00

このサイトで解説している、以下の部分
URLリンク(www.sutosoft.com)
// ●ファイルから読み込む。●
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:デフォルトの名無しさん
08/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の中核技術として期待されている。
URLリンク(bizex.goo.ne.jp)


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

417:デフォルトの名無しさん
08/09/11 19:58:31
CComVariantとか使うべき

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


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

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

while (rp != '\0') {



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

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

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

422:デフォルトの名無しさん
08/09/12 11:46:14
初心者スレでやることとは思えない

423:デフォルトの名無しさん
08/09/12 11:56:30
コピペ

pDoc->load(_variant_t(L"URLリンク(majissuka.com)"),

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

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

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


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

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

429:デフォルトの名無しさん
08/09/12 19:05:27
Discは光学メディア
Diskは磁器媒体

430:デフォルトの名無しさん
08/09/12 19:13:23
CDはソニーが作ったから

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


432:デフォルトの名無しさん
08/09/12 19:26:55
Wikipedia項目リンク
Universal Disk Format (ユニバーサルディスクフォーマット、UDF)は光ディスク用のファイルシステムである。

433:デフォルトの名無しさん
08/09/12 19:46:30
>Discは光学メディア
>Diskは磁器媒体
MOはどっち?

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

435:デフォルトの名無しさん
08/09/12 19:48:37
URLリンク(e-words.jp)
光磁気ディスク 【MO】
読み方 : ひかりじきディスク
別名 : Magneto-Optical disk

436:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/09/12 20:24:20
>>436
unsigned char *buf[2] ={"0x01","0x02"};
textBox1->Text = buf[0];


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

439:デフォルトの名無しさん
08/09/12 21:14:27
テキストボックスに "あいう"と表示してみろ

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

441:デフォルトの名無しさん
08/09/12 22:53:49
基本的なことなんですけど


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


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


443:デフォルトの名無しさん
08/09/12 22:58:38
有料

444:デフォルトの名無しさん
08/09/12 23:00:42
そうですか。

いくらですか?


445:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/09/12 23:15:48
>441
キー入力をチェックしてもいいけど
マウスで入力する場合もありえるから
入力内容が変った時のイベントでやるのが無難

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

 String^ folderName;

の ^ ってなに?



448:デフォルトの名無しさん
08/09/14 01:26:01
>>447
ハットサイン、或いは山形アクセント記号。

449:デフォルトの名無しさん
08/09/14 01:30:56
C++/CLIのスレで聞いて来いw

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


451:デフォルトの名無しさん
08/09/14 10:09:05
今まで普通に使えていたのですが突然MessageBoxが使えなくなりました。

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

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

452:デフォルトの名無しさん
08/09/14 10:32:27
デフォルトはマルチバイトじゃないはずだから
いらんところいじってるだろ

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

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

455:デフォルトの名無しさん
08/09/14 13:12:52
マルチバイトかUnicodeか

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

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

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

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

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

>>459
エントリポイントだけはあるが、実装されているのはごく一部の例外的存在。
URLリンク(msdn.microsoft.com)

461:デフォルトの名無しさん
08/09/14 14:32:09
TEXT/_Tマクロをちゃんと使った参考書って少ないよな

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

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

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

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

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

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

466:デフォルトの名無しさん
08/09/14 19:24:42
いや、ジェネリックテキストなんて、VCにしかないでしょ。

467:デフォルトの名無しさん
08/09/14 19:28:35
>>466
またまた御冗談を

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

468:デフォルトの名無しさん
08/09/14 20:36:49
それでもWindows限定じゃん。

469:デフォルトの名無しさん
08/09/14 20:42:29
まあWindows APIだしね。

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

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

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

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

472:デフォルトの名無しさん
08/09/15 06:19:51
C++はプログラミング言語です

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

474:デフォルトの名無しさん
08/09/15 09:15:21
IME使う


475:デフォルトの名無しさん
08/09/15 09:29:19
説明してあるHPなんかあったら紹介して欲しいです

476:デフォルトの名無しさん
08/09/15 09:44:21
つ[msdn]

477:デフォルトの名無しさん
08/09/15 09:52:50
初心者にやさしくヽ(`Д´)ノ

478:デフォルトの名無しさん
08/09/15 10:03:22
URLリンク(msdn.microsoft.com)
ここにIME関連のapiの一覧があるから
適当なapiの名前でぐぐれば何か見つかる

479:デフォルトの名無しさん
08/09/15 10:06:30
ありがd

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

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

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

481:デフォルトの名無しさん
08/09/16 18:22:45
質問です。

VisualC++ 6.0 MFC
WindowsXP SP3

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

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

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

482:デフォルトの名無しさん
08/09/16 18:29:52
業務用ソフトだったら外注に頼むだけ

483:デフォルトの名無しさん
08/09/16 18:30:32
多分、ビットマップが微妙に正しく生成されていないのだろう
別のPCで、BMPファイルは何と関連付けされてるの?
ペイント?Windowsのビューア?IE?

対策:「画面をビットマップ保存するプログラム」のソースを見直す

484:デフォルトの名無しさん
08/09/16 18:42:21
画面をビットマップ保存するプログラム

作成されたBMP画像が「描画できませんでした」

本当にお前が作ったプログラムか?
ソースコピペしたら動きましたレベルだろ

485:デフォルトの名無しさん
08/09/16 18:54:08
>>483
Windowsのビューアです。プログラムを見直したいと思います。
>>484
そうです、申し訳ありません。
ですが、同じ環境のPCなのに失敗するのは何が原因と考えられるのでしょうか?
よろしくお願いします。

486:デフォルトの名無しさん
08/09/17 00:19:45
考えられる原因は無限にある。
せめてどこで失敗するのか突き止めろ。

487:デフォルトの名無しさん
08/09/17 06:44:43
>>481
モニターのカラーのビット数が違うとか


488:デフォルトの名無しさん
08/09/17 06:48:41
何も知らない初心者がC#ってやつから始める事にしたお。
その次はJAVAかな。地味に頑張るお。新兵に激励を頼むお。

489:デフォルトの名無しさん
08/09/17 07:58:15
貴様は人間ではない!糞ほどの価値もない!
C#訓練に生き残れたら、プログラムの司祭となる!
サービス残業に命を捧げるTI土方だ!

490:デフォルトの名無しさん
08/09/17 09:22:37
ビットマップの作成で失敗するか、表示で失敗するかぐらい確認しろ
それぞれの環境で両方のビットマップ表示したらわかるだろ

491:デフォルトの名無しさん
08/09/17 16:09:06
std::vectorに自分で作ったクラスのオブジェクトのポインタ入れてあるんですけど
clear()をすると、保持してるポインタのさしてるオブジェクトをdeleteしてくれるんでしょうか?

492:デフォルトの名無しさん
08/09/17 16:44:02
スレ違い

493:デフォルトの名無しさん
08/09/17 16:54:08
>>492
死ねアホ。

494:デフォルトの名無しさん
08/09/17 16:57:32
std::vectorに自分で作ったクラスのオブジェクトのポインタ入れてあるんですけど
clear()をすると、保持してるポインタのさしてるオブジェクトをdeleteしてくれるんでしょうか?

495:デフォルトの名無しさん
08/09/17 17:05:43
ここC++スレじゃないけど

496:デフォルトの名無しさん
08/09/17 17:07:42
>>494
boost::ptr_vectorを使うか、boost::smart_ptrでポインタを包む

497:デフォルトの名無しさん
08/09/17 17:08:26
Visual 「「「「C++」」」」」」

498:デフォルトの名無しさん
08/09/17 17:08:28
×boost::smart_ptr
○boost::shared_ptr

std::auto_ptrはだめです

499:デフォルトの名無しさん
08/09/17 17:12:02
>>496>>498
要するに勝手にdeleteまではしてくれないということですね?
boostの使用も検討してみます。ありがとうございました。

500:デフォルトの名無しさん
08/09/17 17:12:37
数学の授業で小学校レベルの算数の質問されたら迷惑だろ
いちおう関係なくはないけど

501:デフォルトの名無しさん
08/09/17 17:15:39
↑今日一番のアホ

502:デフォルトの名無しさん
08/09/17 17:31:33
>492,495,500
痛いな

503:デフォルトの名無しさん
08/09/17 18:00:34
寧ろ>493,497,501,502が痛い罠。

504:デフォルトの名無しさん
08/09/17 18:14:29
いやいや、俺に言わせれば
>502,503
が必死w

505:デフォルトの名無しさん
08/09/17 18:15:20
C++やC#やるのにどのソフトがお勧めとかある?

506:デフォルトの名無しさん
08/09/17 18:28:10
とりあえず2008 Express Edition使っとけ

507:デフォルトの名無しさん
08/09/17 18:50:45
Microsoft Visual Studio 2008 Express Editionの事?
無料でいいのか?とか不安に思った
Visual Studio .NET Professional普通にこっちのがいいかとも思ったけど
Express Editionでも平気ならそっちでいいか

508:デフォルトの名無しさん
08/09/17 19:19:56
お前に使えるのか不安に思った

509:デフォルトの名無しさん
08/09/17 20:36:02
むむ…初心者を舐めたらいかん
きっとなんとかなる…はず…多分…恐らく…

510:デフォルトの名無しさん
08/09/17 21:23:22
>>507
グダグダ言ってる間に使ってみればいいだろ

511:デフォルトの名無しさん
08/09/17 21:41:18
>>499
VC++ 2008にSP1当ればboostなくてもstd::tr1::shared_ptrが使える。

512:デフォルトの名無しさん
08/09/18 18:39:27
数日前までうまく言っていたのに、急にコンソールウィンドウを
最大化しないと見られなくなりました。
原因が分からないのでどなたか教えてください

513:デフォルトの名無しさん
08/09/18 20:22:37
VC6で、ウィンドウ上部のメニューやツールバーアイコンを、
必要に応じて適宜、グレー可(クリック不可なようにする)などの変更をする方法教えてください。

514:デフォルトの名無しさん
08/09/18 21:07:25
Enable: ボタンを選択可能または選択不可能に設定します。

515:デフォルトの名無しさん
08/09/19 09:06:37
CとC++の違いって何ですか?

516:デフォルトの名無しさん
08/09/19 10:07:07
一言では言い表せない

517:デフォルトの名無しさん
08/09/19 14:06:30
VC++とBorland C++Builderってどっちのほうがつかいやすい?
低スペPCの俺には無理?

518:デフォルトの名無しさん
08/09/19 14:35:32
人による

519:デフォルトの名無しさん
08/09/19 15:15:31
VC++のほうが低スペック
コンパイル速度はBCC

520:デフォルトの名無しさん
08/09/19 15:18:52
そんなどうでもいいことで選ぶやつもいるんだ

521:481
08/09/19 17:35:10
>>486
ビットマップの作成で失敗していると思われます。
プログラムの作成に使用したPCではビットマップ画像のファイルの大きさが2,521KB
に対して、プログラムを移行させたPCではファイルの大きさが1,262KBで作成されてしまいます。

>>487
プログラムを移行させたPCが手元にないのでわかりませんが、調べて同じにしてみたいと思います。

>>490
上にも書いたとおり、ファイルの大きさが違うので作成で失敗していると思われます。

よろしくお願いします。

522:デフォルトの名無しさん
08/09/19 17:56:20
>>517
VCスレきたんだからおとなしくVCつかっときな
BCのほうはただでさえ人少ないのに
偏屈なこだわりがある自称玄人ばかりだから
ネットの情報すくないし何を聞くにしても大変
だからといってVCはましなのかというと腐ってるわけだがBCほど腐ってない



523:デフォルトの名無しさん
08/09/20 16:48:08
VC6で、DirectXのAPIを使わずに、スプライトなどの2Dグラフィックス表現を実現する簡単な方法はありますか?
オートシェイプのような簡単な画面レイアウトソフトを作りたいのですが、
標準のコントロールやCViewクラスの描画メソッドでは、重なりや透過などの指定に限界が出てきてしまうようです。
オブジェクトをドラッグで移動したり拡大縮小したりにも対応させたいので、
ゲームプログラムに近い作り方で各オブジェクトをスプライトとして扱いたいのです。

業務用で使うツールとして、DirectXが動くかどうか怪しい環境でも使うことを想定しているので。
DirectXのAPIを使うことは無しの方向で、いろいろ模索しています。


524:デフォルトの名無しさん
08/09/20 16:52:36
bitbitがある


525:デフォルトの名無しさん
08/09/20 16:59:53
このソースで初めて、windowsの標準で描写できるのを知った

おまいらSaGa4つくろうぜ!
URLリンク(www.geocities.jp)

526:デフォルトの名無しさん
08/09/20 17:12:53
VC++でソースをかいてビルドするのですが、
VC++が応答なしになってしまってビルドできません。
これはスペックの問題でしょうか?

ちなみに警告やエラーはありません。

527:デフォルトの名無しさん
08/09/20 17:31:06
正直向いてない

528:デフォルトの名無しさん
08/09/20 20:25:09
bitbltだろww

529:デフォルトの名無しさん
08/09/20 21:32:17
当然とは思ったけど念のため手持ちのゲームを解析してみたら
必ずしもDirectXは使ってないね

530:481
08/09/20 22:24:56
解決しました。

>>487さんがおっしゃってたことを試しました。
プログラムに使用したPCのモニターのカラーのビット数を最高(32ビット)から16ビットにして
ビットマップを作成すると、1,262KBの描画できていないビットマップが作成されました。

なので移行したPCもモニターのカラーを最高(32ビット)に変更したいと思います。
ありがとうございました。


531:デフォルトの名無しさん
08/09/20 22:29:28
なんつう糞プログラムだ

532:523
08/09/20 23:17:20
>>524 >>525 >>528 >>529

Bitbltですね。ヒントありがとうございます。

スプライト的な使い方ができる解説やサンプルみたいなのありますか?
>>525のソースは見てみましたが、
できればVC6のプロジェクト形式でのサンプルがあればと。

Bitbltを使えば、CViewクラスのビュー上に描画することが可能なのですか?


533:デフォルトの名無しさん
08/09/20 23:21:35
VC++開発においてC#やVBなどで用いられる
IDE機能をもたらすアドインはないでしょうか?

例えば、コメント表示(C#ではコメントはXMLで整理されており
コード内のメンバにカーソルをあわせたときや入力補完のときに
情報ウィンドウにコメントが表示されます)や、
コードチェッカ・整形(C#ではresharperというアドインによって
定義されていないメンバの呼び出しに色づけしたり、
メンバ名変更などのリファクタリングができます)
クラス定義のリンク
(既定・継承クラスへのリンクを列挙したり
名前からクラスやメンバを検索したり、
参照へのリンクも標準のgrepみたいな質素なのではなくて、
名前空間・クラス・メンバで階層化されたものがよいです)

こういった定番的な付加機能のアドインを知りたいです。

あとVSのエディタで宣言部分
(例えば「Vector vec;」でVectorの部分)に色づけをすることはできませんか?

534:デフォルトの名無しさん
08/09/20 23:43:50
コピペ、クレクレ厨かよ

535:533
08/09/20 23:55:04
>>534
お気を悪くされたのでしたら申し訳ありません。
でもコピペではないし、
ここはVC++関連について教えて頂けるスレではないのでしょうか?
クレクレばかりではなく普段自分が教えられることは教えていますし、
事前に一応検索もしました。うまく見つけられなかったので
お力を借りたいと思いここに書きました。

536:デフォルトの名無しさん
08/09/21 00:22:22
その機能ってインテリセンスなんじゃないのか?
あと、特定の単語に色をつける機能はある。Userナントカってファイルがどうのこうの、だったが……忘れた。

537:デフォルトの名無しさん
08/09/21 08:25:41
>535
初心者スレで質問してるんだから初心者だよな?
慣れるまでデフォルト、ノーマルで使っとけ

538:533
08/09/21 19:33:38
>>537
すみません、C++は初心者ですが必要になったから使うだけなので
ガリガリ書いてマスターする気にはなれません
(デフォでやったからといって上達するわけでもないし)。
なので支援機能は是非欲しいのですが皆さんデフォで使ってるのでしょうか?
.NETと比べるとまるでプレーンテキストを読み書きする感覚です。
初心者スレではなく他のスレに書いたほうがいいのかな?

539:デフォルトの名無しさん
08/09/21 19:44:47
C++はマスターしてから書きましょう

540:デフォルトの名無しさん
08/09/21 20:25:18
visual C++の入門書を買おうと思うんですが、どれがいいでしょうか?
プログラミング経験は、あまりないです。(PHPを少し扱える程度)

541:デフォルトの名無しさん
08/09/21 20:34:15
>プレーンテキストを読み書きする感覚
的確な表現だと思うのは俺だけか。


ドットネットが部品を組み合わせて使うものなら、C/C++はその部品を自分で作らなくちゃいけないんだよ。
判りやすく言うと、マゾい。作りたいアプリとは関係ないところで躓くことも多いし、
ちょっと間違えただけで簡単にクラッシュする。一昔前ならOSごと落ちる。

はっきりいって、そのような向上心のない態度ではとてもじゃないが使えない。
時間の無駄。断言できる。結果が出せるまで一年くらいかかることは確定的に明らか。

それでもC/C++を使ってる人たちは、そのような強烈なデメリットを承知の上で、
なおあまりあるメリットを見いだしてるから。
部品を自分で作る必要がある、ってのを、どうとらえるか。
それ次第で、C/C++は便利な道具にも、使えないガラクタにもなる。

いいかね?使う方が言語を選ぶんじゃあない、言語が使い手を選ぶんだ。それがC/C++だ。
わかったらドットネッターにもどるんだな。おまえにも かぞくがいるだろう……

542:デフォルトの名無しさん
08/09/21 20:35:39
ガイル乙www

543:デフォルトの名無しさん
08/09/21 20:36:22
少佐!お疲れ様であります!

544:デフォルトの名無しさん
08/09/21 21:27:48
>538
このへんを参考に
URLリンク(www.microsoft.com)

545:デフォルトの名無しさん
08/09/21 21:28:39
>>541
マスターする気がないといったことは、
バリバリやってるマ様には失礼な発言ですみませんでした。
でもそこまでマゾになんなくても、
楽をするのに努力を惜しまないのがマなのでは?
OSSが巷に溢れる昨今に部品を自作する意味は弱いという考えもありますし、
そもそも今回の話題は部品の自作ではなく環境の整備が焦点です。
あんまりにも環境が貧弱でそれが無駄にC++の敷居を上げている
と思ったのです。
以下は質問なのですが
継承クラスを探すのにはgrepでもやってるのでしょうか?
与える引数の型がミスしてるのを脳内チェックかコンパイラしか
見つけられないのでしょうか?
メンバ名の変更は対象以外が置き換わる危険性を孕んでまで全文置換でしょうか?
細かな仕様(例えば参照渡しで事前に値設定が必要なのかなど)
もわかりづらいと思うのですが、いちいちリファレンスを引くのでしょうか?

546:デフォルトの名無しさん
08/09/21 21:32:51
C++は複雑すぎてインテリセンスできないのです。
C#のように単純な言語ならではなのですインテリセンスは。

547:デフォルトの名無しさん
08/09/21 21:40:51
>>546
インテリセンス(入力補完)はC++でも有効でしょうし複雑さとは
関係がないような気がします。コメント概略が表示されないのは何故…。

548:デフォルトの名無しさん
08/09/21 21:49:20
>>544
ありがとうございます!少し道が開けた感じです。
連投すみませんでした。皆様もよりよい環境でプログラミング
できますように。

549:デフォルトの名無しさん
08/09/22 12:20:40
ここでそんなことをぐだらぐだら聞くよりもやるべきことは他にあるだろうに。

550:デフォルトの名無しさん
08/09/22 18:21:41
URLリンク(forums.microsoft.com)

日本語読まない奴ってどこにでもいるなぁ

551:デフォルトの名無しさん
08/09/22 18:26:45
自分の知らない単語は無意識に飛ばしてるのだろう。
これは日本語でも英語でも同じw

552:デフォルトの名無しさん
08/09/22 18:54:56
>>540の回答お願いします。

553:523,532
08/09/22 18:56:55
Bitbltでオブジェクトを表示したりマスクかけたりする処理についていろいろ調べてみました。
画像とそのマスクを用意して透過するぐらいまではなんとかできるようになりました。

今作ってる表示のメインはテキストや図形なので、とりあえずテキストを貼り付けたCDCオブジェクトを用意したいのですが・・・
どのようにしても表示されず困っています。

viewのOnDrawメソッドで、

CDC* spr=new CDC;
spr->CreateCompatibleDC(pDC);

spr->TextOut(0,0,"テスト文字");
pDC->BitBlt( 0, 0, 300, 300, spr, 0, 0, SRCCOPY);

これで何も出ないです。

TextOutではなくDrawTextでやる方法も試みました。
DrawText(spr->m_hDC,"てすともじ",11,temp,DT_CENTER)

こちらも表示されないようです。

画像表示のときは
CDC::SelectObject()
で、対象のCBitMapを指定すれば良かったようですが、
テキストの場合はどう指定すればよいですか?
VC6なので資料やサンプルが少なくて難儀してます・・・


554:デフォルトの名無しさん
08/09/22 18:58:30
>552
PHPを少し扱える程度じゃVCは無理
もうちょっと初心者向けの言語をお勧めします。

555:デフォルトの名無しさん
08/09/22 18:59:52
>>553
DCはデフォルトでは1x1のモノクロビットマップが選択されている
そのまま描いたらたぶん、1ドットだけBitBltされてると思うよ、よくみてみ。
通常はイメージに限らず、ビットマップを作成してDCに選択し、そこに書き込んでから
ウィンドウにBitBltする。

556:デフォルトの名無しさん
08/09/22 19:20:34
>>555
CBitmapクラスにテキスト(の形)を読み込んで使うということですか?
どのメソッドを使ったら良いか教えてください。

557:デフォルトの名無しさん
08/09/22 19:29:20
コピペ君には教えるだけ無駄

558:デフォルトの名無しさん
08/09/22 21:59:36
メソッドじゃできないよ。CでAPIを直に触らないとダメ

559:デフォルトの名無しさん
08/09/23 00:49:37
>>553
CBitmap::CreateCompatibleBitmapをやって
553で言うところのsprにSelectObject
あとはspr->TextOut or DrawTextしてpDCへBitBlt

手(CDC)に紙(CBitmap)と活字(CFont)を持って(SelectObject)文字を書く(DrawText)
最初は面倒だけどすぐ慣れるよ。

560:デフォルトの名無しさん
08/09/23 13:30:31
>>556
DCにつながってるデバイスってディスプレイだったりプリンターだったりするじゃない?
そういうデバイスを指定しないで作ったDCはビットマップがデバイスなんだよ。
だから自分でビットマップを作りそれをDCに選択してそのDCにTextOutすると
そのビットマップに文字が描かれる。
そのビットマップをウィンドウのDCにBitBltすれば画面上で見られるってわけ。

561:デフォルトの名無しさん
08/09/23 13:42:57
visual studio 2008 express を使用しています。
現在あるオープンソースソフトウェアをソースからビルドしようとしているのですが、
ビルドに際し、環境変数が見つからないと言われます。

windowsOSの環境変数は指定されている通り設定しているのですが、エラーが起こります。
確かvisual studio自体にも環境変数を指定する箇所があったと思うのですが、
場所がわかりません。

visual studio自体に環境変数を指定する場所があるならば、
その方法を教えていただきたいです。

562:デフォルトの名無しさん
08/09/23 13:49:35
すいません。
スレ違いのようですね・・・
失礼いたしました。

563:デフォルトの名無しさん
08/09/23 13:53:25
さようなら

564:デフォルトの名無しさん
08/09/23 16:36:04
新規プロジェクト追加時に、自分で設定した値を常に反映させることは可能でしょうか。
具体的には警告レベルを4として、新規プロジェクトが作成されることを望んでいます。

565:デフォルトの名無しさん
08/09/23 16:48:50
お使いの製品のグレードあるいはユーザーの知的レベルによって可能

566:デフォルトの名無しさん
08/09/23 16:51:39
VS2005EEです。知能は未アカデミックです。

567:デフォルトの名無しさん
08/09/23 18:01:03
エンタープライズエディションをばかにするな あやまれ!!


みたいな。

568:デフォルトの名無しさん
08/09/23 18:35:19
カスタムプロジェクトを使用
マクロで設定
既存のプロジェクトをコピーして使いまわす。
プログラム、スクリプト等で定義ファイルを書き替え
VSにパッチを当てて改造する。

569:デフォルトの名無しさん
08/09/24 15:57:07
C/C++室から誘導されて参りました。
VC++2005の使い方を教えてください。質問は以下です。

> 482 :デフォルトの名無しさん [] :2008/09/24(水) 07:57:18
> VC++2005を利用しています
> 例外を勉強しているのですが、例外を発生させたときに、
> catchで例外を処理しても、デバッガに例外があったことが出力されます
>
> catchで例外を処理するときは、
> デバッガの出力に例外が発生したことが出力されるのを防ぎたいですが、どのようにすればいいでしょうか
>
> 483 :デフォルトの名無しさん [↓] :2008/09/24(水) 12:37:12
> >>482
> 出力って、例外時のデバッガのダイアログ?だったら、デバッグ->例外で設定できる
> デバッグ出力の例外のレポートだったら気にするな。レポートが出すぎて困るのだったら例外の使い方が間違っている。
>
> 484 :482 [] :2008/09/24(水) 13:18:40
> >>483
> れす、ありがとうございます。後者です。
>
> 例外のつかいかたについては勉強していくところです。
> もし、テストケースとかを今後記述するような場合に、デバッグ出力でOFFにできないのか探しています。

570:デフォルトの名無しさん
08/09/24 16:12:20
リリースビルド

571:デフォルトの名無しさん
08/09/24 16:18:03
勉強?
その出力で困るやつがいるのか?
遊びじゃないんだからいい加減にしろ

572:デフォルトの名無しさん
08/09/24 16:30:52
無料になってから馬鹿が増えたな

573:デフォルトの名無しさん
08/09/24 22:37:53
>>569
Googleで検索しろ
遊びじゃないんだからそのくらい自分で調べろ

574:553
08/09/25 08:33:12
>>559 >>560
大変分かりやすい説明ありがとうございました。
やりたかったことが実現できました。

575:デフォルトの名無しさん
08/09/25 12:49:58
>>569
例外は文字通り例外的なことが起きた場合に使うもので、実行を中断せざるを得ないぐらいの場合にしか使わないほうがいい。
そんな滅多におきないことのためにifをたくさん書くのは面倒だしテストが大変になる。だから例外を使って楽に例外処理を実装する。


576:デフォルトの名無しさん
08/09/26 21:16:30
class Hoge{
public:
  Hoge();
  virtual void abs_func() = 0;
};

class Hoge_1:public Hoge{
public:
  virtual void abs_func();
};

Hoge::Hoge(){
  abs_func();
}
void Hoge_1::abs_func(){
}

int main(int argc, char* argv[]){
  Hoge *p = new Hoge_1;
  delete p;
  return 0;
}
このコード、BCB6では正常ビルドできるけど
VC2005では「外部参照 1 が未解決」リンカエラーなる。
何で?コンパイラスイッチで回避可能?


577:デフォルトの名無しさん
08/09/26 22:18:04
基底クラスのコンストラクタで純粋仮想関数呼んでるから

578:デフォルトの名無しさん
08/09/27 10:58:32
今までEclipceをずっと使ってたんだけど、C++で開発するにあたり、VisualC++を使ってみた。
これにはEclipceみたいに、コンパイルエラーが出る箇所を赤線で事前に教えてくれたりってのはないの?

579:デフォルトの名無しさん
08/09/27 11:12:32
ないね。

580:デフォルトの名無しさん
08/09/27 11:27:05
ありがと〜


581:デフォルトの名無しさん
08/09/27 11:40:47
ほのぼのしたスレですね

582:デフォルトの名無しさん
08/09/27 13:14:19
文法間違えてると、それ以降のツールチップヒントが出てこない場合がある。

例えば、構造体のメンバだと、 hoge. ここまで書くとメンバ一覧がひょこっとでてくるが、
前に間違いがあると、

a += b:  これ間違い。
hoge.    ここでヒントが出てこなくなる。

583:デフォルトの名無しさん
08/09/27 14:30:10
VC2005でプログラム(コンソールで動くもの)を作成しています。
コンパイルして実行してみても予期したとおりに動かないのでデバッグで調べた所、
cppファイルのテキストと実行している位置がずれているようです。
ステップオーバーで1行ずつ実行しているのにありえないところで数行飛んだりします。
(代入文が5つ続いてるのをジャンプしたりする)

一つ気になる点はビルド時に
LINK : 前回のインクリメンタル リンクで C:\Documents and Settings\管理者\My Documents\Visual Studio 2005\Projects\****\Debug\****.exe が見つからなかったか、ビルドされませんでした。フル リンクを行います。

という表示が出ることです。
ソリューションのクリーンを行ってもncbファイルを削除してからリビルドしてもこの表示が出ています。
原因or解決方法ご存知の方、お助けくださいませ。

584:デフォルトの名無しさん
08/09/27 14:34:59
Release版をデバッグ実行してね?

585:583
08/09/27 14:38:59
>>582
素早いレスありがとうございます。

確認しましたが構成はDebugになってます。

586:デフォルトの名無しさん
08/09/27 14:39:39
そもそもデバッガなんて使わないほうがいいよ。
printfとfprintfがあればおk

587:583
08/09/27 14:39:42
↑は>>582じゃなくて>>584です。



588:デフォルトの名無しさん
08/09/27 14:42:31
漢は黙ってmdbg


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4670日前に更新/181 KB
担当:undef