■過去ログ置き場に戻る■ 1- 前250 次250 最新50


[memo] "9999999999_00.html#R20" という感じで、URLの最後に "#RレスNo" を追加すると幸せになれます。

VisualC++相談室 【7】
501 名前:デフォルトの名無しさん :02/05/07 20:06
すみません、質問です。
セクースは0から始めたとして、
どのくらいで一通り覚えられますか?
ちなみにティムポは殆ど起ったことがないのですが。

とおなじくらい(以下略)

502 名前:デフォルトの名無しさん :02/05/07 20:08
100人が思いついて99人が思いとどまったネタを書いちゃう勇者ハケーン

503 名前:464 :02/05/08 09:12
>>464
の状況ですが結果報告しにきました。
えっと直りませんでしたがほとんどデバッガが
起動しない状態から3分の1くらいの確立で起動する
に改善しました。
まずIMEをタスクバーから出すと
デバッガの起動成功確立はまったく変わりませんが
固まってもバツボタンの反応がよくすぐに
「応答がない」ウィンドウが出るので復旧しやすくなりました。
ノートンはタスクバーから出しても関係なくて
「停止状態」にしておくとフリーズの確立が
3分の1まで下がりました。
まぁ万事解決とまではいきませんが
なんとか実用範囲になりました。
みなさんありがとうございました。
長文失礼。


504 名前:デフォルトの名無しさん :02/05/08 16:28
Winプログラミングでメモリの確保のしかたは、
結局どれがいいのですか?HeapAlloc?malloc?new?
ALL APIで組んで new とか使うのがなんだかいやです。
newをオーバーライドして、中でHeapAlloc?
みんな、どうしてますか?

505 名前:ほげ ◆m4g7rP2k :02/05/08 16:33
[質問]他プロセスが握ってるソケットの受信バッファを読み書きしゅる

というのはできるのかお前ら教えてください。
相手プロセスの受信バッファの位置をしらべて
CreateFileMappingとかVirtualAllocExとかって路線で
いけるの??
でも可変長なデータだから単純に書き込もうとすると
随分奇怪なことをやらなきゃだめそうな気がしないでもないな〜
って言ってみるテスト
なんか便利なAPIないのかしら〜

506 名前:デフォルトの名無しさん :02/05/08 17:12
DuplicateHandle

507 名前:ほげ ◆m4g7rP2k :02/05/08 19:00
oh! MSDNで調べてみたYO!
それでソケットのピーコが作成できるようなこともわかったYO!
っていう認識であってる?
でもねでもねでもね、漏れがやりたいことができそうにない?
ってかわからない!

まずやりたいことを説明しよう。


508 名前:ほげ ◆m4g7rP2k :02/05/08 19:01
登場人物
・サーバたん
・クライアントたん
・ツールたん

前提
・サーバたんはクライアントたんに文字列を送信してくる。
・クライアントたんは受信した文字列を表示する。

本題
ここでツールたんを作成し、本当はサーバたんから文字列が
送信されてきてないんだけど、さも送信されてきたかのように
クライアントたんを騙したい!!
ツールたんとクライアントたんは同一PCであり、
サーバたんは別PCである。

ゆえにツールたんでは、クライアントたんのソケットの受信
バッファに嘘データをカキコすれば騙せるのでは?と
考え、>>505 のような質問をした次第である。
先に言えというのは板違いだ きっと
実現方法について追加キーワード求む!

509 名前:デフォルトの名無しさん :02/05/08 19:02
ソケットをピーコして、そのソケットに垂れ流せばいいんでないの?

510 名前:デフォルトの名無しさん :02/05/08 19:05
>>504
malloc も new も中身は HeapAlloc だよ。たしか。

511 名前:ほげ ◆m4g7rP2k :02/05/08 19:11
>>507
ピーコじゃなくて参照か。


512 名前:デフォルトの名無しさん :02/05/08 19:28
>>510
でかいのは直接HeapAlloc。
小さいのはHeapAllocしたでかいブロックから小分けにしている。
たしか。

513 名前:ほげ ◆m4g7rP2k :02/05/08 19:33
>>509
>ソケットをピーコして、そのソケットに垂れ流せばいいんでないの?

具体的にはどうやってやるの?
そのソケットに接続して流すってこと?
接続できるのかな?
すでに接続済みだから接続できないと思われ(?)


514 名前:デフォルトの名無しさん :02/05/08 19:54
接続済みならsendすればいいやん

515 名前:ほげ ◆m4g7rP2k :02/05/08 20:15
自分にsendできるんだ?
ちとMSDN調べますw

516 名前:デフォルトの名無しさん :02/05/08 20:19
>>515
煽るのは勝手だがお前根本的に何かが間違ってる気がする。

517 名前:デフォルトの名無しさん :02/05/08 20:28
VC++ 6.0+SP5 wIn2000pro SP2

spy++立ち上げてる時にファイルオープンダイアログを起動するとOSが固まってしまいます。
なにか対処法はありませんか?

ダイアログを開いたときに受け取るメッセージが確認できれば、用なしなんですが。

518 名前:デフォルトの名無しさん :02/05/08 20:28
>>513
Duplicateする対象(ハンドル)をよく考え直せ

519 名前:ほげ ◆m4g7rP2k :02/05/08 20:38
>>516
どのへんが違うのか知りたい。

漏れの解釈
ツールでHeapAllocをコールしてクライアントのソケットへの参照を取得。
その参照にsendすればサーバに送信される。

520 名前:ほげ ◆m4g7rP2k :02/05/08 20:47
コピーしたとこ間違えたw
>ツールでHeapAllocをコールして
ツールでDuplicateHandleをコールして
に訂正・・しゅん

521 名前:デフォルトの名無しさん :02/05/08 20:48
HeapAllocじゃソケットへの参照はとれない

522 名前:仕様書無しさん :02/05/08 20:54
#pragma onceって
同じヘッダーファイルを二度インクルードしないように
コンパイラに指示するためにあるんですか?

523 名前:デフォルトの名無しさん :02/05/08 20:55
>>522
そうです。昔ifdefでやってたのの代用。
.NET?

524 名前:デフォルトの名無しさん :02/05/08 20:57
VCなら5のころから使えたんじゃない?

525 名前:デフォルトの名無しさん :02/05/08 21:02
>>520は書き方凝らなくていいからもっと理路整然と書け。

526 名前:デフォルトの名無しさん :02/05/08 21:02
>>523
鋭いですね。房ですみません。CはLinuxでしかやってませんでした。

527 名前:デフォルトの名無しさん :02/05/08 21:08
いや、最近いろんな言語の勉強一気にやってるから。
標準C++の話だったかVC++.NETの話だったか混乱。

528 名前:デフォルトの名無しさん :02/05/08 21:11
#pragma
は処理系依存でしょ。
C99だと標準オプションもあるけど

529 名前:デフォルトの名無しさん :02/05/08 21:18
便乗で折れも教えて。
#pragma const_seg( "MY_DATA" )等の
セクションって何?
この場合、MY_DATAってどういう使い方が出来るの?


530 名前:デフォルトの名無しさん :02/05/08 21:21
職業プログラマはg++でみっちり標準C++をやる、なんて余裕がないのが辛いね

531 名前:デフォルトの名無しさん :02/05/08 21:30
g++で標準C++はちょっと・・・

532 名前:デフォルトの名無しさん :02/05/08 21:32
>>531
lokiの通らないVC++よりはいいだろ

533 名前:デフォルトの名無しさん :02/05/08 21:36
>>530
gccっていまだにVCでいうプリコンパイル済みヘッダ
ないでしょ? C++使う気がしない。
そのせいでUNIX系ではいつも素のCだ。
なんか変だけど。
(それとも俺知らないうちにできてた?)

534 名前:デフォルトの名無しさん :02/05/08 21:36
>>532
それは同意

535 名前:デフォルトの名無しさん :02/05/08 21:37
>>532
Lokiが通らないのが糞ならほとんどのコンパイラは糞だ
そもそも、実務であんなヘビーなテンプレートの使い方をすることはめったにない。
ちょっとLokiが話題になったからと、Lokiが通らない=糞とか
VCを糞呼ばわりしたいだけの厨がいっぱい居るのがそもそもの問題

536 名前:デフォルトの名無しさん :02/05/08 21:38
>>533
>gccっていまだにVCでいうプリコンパイル済みヘッダないでしょ? C++使う気がしない。

これは何に対する言い訳?

537 名前:デフォルトの名無しさん :02/05/08 21:41
>>535
勉強に向くかどうかと、現実的な要求に応えるかどうかは
全く別の話。VCを糞呼ばわりしたいのは少なくともここにはいない。

538 名前:デフォルトの名無しさん :02/05/08 21:45
>>536
謎だな。だいたい VC でプリコンパイルヘッダを使うのは C++ 云々よりも、巨大な
windows.h 用だし。

(まぁ g++ でもプリコンパイルヘッダ欲しいんだけど)

539 名前:デフォルトの名無しさん :02/05/08 21:49
>>538
はぁ? おまえの方が謎。
windows.hなんて大して負荷にならない
STLヘッダをいくつも#includeする方が何十倍も負荷になる

540 名前:デフォルトの名無しさん :02/05/08 21:55
VCのプリコンパイル済みヘッダって1個しか指定できないのかなぁ?
標準ヘッダなんかのほとんど変更しないものと、
たまーに変更するけど毎回コンパイルするのはちょっと嫌なものを分けられたら便利なんだけど。

541 名前:デフォルトの名無しさん :02/05/08 22:00
統合環境じゃ1つだけみたいだけど、
コマンドラインなら複数指定できるよ

542 名前:533 :02/05/08 22:01
>>539

そうだよね。
C++だとコードのかなりの部分をヘッダに置かざるをえないから
C++は・・・って書いたんだけど通じなかったかな?

>>536
言い訳うんぬんってのはどうゆう意味?

543 名前:デフォルトの名無しさん :02/05/08 22:02
>>539
なんか勘違いしてると思う。使い方調べれ。

>>540
なんかいいことあるの?

544 名前:デフォルトの名無しさん :02/05/08 22:03
>>543
リファレンス一個ずつずれた。

545 名前:デフォルトの名無しさん :02/05/08 22:04
>>543
リファレンス一個ずつずれた。
540と541

546 名前:デフォルトの名無しさん :02/05/08 22:04
>>544
敢えてポインタと呼ぶのも一興。

547 名前:デフォルトの名無しさん :02/05/08 22:05
>>544
どうずれた?

548 名前:デフォルトの名無しさん :02/05/08 22:18
>>543 - 545
しかも勘違いしてるのは俺だった。
ごめんなさい >>540,541

549 名前:デフォルトの名無しさん :02/05/08 22:27
ぐだぐだだな

550 名前:デフォルトの名無しさん :02/05/08 22:54
そういえば今は懐かし、TurboC++for Windowsは
VC++と比べて、コンパイルが鬼速だったなぁ。

VC買って同じコード試したとき、あまりの遅さに驚いたっけ…。

551 名前:デフォルトの名無しさん :02/05/08 23:06
いいマシン買え。10万あれば激即PC買えるだろ。

552 名前:デフォルトの名無しさん :02/05/08 23:21
>>550
最適化してないし

553 名前:デフォルトの名無しさん :02/05/09 00:06
>>539
STL ヘッダは #include するより、ソースコードをコンパイルするときにテンプレートを
インスタンス化する方が重いだろ。

554 名前:デフォルトの名無しさん :02/05/09 00:08
>>553
わかってないの?
そのインスタンス化の負荷を軽減するためのプリコンパイルヘッダなんだよ?

555 名前:デフォルトの名無しさん :02/05/09 00:18
テンプレートってプリコンパイル出来るの?

556 名前:デフォルトの名無しさん :02/05/09 00:20
>>555
プリコンパイルは直接コードを生成してるんじゃなくて、
parseのフェーズを省略できるように、内部表現を出力してるんじゃないのか?

557 名前:550 :02/05/09 01:09
>>552
なるほど〜、失念してました。間違いなくそれですねぇ。

558 名前:デフォルトの名無しさん :02/05/09 02:40
>>554
とりあえず VC6 で

1. windows.h をプリコンパイルしたものと、そうでないもの
2. STL をプリコンパイルしたものと、そうでないもの

で速度を比較してみたら?

559 名前:デフォルトの名無しさん :02/05/09 03:05
最近のCPUは十分速いから、ソース+ヘッダ->メモリ展開より
巨大なプリコンパイルヘッダをいちいち読み込むほうが
かえって遅くなる罠。


560 名前:デフォルトの名無しさん :02/05/09 03:08
>>559
だからほんとにそう思うならやってみろって。
漏れの作ってるアプリのプリコンパイルヘッダ公開するけど、
プリコンパイルするかしないかで速度が20倍くらい違うぞ?

#ifdef _DEBUG
#define _STLP_DEBUG 1
#endif

#define _WIN32_WINNT 0x400
#define NOMINMAX
#include <windows.h>
#include <windowsx.h>

#include <tchar.h>
#include <process.h>

#include <commctrl.h>
#include <shlobj.h>

#include <cassert>
#include <ctime>

#include <list>
#include <vector>
#include <string>
#include <memory>
#include <algorithm>
#include <iterator>
#include <functional>


561 名前:デフォルトの名無しさん :02/05/09 03:16
ぬぉ、切れた。
以下、続き

#include <exception>
#include <stdexcept>

#include <boost/shared_ptr.hpp>
#include <boost/bind.hpp>
#include <boost/array.hpp>
#include <boost/function.hpp>
#include <boost/functional.hpp>

#include "window.h"
#include "controls.h"
#include "filesystem.h"
#include "utils.h"

562 名前:559 :02/05/09 03:19
俺のと大してかわらんな。

更にmap/multimapと、
アプリケーション定義のヘッダが20位。

プリコンパイルヘッダ使っても遅いものは遅い。


563 名前:デフォルトの名無しさん :02/05/09 03:22
>>562
どう考えてもプリコンパイルヘッダの使い方が間違ってるとしか思えない

564 名前:デフォルトの名無しさん :02/05/09 03:24
ちなみに、自動的に使用だと効果ないよ?
きっちり手動で設定してやらないと

565 名前:559 :02/05/09 03:51
ごめんなさい。
自動的に使用ししてますた。

.cpp別にプリコンパイルヘッダの扱いが変更できるようだけど、
どんな感じでやればよいのか教えてください。


566 名前:デフォルトの名無しさん :02/05/09 03:56
>>565
たとえば、上に書いた集約したヘッダをstdafx.hとし、
[stdafx.h]
#include <windows.h>
...
とstdafx.hを#includeするだけのcppを用意する
[stdafx.cpp]
#include "stdafx.h"

で、stdafx.hを右クリック>設定>プリコンパイル済みヘッダ
プリコンパイル済みヘッダの生成に[stdafx.h]を入力

その後、すべてのソースファイルの先頭にstdafx.hを#includeして、
プリコンパイル済みヘッダを使用に[stdafx.h]までと入力

567 名前:デフォルトの名無しさん :02/05/09 03:57
>stdafx.hを右クリック
stdafx.cppを右クリック

568 名前:559 :02/05/09 03:59
>>566-567
ありがとうございます。


569 名前:デフォルトの名無しさん :02/05/09 04:03
>>568
とりあえず、試したらどれだけ早くなったかレポートするように

570 名前:559 :02/05/09 11:34
速くなったーヨ
1/20位の時間になったーヨ



571 名前:デフォルトの名無しさん :02/05/09 14:37
VC++6.0はVC++5.0とどこら編が違うの?

572 名前:デフォルトの名無しさん :02/05/09 19:17
>>571
バージョン。

573 名前:デフォルトの名無しさん :02/05/10 22:50
すんません、質問です.

SetWindowsHookEx(WH_GETMESSAGE, 〜
(WH_KEYBOARDでナシに)でキーボードをフック(WM_KEYDOWNを検出)した後、そのキーを無効にする(メッセージをキューから破棄する?)にはどうすればいいですか?
(たとえば、[INS]が押されたときに「貼り付け」処理した後挿入/上書きモードを切り替えないようにする、みたいな…)


574 名前:デフォルトの名無しさん :02/05/10 23:00
WM_NULLに置き換える、とか。

575 名前:デフォルトの名無しさん :02/05/10 23:19
CallNext〜を呼ばない・・・

576 名前:痴有望 :02/05/10 23:24
VC++4.0のアカデミック版を5年前に買って置物と化してるのですが、
最近勉強しようと思うようになりました。
もうVC++6.0(それ以上?)になってると思いますが、4.0とは機能的にめちゃくちゃちがうんでしょうか?
また、初心者がやるには4.0でも十分なんでしょうか?

577 名前:デフォルトの名無しさん :02/05/10 23:29
>>576
VB.NETは現在のVBとは別物です。

578 名前:デフォルトの名無しさん :02/05/10 23:30
>>573
フックプロシージャ内で>>575、且つreturn 0
ただし他のグローバルフック使用アプリに影響の可能性。
MSDNに書いてあるよ。

579 名前:デフォルトの名無しさん :02/05/10 23:50
>>574, 575, 578 サンキューです.
それが、>>575がうまくいかないんですわ.
ただ>>574がとりあえずうまく行ってるようです.
しかーし!!
M$ Word (95, 2000)では、これもうまくいかないんですね.
何故でしょう?
とりあえずキーを1回押すだけでWM_KEYDOWNが2〜3回送られてくるあたりが非常に怪しい.
今んとこメッセージ送り主のhwndと送られたptimeを調べて同じだったらはじく様にしてるんですけど、何か方法はありますか?


580 名前:  :02/05/10 23:51
ネットからプログラムをコピペして、コンパイルしたら、予期せぬEOFガ検出されました。というのが出てしまいます。どうしたらいいのでしょうか?

581 名前:デフォルトの名無しさん :02/05/10 23:55
>>580
EOFを予期させてください。

582 名前:デフォルトの名無しさん :02/05/10 23:55
>>580
デバッグ


583 名前:デフォルトの名無しさん :02/05/10 23:58
コピペせずに自分でコード書け

584 名前: 580 :02/05/11 00:03
>>583
そうします。ありがとうございました。

585 名前:デフォルトの名無しさん :02/05/11 00:12
>>576
Win32APIを使っているだけなら4.0でもほとんど問題なし。
俺も未だに4.0使ってる。

586 名前:デフォルトの名無しさん :02/05/11 00:22
C++でSTLが事実上使えないのは痛いなぁ。

587 名前:デフォルトの名無しさん :02/05/11 00:25
>>580
プリコンパイルヘッダーを使う設定になっているのに、ソースにそれ用の
ヘッダーのインクルードをしていなかったりしてない?

588 名前:デフォルトの名無しさん :02/05/11 00:29
>>586
ハア?

589 名前:デフォルトの名無しさん :02/05/11 00:44
>>588
ヒイ?

590 名前:デフォルトの名無しさん :02/05/11 00:50
俺も

>>686
ハァ?

591 名前:デフォルトの名無しさん :02/05/11 00:53
ツマラン

592 名前:デフォルトの名無しさん :02/05/11 01:06
Visual Cでアーカイブファイルを作るにはどうしたらいいですか?

593 名前:デフォルトの名無しさん :02/05/11 01:13
お好みの形式のアーカイバを書くか、
既存のライブラリを使用するか
既存のツールを操作する

594 名前:デフォルトの名無しさん :02/05/11 01:13
>>592
自分で圧縮アルゴリズム実装するとか。


595 名前:デフォルトの名無しさん :02/05/11 01:19
そうじゃなくて、リナックスのarコマンドみたいなことはできますか?

596 名前:デフォルトの名無しさん :02/05/11 01:39
>>595
ぁ?ファイル操作の方法がわからないのか?
それとも、どこから手をつけていいのかもわからない?

597 名前:586 :02/05/11 01:57
>588
当然、VC++4のはなししだよ。

598 名前:デフォルトの名無しさん :02/05/11 02:11
>595
.libを作りたいってことか?
リンカのオプションいじってできたような気もする。ヘルプで調べれ。

599 名前:デフォルトの名無しさん :02/05/11 02:25
>>598
ありがとうございました。やってみます。ところで何でみんなsage?

600 名前:デフォルトの名無しさん :02/05/11 07:36
プリコンパイル済みヘッダっていつ登場したんだったっけ。
登場当初は確かにwindows.h対策と言われていた記憶がある。
そうかーSTLってそんなにでかいのか、って当然か。

601 名前:デフォルトの名無しさん :02/05/11 09:35
>>599
ム板の伝統…かな。

age:質問をする人、厨房
sage:良識を持った回答をする人、ネタレスをする人

って感じじゃないかと。

602 名前:デフォルトの名無しさん :02/05/11 09:51
ageる時は、必ずしも質問とは限らないけど、何らかの注目を得たい場合だよね。
それ以外は基本的にsageで。

603 名前:デフォルトの名無しさん :02/05/12 11:57
スタックはデフォルトで1MB使用できるそうですが
ある時点で使用できる残りのスタックサイズを得る方法ってないですか?
適当にスタックにメモリを確保していると(再帰関数などで)スタックを使いきってしまうのでないか心配で夜もグッスリです。
残りのスタックサイズを取得して一定のサイズ以下になったら警告が出るようにしたいです。(デバッグビルドの場合)
APIが無理ならインラインアセンブラで無理やりでもいいので教えてください。


604 名前:デフォルトの名無しさん :02/05/12 12:00
> 心配で夜もグッスリです。

わけわか

605 名前:デフォルトの名無しさん :02/05/12 12:18
>>603
取りあえずプログラム起動時にspの値取得。
関数を呼ぶたびに現在のspと保存したspのディスタンスを取る。とかはダメ?

606 名前:初心人間 :02/05/12 12:39
2chのAAでよくある実写画像(宗男とか)みたいなやつをつくるソフトってVC++で作れますか?
もしくはつくった人いますか?

607 名前:デフォルトの名無しさん :02/05/12 12:40
>>606
作ったからあるんだろうと小一時間。。

608 名前:初心人間 :02/05/12 18:12
ここで答えてくれてる人ってやっぱそんなの簡単につくれちゃう位の人が多いんですか?

609 名前:デフォルトの名無しさん :02/05/12 18:20
あんまりいないだろうが、かき集めればそういうのができるだろう。

形状認識の理論とAAに対する情熱を持ち合わせたプログラマが
いないこともない。


610 名前:デフォルトの名無しさん :02/05/12 18:22
>>606
の言う「AAでよくある実写画像」ってのは、
AAじゃなくて画像を文字で表現しただけのやつのことじゃないの?
そうなら簡単だけど、本気でAAで表現するのは漏れには無理。

611 名前:初心人間 :02/05/12 20:25
>>610
そうですそうです。>実写画像(みたいなの)
素人考えですが、こういうのって単純にBMPファイルを数ピクセル四方の領域単位に分割して、各領域の平均濃度に対応した文字テーブルを予め用意して云々
って感じでできるものなんですか?

612 名前:デフォルトの名無しさん :02/05/12 20:27
test

613 名前:デフォルトの名無しさん :02/05/12 20:29
>>611
いいんじゃない?
::
のように均等な濃度になるものもあれば
~~や,,のように偏るものもあるし、その辺を考慮して。

614 名前:デフォルトの名無しさん :02/05/12 22:05
MFCのソースコードを読みたいのですが
VisualC++6.0 Enterprise Editionには
ソースコードは付属していないのでしょうか?


615 名前:デフォルトの名無しさん :02/05/12 22:19
当然付属していますが、何か?

616 名前:デフォルトの名無しさん :02/05/13 03:28
もしかしたら、プリコンパイル済みヘッダを勘違いしてるかもしれないですが、
これって結局、コンパイルの時間を短くするだけですよね?
ね?

617 名前:デフォルトの名無しさん :02/05/13 08:40
そうだよ

618 名前:デフォルトの名無しさん :02/05/13 12:52
VC++でゲームとか作りたいんですが
参考になる本とかサイトとかありませんか?

619 名前:デフォルトの名無しさん :02/05/13 13:12
君には無理



620 名前:デフォルトの名無しさん :02/05/13 14:09
>>618
サイト>> googleで検索,海外ポータルを探す
本>> 定番でGameProgramingGem,GameProgramingManazineなど

621 名前:デフォルトの名無しさん :02/05/13 15:25
>>618

どんなゲームを作りたいのか知らんが、とりあえずGoogleで
「ゲーム開発 C++ Windows」とでも入れてごらん。


622 名前:デフォルトの名無しさん :02/05/13 15:27
>>621
ダブルバッファリングとかゲーム界の常識を学んでからの方が良いかもね。

623 名前:デフォルトの名無しさん :02/05/13 15:28
>>620>>621
ありがとうございましたやってみま酢。

624 名前:デフォルトの名無しさん :02/05/13 23:47
スタティックライブラリやDLLを作るとき、デバッグ版やリリース版、
マルチスレッド版......などを考慮すると数種類のライブラリを作ることになりますよね。
これって1つにまとめることはできないのでしょうか?
WEB等で配布されているライブラリで1つしか配布していないのは
どうやっているのでしょうか?

625 名前:デフォルトの名無しさん :02/05/13 23:49
web上のライブラリはソースが配布されてない限り使わない、と。

626 名前:デフォルトの名無しさん :02/05/14 00:55
systemフォルダに入っているUNLHA32.DLLを参照するようなアプリの場合は?
アプリ側がDLLの設定に合わせるのですか?

627 名前:デフォルトの名無しさん :02/05/14 01:01
dllならリンクしているライブラリは関係なく使える。
ただ、dll側の制限でマルチスレッド不可の場合が多すぎるので気をつけよう

628 名前:デフォルトの名無しさん :02/05/14 01:02
VC6 使ってますが、Alt + F8 でソースの整形ができません。
VC5用の本にはこれで出来ると書いてあるのですが、
別のキーになったのでしょうか?



629 名前:デフォルトの名無しさん :02/05/14 01:15
変わってないとは言い切れないな

630 名前:Disca ◆NAfP6znE :02/05/14 01:57
CListCtrl で、レポート形式にしているのですが、
アイコンが表示してくれないのですが、まちがいがあれば
教えていただけないでしょうか、お願いします。
// m_list は、CListCtrlのメンバ変数
// IDI_ICON は、アイコンリソースです。

int i;
CImageList imageList;

  imageList.Create(16, 16, ILC_COLOR4, 1, 1);
  m_list.SetImageList(&imageList, LVSIL_SMALL);
  HICON hicon= ::AfxGetApp()->LoadIcon(IDI_ICON);

  int image= imageList.Add(hicon);
  for (i= 0 ; i < 3 ; i++)
    m_list.InsertColumn(i, "ColTop");

  m_list.InsertItem(LVIF_IMAGE | LVIF_TEXT , 0, "00", 0, 0, image, 0);
  m_list.SetItem(0, 1, LVIF_TEXT, "01", 0,0,0,0);
  m_list.SetItem(0, 2, LVIF_TEXT, "02", 0,0,0,0);

631 名前:デフォルトの名無しさん :02/05/14 03:01
>>630
スコープを抜けた後、imageListはどうなってしまうのかと問いたい。

632 名前:Disca ◆NAfP6znE :02/05/14 04:11
>>631さん
スコープを抜けたあと…デストラクタが働いて…消えています。
ありがとうございます…。
試したら、解決しました^^/。


633 名前:デフォルトの名無しさん :02/05/14 11:08
>>628 開き括弧と閉じ括弧の数が揃っていないと効かないぞ。
あと範囲選択を忘れているとかいうオチはなしな。

634 名前:デフォルトの名無しさん :02/05/14 14:33
関係ないがVC初心者質問スレが落ちてた。
めでたくここと統合ってことで。


635 名前:デフォルトの名無しさん :02/05/14 15:26
new演算子が動的にメモリ領域を確保することは分かりましたが、
その利点って何ですか?普通に宣言するのとどこが違うかわかりませんです

636 名前:デフォルトの名無しさん :02/05/14 15:29
>>653
mallocと同じく実行してみるまで必要なメモリーの量がわからないときに役立つんだろ?

637 名前:デフォルトの名無しさん :02/05/14 15:30
>>635
>>630のようにスコープ抜けても存在してるとか、
スタックよりも領域を多く確保できるとか

638 名前:デフォルトの名無しさん :02/05/14 15:32
>>637
それは普通、staticにするのでは・・・

639 名前:デフォルトの名無しさん :02/05/14 16:38
IDEから実行されているかどうかを判定する関数・変数ってありますか?

640 名前:デフォルトの名無しさん :02/05/14 16:44
[F5]から実行ならIsDebuggerPresent()か?
crtl+[F5]は、無理っぽい。

641 名前:デフォルトの名無しさん :02/05/14 16:54
>>639
カレントディレクトリ調べるというのもありかも、
ってかそもそもIDEから起動されてることを知って何になる?

642 名前:639 :02/05/14 17:04
>>640
IsDebuggerPresent()でよさそうです。ありがとうございます。
でもkernel32.libリンクしているのに
>main.obj : error LNK2001: 外部シンボル "_IsDebuggerPresent" は未解決です
になってしまいます・・・

>>641
>ってかそもそもIDEから起動されてることを知って何になる?
IDEから実行すると終了時に窓が閉じてしまうので、mainの最後に
#ifdef WIN32
if(IsDebuggerPresent()){
char buf[80];
printf("end: ");
gets(buf);
}
#endif
って書きたいだけなんです。

643 名前:デフォルトの名無しさん :02/05/14 17:18
WORDとDWORDを比較したら下のような警告がでたんだけど、WORDもDWORDもunsigned
ですよね??
キャストしたらもちろん消えたけど、何故?

warning C4018: '<=' : signed と unsigned の数値を比較しようとしました。

644 名前:デフォルトの名無しさん :02/05/14 17:23
642
コンソールアプリで実行したらwinbase.hがはじかれた。
そもそもコンソールアプリは終了時に<Press Enter Key>がでますが。へん?

645 名前:デフォルトの名無しさん :02/05/14 17:42
>>643
WORDからintに拡張されて比較…になる。たぶん。

646 名前:デフォルトの名無しさん :02/05/14 17:48
>>643
出なかった世?

647 名前:本の虫 :02/05/14 18:08
追加したダイアログに独自のメニューを付けました。
でも、アクセラレータテーブルの結び付け方が分かりません。
どうかご教授ください。

648 名前:デフォルトの名無しさん :02/05/14 18:17
WH_GETMESSAGEをフックするか、モードレスで作る

649 名前:デフォルトの名無しさん :02/05/14 18:22
IMEのユーザーファイルの場所を変える関数知っているいます?
IMEのプロパティを使用しないで
ユーザーファイルの生成、パスの設定をしたいのですけど・・・
ご存知の方ご教授ねがいます。

650 名前:デフォルトの名無しさん :02/05/14 18:23
>>643  先生、うちも出ません

651 名前:635 :02/05/14 19:10
>>636,>>637,>>638さん
サンクスです。なんか使わなくてもよさそうな感じですね。

652 名前:>>628 :02/05/14 19:10
>>629 >>633

やっぱり出来ないです。

開き括弧と閉じ括弧の数は揃ってます。範囲選択もしてます。

メニューから実行できないし・・とりあえずコマンド名
教えて頂けないでしょうか?


653 名前:643 :02/05/14 21:00
あれ?おかしいな
VC++6のワーニングレベル3なんだけど相変わらずでるです・・・

654 名前:デフォルトの名無しさん :02/05/14 21:12
#define WORD int
とか、自力定義してるんでねーの。

655 名前:デフォルトの名無しさん :02/05/14 21:14
ウォーニング?
ワーニング?

656 名前:デフォルトの名無しさん :02/05/14 21:21
VC++ で、「正規版」「機能限定版」の両方を同じプロジェクトで管理して、
オプションでコンパイル分けするにはどうすればよいでしょーか?


657 名前:デフォルトの名無しさん :02/05/14 21:21
>655
にふぉんぐぉは おんすぇお すぉのむぁむぁ
ひょーきするむぉのでわ あるぃますぇん

658 名前:ふぁふぁふぁ ◆XuOn9thA :02/05/14 21:22
yahooはどうですか?っあ、スレ違い・・・・

659 名前:デフォルトの名無しさん :02/05/14 21:22
●●●●●●●( ● ´ ー ` ● )●●●●●●●


もうすぐ「これ」来るぞ・・・・

660 名前:デフォルトの名無しさん :02/05/14 21:23
>>656
同じプロジェクトでビルドの設定

661 名前:デフォルトの名無しさん :02/05/14 21:29
>>655
発音聞いてみたが、
ォワーニン

662 名前:デフォルトの名無しさん :02/05/14 21:29
>>>666>>665のうんこ食べる。

663 名前:デフォルトの名無しさん :02/05/14 21:39
>661
ヲーニン?

664 名前:デフォルトの名無しさん :02/05/14 22:05
>>652
メニューの 編集‐高度な機能 の中にある。
あと、VC6だとキー割り当てはどうにでもなるから、
ヘルプ‐キーボードマップ とか ツール‐カスタマイズ とか見とけ。
ソースの整形はSelectionFormatだったかな。

665 名前:628 :02/05/15 00:35
>>664

やっとできました。

ツール − オプションの「自動インデント」が「デフォルト」になってたのが原因のようです。

でも思ってたよりも機能が弱い気が・・ソースの整形というより、単にインデントしているだけだし
(範囲選択して TABキー押すのに毛が生えた程度・・)

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


666 名前:デフォルトの名無しさん :02/05/15 01:34
GNU indentつかえば?

667 名前:デフォルトの名無しさん :02/05/15 02:25
すいません質問です。
MFC派生クラス(元:CObject)をアプリに追加して動的に生成したいんですが、
SDIアプリケーションで作成するとうまく行くんですが、
ダイアログアプリの場合はコンストラクタ呼び出した時点でクラス名を
クラスとして認識してくれないようなエラーが起きてコンパイルできないんです。
ダイアログアプリの場合だけ何か設定とか必要なんですか?
それともSDIで作らないとMFC派生クラスは使っちゃダメ?

668 名前:デフォルトの名無しさん :02/05/15 07:46
いいたいことがよくわからないが・・
動的生成させたいならDECLARE_DYNAMICとかつけるんだYO

669 名前:デフォルトの名無しさん :02/05/16 01:10
ちょっとスレ違いかもしれませんが、エクセルのマクロを
別のプログラムから動作させることは可能ですか?

コマンドライン引数でエクセル起動と同時にマクロを動作させるとかでも
いいんですが・・・。


670 名前:デフォルトの名無しさん :02/05/16 01:12
>>669
できますよ。
他人がやってるの見ただけで手段はわからないけど。

671 名前:669 :02/05/16 01:31
おお、出来るんですね!
でもどうやればいいのか全然見当がつきません。

672 名前:デフォルトの名無しさん :02/05/16 01:44
VC++7で
  #define _CRTDBG_MAP_ALLOC
  #include <crtdbg.h>
が通らなくなってるんですけど(C2733が大量に出る)・・・

673 名前:デフォルトの名無しさん :02/05/16 01:53
Windowsアプリケーションのファイルの拡張子って.cと.cppとあるけど
どっちがよいの?

674 名前:デフォルトの名無しさん :02/05/16 01:54
>>669
できる。やってる。動いてる。

675 名前:デフォルトの名無しさん :02/05/16 01:54
>>673
C で書いてるなら .c
C++ で書いてるなら .cpp

676 名前:デフォルトの名無しさん :02/05/16 01:55
cc/cxxもアリ

677 名前:672 :02/05/16 03:36
crtdbg.hの後からatlstr.hをインクルードしていたのが問題だったみたい

勘違い書き込みしてスマソ・・・

678 名前:よろしゅぅ :02/05/16 07:26
VC++.NETの
INT_PTR ってintとどう違うんでしょうか。

また、[クラスビューのTOPをClick]-[プロジェクト]-[プロパティ]
を見たのですが、
RTTIのスイッチが見つかりませんが標準でONになってるのでしょうか。

またなんで普通に[プロジェクト]を選ぶと、[プロパティ]がないのか
半家しく問いつめたいのです。

679 名前:デフォルトの名無しさん :02/05/16 07:31
INT_PTRは32bit win>64bit win移行の課程の互換取りのために用意されてる物ですよん

680 名前:678 :02/05/16 07:58
>>679
なるほど。サンクス。
ポインタぽい型名だったから...。


681 名前:678 :02/05/16 08:16
RTTIありました。デフォルトでやはり無効でした。
->ランタイム型情報の有効化。


682 名前:デフォルトの名無しさん :02/05/16 08:24
王様ゲーム!

683 名前:デフォルトの名無しさん :02/05/16 10:03
例えば三角関数のy=sin(x)をグラフとして出力したいんですけど、
Cの本を参考にして
#include<graphics.h>
とか<gragh.h>って書くとコンパイルでエラー出ます。
c++だとどうすればよいのでしょうか・・

684 名前:デフォルトの名無しさん :02/05/16 10:40
683
extern "C" {
# ・・・
}
でだめなら力技

685 名前:デフォルトの名無しさん :02/05/16 10:47
ダイアログとそのリソースをDLL化して
exeから呼び出そうとしているんですが、うまくいきません。
呼び出し元のダイアログのthisポインタをコンストラクタに渡して
DoModalを実行すると即エラーで帰ってきます。

呼び出し元が参照するDLLのヘッダは、DLLでダイアログのクラス作った
ときにできたヘッダファイルのクラス宣言の部分に__declspec(dllexport)
を挿入しただけのものを使ってます。
そのままだと呼び出し元でビルドするとき
//{{AFX_DATA(CChildDlg)
enum { IDD = IDD_DIALOG_CHILD };
の部分がエラーになるので、
DLLのresource.hをIncludeさせてエラー回避してます。
多分これは間違ってると思います。

正しいいやり方を教えてください。
よろしくお願いします。

686 名前:デフォルトの名無しさん :02/05/16 10:52
>>669
COM 使って CreateObject("Excel.Application") して云々、でできそうだけど。

687 名前:デフォルトの名無しさん :02/05/16 11:33
685
.dllのインスタンスからリソースをロードしてDialogをクリエートして
RunModalLoop()使えば吉。

688 名前:デフォルトの名無しさん :02/05/16 11:51
strcpy、_mbscpy の違いって何ですか?
マルチバイト文字列のコピーはも strcpy で普通にできますよね?

689 名前:デフォルトの名無しさん :02/05/16 11:56
>>688
_mbscpyはunsigned char

690 名前:685 :02/05/16 12:50
>>687
回答ありがとうございます。

早速調べてみたんですが...
dllダイアログリソースをロードする方法が分かりません。
bitmapとかIconをロードする関数は見つかったんですが。
もしかして、暗示的なリンクでなく
LoadLibraryを使ってDLLをロードしてハンドルを取得し、
そのハンドルからDLLのダイアログリソースのハンドルか
リソース名を取得(できるのでしょうか?)するということでしょうか?

書いてて余計分からなくなってきた。
とりあえず今までどおり暗示的なリンクで
exeの中の親画面で
CChildDialog Dialog;
Dialog.Create( IDD_DLG_CHILD, this );
とやってみました。IDD_DLG_CHILDはDLL内部のリソースIDです。
当然NGでした(笑。

もうちょっとだけ分かりやすくおしえてください。
(私が初心者なだけなんですが。すみません。)
よろしくお願いします。


691 名前:デフォルトの名無しさん :02/05/16 12:58
>>690
AfxSetResourceHandle()

692 名前:688 :02/05/16 13:55
>>689
プログラムで扱っている文字列が charなら、文字列のコピーに限っては、
いちいち unsigned char にキャストして、_mbscpyを呼ぶ必要はないわけですよね?

693 名前:デフォルトの名無しさん :02/05/16 14:09
>>692
charなら、まぁTCHARの使用をお勧めするけど

694 名前:デフォルト名無しさん :02/05/16 14:23
またまた回答ありがとうございました。

HINSTANCEResourceHandle = AfxLoadLibrary (_T("ChildDlg.dll"));
AfxSetResourceHandle (ResourceHandle);
と、ここまでは何とか分かりました。
ここから、ダイアログのCreate関数に渡すダイアログの
リソース名を取得しないといけないですよね。
これもどうやったらいいか分かりません。
そもそも、リソースIDは分かるんですが、リソース名って何なんでしょう?
よろしくお願いします。


695 名前:デフォルトの名無しさん :02/05/16 15:54
BOOL CDialog::Create( UINT nIDTemplate, CWnd* pParentWnd = NULL );

696 名前:デフォルトの名無しさん :02/05/16 16:01
age忘れ

697 名前:デフォルトの名無しさん :02/05/16 17:24
>>694
リソース名 = MAKEINTRESOURCE(nID);

698 名前:669 :02/05/16 21:41
>>686
CreateObjectで検索してみたけど、VB関連ばかり引っかかって
Cのは全然見つかりませんでした。
COMもいまいち良くわかってないんで・・・。
どっかにわかりやすく解説したサイトとか無いですかね。


699 名前:デフォルトの名無しさん :02/05/16 22:52
669
モジュールのWorkbook_Open()がVBAのスタートアップルーチンになるから、
そこにVBAを記述してWin32のShellExecuteでxlsを起動してたらいいと思われるが。
(ワークシートのAuto_Open()でも可)

蛇足:アプリケーションフォルダのXLStartフォルダにXLSファイルを入れておくと
Excel.exeを起動するごとにそのファイル開かれるからいろいろ細工ができる。
(Excel2000以降未確認)

最近のレスでは
http://pc.2ch.net/test/read.cgi/tech/981823340/497-
もあったけどマクロを起動するところまではできていない。

ビジネスSOFT板のExcel総合相談所 あたりでもVBAをあつかってるので聞いてみれば。

700 名前::02/05/16 22:59
カチュウシャみたいに、分割するにはどうすればいいの?
リストビューとHTMLと絵描くところの3つに分けたい

701 名前:112 :02/05/16 23:07
MSDNの
・CSplitterWndのペイン分割
・テクニカルノート29
・ちゅーとりあるの「ビュー機能の強化」
ぐらいかな。

702 名前:デフォルトの名無しさん :02/05/16 23:09
↑ 112 は消し忘れ、意味無し

703 名前:669 :02/05/16 23:10
ちなみにExcelは95です。


704 名前:デフォルトの名無しさん :02/05/16 23:43
こんにちは,
今日本を買ってきてやってるようなペーペーですが,
今,本のとおりにやっているところです.
で,質問なんですが,この本では
ファイルからの入出力にSerialize 関数なるものを使用しているんですが,
これは普通に使うものなのでしょうか?

705 名前:デフォルトの名無しさん :02/05/16 23:45

void CtestDlg::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{ // コードの保存
ar << m_wndView.m_nRMax << m_wndView.m_nRPos << m_wndView.m_nCPos;

for(int i = 0; i < RMAX; i++)
for(int j = 0; j < CMAX; j++)
ar << m_wndView.m_text[i][j];
}
else
{ // コードの読み込み
ar >> m_wndView.m_nRMax >> m_wndView.m_nRPos >> m_wndView.m_nCPos;

for(int i = 0; i < RMAX; i++)
for(int j = 0; j < CMAX; j++)
ar >> m_wndView.mtext[i][j];
}}
と,このようなことが書いてあり,意味がわかりません.というか,コンパイルが全くとおりません.ダイアログベースでもこのSerializeというのは使うんですか?


706 名前:デフォルトの名無しさん :02/05/16 23:47
m_wndView' : 定義されていない識別子です。
error C2228: '.m_nRMax' : 左側がクラス、構造体、共用体ではありません。
error C2228: '.m_nRPos' : 左側がクラス、構造体、共用体ではありません。
error C2228: '.m_nCPos' : 左側がクラス、構造体、共用体ではありません。
error C2065: 'RMAX' : 定義されていない識別子です。
error C2065: 'CMAX' : 定義されていない識別子です。
・・・
このようなエラーが出ます.

707 名前:デフォルトの名無しさん :02/05/16 23:50
http://pc.2ch.net/test/read.cgi/tech/1014057520/887-
でがいしゅつです。
てかそのコードにはCXXXViewクラスが必要です。

708 名前:デフォルトの名無しさん :02/05/16 23:53
>>707
ありがとうございます.
一応見て見ます.
CXXXViewクラスの意味もよく分かりませんが,がんばります.
...

709 名前:陰唇マン :02/05/17 00:13
>>683
値だけ書き出してgnuplotで描くってのは?

710 名前:デフォルトの名無しさん :02/05/17 00:15
>>706
そのエラー内容は直接シリアライズとは関係ないけどな。


711 名前:708 :02/05/17 00:19
>>710
また一から作り直して,
また同じエラーがでました.今,本を一から見直しているところです.
またわからなければ
またお願いします.

712 名前:デフォルトの名無しさん :02/05/17 01:40
>>699
そっちのスレでの497だけど、問題なくマクロも起動できてるよ。


713 名前:デフォルトの名無しさん :02/05/17 19:07
>>711には、プログラムの勉強の前に日本語の勉強を薦めたい。
http://www.amazon.co.jp/exec/obidos/ASIN/4121006240/uselesspgsnes-22/250-871/250-8714597-7391437

714 名前:デフォルトの名無しさん :02/05/17 23:24
C++とJavaではC++の方が汎用性高いですか?

715 名前:デフォルトの名無しさん :02/05/17 23:25
>>714
そらね。

716 名前:デフォルトの名無しさん :02/05/18 12:28
Visual C++を使ってると
 
Msdevが原因でMFC42.DLLにエラーが発生しました。
Msdevは終了します。
問題が解決しない場合は、コンピュータを再起動してください。

となります。
再起動したのですがまたこのエラーが発生しました。
どうすればいいのでしょうか?


717 名前:デフォルトの名無しさん :02/05/18 12:33
>>716
プロジェクト→設定→MFCを使用しないを選択

718 名前:716 :02/05/18 12:46
共有DLLでMFCを使用
となっていてそれを変更できません。

719 名前:デフォルトの名無しさん :02/05/18 13:07
フォントのインストールについて質問です。InstallShield 等使わずに独自の
インストーラで処理する必要があるのですが、二つの点でつまっています。

1. フォントを格納すべきディレクトリを示すレジストリエントリの存在
2. フォントはディレクトリにコピーするだけで、インストールされるのか?

ご存じの方おられましたらよろしくお願いします。


720 名前:デフォルトの名無しさん :02/05/18 13:17
>>719
1.%WINDIR%\Fonts
2.copyコマンドか何かで試せばよかろう。

721 名前:デフォルトの名無しさん :02/05/18 13:23
MFC初心者です・・・
このMFCの糞さをぶつけられるスレか掲示板を教えてください。


722 名前:デフォルトの名無しさん :02/05/18 13:25
ここでいいじゃん。
賑わってないし

723 名前:デフォルトの名無しさん :02/05/18 13:32
>>719
SHGetFolderPathにCSIDL_FONTSを渡せばFontsフォルダが取得できる


724 名前:デフォルトの名無しさん :02/05/18 13:34
初心者がぶつけるとたいがい糞スレ化するよな・・・

725 名前:デフォルトの名無しさん :02/05/18 18:40
char gorua=3000;
CListBox* b=(CListBox*)GetDlgItem(IDC_LIST1);
b->InsertString(-1,&gorua);
これで、リストボックスに3000と表示することができました。
でも
int morua=3000;
〜ここで計算などして〜
CListBox* b=(CListBox*)GetDlgItem(IDC_LIST1);
b->InsertString(-1,&gorua);
これでは3000は表示されませんよね。
なにがいいたいかというと、
数字をピクチャーかリストボックスかに表示させたいのですが、
このInterStringの変わりになにをつかえばいいのでしょうか?
itoaとかを使ってchar型にしてからInterStringをつかうんでしょうか?

726 名前:デフォルトの名無しさん :02/05/18 18:45
>>725
要するに数字を文字列にしたいってことかな?
sprintfとかMFC使ってるならCStringのFormatとか。

727 名前:デフォルトの名無しさん :02/05/18 19:04
でっ、できた!!!
>>726
ありがとうございました!そうですsprintf使ってます。

〜余談〜
こないだぐらいから、VC++の本を二冊買ってきたのですが、
中のC++についてはあまり書いてなかったので、さらにC++の本も買ってきたんですが、
なんか、C++の本の中では
cout << 〜〜
とかが多用してあって、でもVC++のほんの中では一回も出てこないんです。
こりはひょっとしてぜんぜん違うものを買っちゃったんでしょうか?
というような厨です。今後ともDQNな質問をするかもしれませんが、よろしくお願いします。ペコリ

728 名前:デフォルトの名無しさん :02/05/18 19:05
cout<<は忘れれ

729 名前:デフォルトの名無しさん :02/05/18 19:13
>>728
じゃ、かっちまった本は全体的にワスレレゆうことでちか?(・ρ・)ポケー
cout <<だの
 >> cinだの ・・

730 名前:デフォルトの名無しさん :02/05/18 19:16
VC++をやろうと思ったらやっぱりC++の本も必要ですよね?
VC++に役立つC++の本でオススメなのがあれば教えて下さい。
独習C++?

僕適には、決め事がつらつら書いてあるのより、
例文というか、例プログラムがたくさんのってるほうが実用上参考になって手っ取り早いんですが。。ガイシュツ?

731 名前:デフォルトの名無しさん :02/05/18 19:25
sourceforge.net

732 名前:デフォルトの名無しさん :02/05/18 19:27
>>731
http://sourceforge.net/
↑これがなに?


733 名前:デフォルトの名無しさん :02/05/18 19:52
参考プログラムがごろごろ

734 名前:730 :02/05/18 19:54
>>733
なるほど、ちょっと見てみます。
ありがとです。

735 名前:デフォルトの名無しさん :02/05/18 22:38
MFCは.NETとかC#に取って代わられるらしいが。
いったいどれだけ糞を巻き散らかす気ですか?

736 名前:デフォルトの名無しさん :02/05/18 22:44
>>735
.NETってオブジェクトの解放が基本的に必要ない。
精神衛生上よくないっす。

C#から入門してC++に行ったらとんでもないことになりそうっす。

737 名前:デフォルトの名無しさん :02/05/18 22:44
>MFCは.NETとかC#に取って代わられるらしいが。
この一行だけで知ってる単語を並べただけな感じが。
つーか煽りUZEEEEEEEEEE

738 名前:デフォルトの名無しさん :02/05/18 22:45
たのみます!1変数のマイナス演算子と2変数の減法演算子との異なる点を挙げよ。
っていう問題を教えてください


739 名前:デフォルトの名無しさん :02/05/18 22:46
単項演算子と2項演算子、いじょ

740 名前:デフォルトの名無しさん :02/05/18 22:48
735
× MFCは.NETとかC#に取って・・・
○ COMは.NETとかに、javaとかVBはC#に取って・・・

カテゴリ違いだ

741 名前:デフォルトの名無しさん :02/05/18 22:50
738
すれ違い

742 名前:730 :02/05/18 23:01
えーと、厨な質問です。
textファイルを開いて、それを配列に格納→計算ということをしようと思っているのですが、
FILE *testbuff;
int suuji[30];

testbuff = fopen( "test.txt" , "r" ); //test.txtを開いてtestbuffに入れ・・
for (int i = 0; i<10; i++){
fscanf (testbuff , "%d\n" , &suuji[i]); //testbuffかたsuuji[]という配列に格納して計算に使用したい。
}
こういう↑のをいれると、コンパイルは通りますが、実行時にどうしてもfsanfのエラーで強制終了になります。
どうしてですか?
そもそもfscanfは使えないんでしょうか?

743 名前:デフォルトの名無しさん :02/05/18 23:06
>>742
本当に10行あるのか小一時間。
通常はfscanfの返値で判断するっす。

744 名前:デフォルトの名無しさん :02/05/18 23:09
テキストファイルの内容をコピペしてくだされ

745 名前:デフォルトの名無しさん :02/05/18 23:10
それよりもfopenでちゃんとエラーのチェックしろよ。

746 名前:730厨 :02/05/18 23:14
>>743
早速の返答サンクスです。
test.txtのことですか?
それは
691
698
740



このようなのが100行以上続いています。。
返値ですか。。では返値についてもう少し調べてみます。。
ちなみにデバッグの画面では、
int __cdecl fscanf (
FILE *stream,
const char *format,
...
)
/*
* 'F'ile (stream) 'SCAN', 'F'ormatted
*/
{
int retval;
va_list arglist;
va_start(arglist, format);
→ _ASSERTE(stream != NULL);←ここに矢印が。。
_ASSERTE(format != NULL);
・・・
これは、testbuff(仮名)に値が入ってきていないということでしょうか?
それか、callocとか使ってメモリを確保しておく必要があるということでしょうか?(←ぜんぜん関係ないかも)

747 名前:730厨 :02/05/18 23:16
>>745
そうですね。
そもそもfopenで開けていない可能性が高いですね。
使用しているテキストファイルは
691
698
740
756
756
747
717
774
786


このような感じのものです。。200行くらい延々続きマス。

748 名前:デフォルトの名無しさん :02/05/18 23:19
>>742
・質問の最初のレスはageよう
・testbuffにNULLが入ってないか?fopenのヘルプを見よう。
if ( ( testbuff = fopen() ) != NULL ) {
処理
} else {エラー処理}
ぐらいが普通の書き方。

・fscanfの\nは要らんと思う(単に無視されるだけだが)


749 名前:730 :02/05/18 23:42
>>748
ご丁寧にありがとうございます!
前回sageにしたままになってました。。
で、
if(( testbuff = fopen("test","r")) != NULL ){
}
else{ c->InsertString(-1,"ダメダコリャ");
}
としたところ、やはりリストボックスcにダメダコリャが。。
ちなみにlongは%dでOKですよねぇ。。どうやらfopenの時点で失敗しているようです。
fopenを見直しながらもうすこし、粘ってみます。。

750 名前:デフォルトの名無しさん :02/05/19 11:08
==NULLにしとけ。


■過去ログ置き場に戻る■ 1- 前250 次250 最新50
DAT2HTML 0.33f Converted.