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


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

★初心者にVisual C++を教えるスレ★ Part8
501 名前:デフォルトの名無しさん :03/10/27 18:20
>>499
strncpyって事は、バッファはchar[]でしょ?
確保した領域以上に書き込もうとしてるんじゃないの?

502 名前:494 :03/10/27 19:01
というより、グローバル変数にアクセスした時点で違反が発生します。
デバッグで変数の内容見ても変な値になってるようですし…

503 名前:デフォルトの名無しさん :03/10/27 19:06
>>502
どっちにしても、不正なアドレスにアクセスしているのだろうから
途中でバッファに変なアドレスが格納されてないか良く確かめてみましょう。

504 名前:494 :03/10/27 19:11
externを使って外部変数を宣言するときの型を、
親側からコピペすればうまくいきました。

相談に乗って頂いてありがとう御座いました。

505 名前:デフォルトの名無しさん :03/10/27 19:13
>>504
デッバグする時はコードをもっとよく見ましょう。

506 名前:デフォルトの名無しさん :03/10/27 23:52
DLL使うと動作遅くなりますか?

507 名前:デフォルトの名無しさん :03/10/28 00:01
>>506
起動時にリンクするだけなので
速度は静的リンクの場合と同じだと思いますが。

508 名前:デフォルトの名無しさん :03/10/28 01:34
>>506
ほんのわずかだけ、遅くなります。
誰の人生にとっても殆ど無意味なくらいだけ。

509 名前:デフォルトの名無しさん :03/10/28 08:54
DLL使うと、メモリの節約になります・・・・ていうのは昔の話?
いまはサイドバイサイドとか言って、複数バージョンのDLL混在の時代かもねぇ・・・。

510 名前:471 :03/10/28 12:14
いまさらですが
>>473 30個くらいスレッド起きてますね...これがよくないのかなぁ。
>>475 そですよねー、結構ありますよね。

つーか。アサーションやWin32例外でアプリケーションが死んだ時も、
ブレークポイントを踏んだ時みたいにIDEとOSがまとめて固まるんだよな...
はぁ....

511 名前:デフォルトの名無しさん :03/10/28 13:26
>>510
スレッド起こしてるとIDE止まるのはよくあるけど、OS止まった経験はないなぁ。
#Win2k+VC6
尤も、起こしてるスレッドは高々20個ほどだしみんな待機系だけど。

512 名前:デフォルトの名無しさん :03/10/28 13:52
IDEは固まったように見えても5分ぐらい放置しておくと動き出すことない?

513 名前:デフォルトの名無しさん :03/10/28 15:23
>>512
あるある!
でも漏れはたるいんで再起動。

514 名前:デフォルトの名無しさん :03/10/28 15:27
5分も放置したことないよ・・・

515 名前:デフォルトの名無しさん :03/10/28 17:14
正直、5分は言い杉ですた

516 名前:デフォルトの名無しさん :03/10/28 17:44
画像をフルカラーから256色に減少させる関数というのは
あるんでしょうか。

517 名前:デフォルトの名無しさん :03/10/28 17:46
ブレークポイントが急にたくさん現れることがあるんだけど
これはどうして?白丸とかもあるし。ブレークポイントの位置の
検索はできないのかなぁ

518 名前:デフォルトの名無しさん :03/10/28 18:24
Ctrl+Bで一覧でなかったっけ?

519 名前:デフォルトの名無しさん :03/10/28 19:44
>>513
ログオフでも回避できるけどな。

520 名前:デフォルトの名無しさん :03/10/28 22:33
VC6でActiveXコントロールのFlexGrid使って実験データ処理のアプリを
開発したいのですが、intやdoubleをセルに突っ込めないのですか?
charしか駄目だとか言われます。つーか、全然フレックスじゃねー!
セルに直接書込む仕様にするにはEditBox重ねて誤魔化したりと、
これはVS-FlexGrid買わせるための罠か?


521 名前:デフォルトの名無しさん :03/10/28 22:40
実行した後にメモリが解放されきる前に再び
コンパイルするとエラーになります。
メモリ解放としてfree関数を使っているのですが、
インタフェースを閉じた後も解放されるのに時間がかかるんです
これはこんなものとして考えるのしかないのでしょうか。
それとも他にメモリを解放する関数はあるのでしょうか。

522 名前:デフォルトの名無しさん :03/10/28 22:53
>>521
インターフェイスが何のことかは知らんがいろいろ後処理に時間がかかってるだけでメモリの開放速度は無関係だろ。

523 名前:やまぁ ◆97dnDBrkmg :03/10/29 11:59
大学でVisual C++を始めたばかりの者です。
授業で簡単なC++の問題を出されたのですが、実行しても何故かエラーが発生します。
よろしければご指導頂けないでしょうか?
こちらの環境は、windows XP home pentium4 2.4GHz
使用ソフトはMicro soft Visual C++ 6.0です。

【問題内容】以下のプログラムをFDからデータを入出力するプログラムを作りなさい。
1から与えられた整数N(>1)までの和を求めるプログラムを作成し、適当な数を入力してプログラムを実行させなさい。
【入出力ファイル名】cqin.dat、cqout.dat
それで私が書いたプログラムは以下の通りです。

#include <stdio.h>
main()
{
FILE *fp,*fw;
fp=fopen("D:cqin.dat","r");
fw=fopen("D:cqout.dat","w");
int n,a,b;
fscanf(fp,"%d",n);
a=0;
for (b=0;b<=n;b++);
{
a=a+b;
}
fprintf(fw,"1からNまでの和は%dです。\n",a);
fclose(fp);
fclose(fw);
}

ちなみにFDからではなく、HDからの読み込み、書き込みにしてあります。
宜しくお願いします。

524 名前:デフォルトの名無しさん :03/10/29 12:34
>>523
ファイルオープンチェック入れたら先進むよきっと。
あと変数nが負数になる可能性無いの?


525 名前:524 :03/10/29 12:46
失礼設問にn>1って書いてた

526 名前:デフォルトの名無しさん :03/10/29 13:02
>523
&n

527 名前:デフォルトの名無しさん :03/10/29 13:05
というかスレ違いだろ。宿題スレ逝きなさい。

528 名前:デフォルトの名無しさん :03/10/29 14:41
何処に書こうか迷いましたが取り敢えずここに。
COMプロジェクトでクラスビューで追加したインターフェース名を後から変更って出来ないんですか?
.idlやら.hやら変更しても、どうも上手く行きません。
VC6でATL使用です。

529 名前:デフォルトの名無しさん :03/10/29 14:52
>>513
回避って言うより、甘受だな

530 名前:デフォルトの名無しさん :03/10/29 14:58
どうも上手くいきません、ってのが一番悪い質問の仕方

531 名前:デフォルトの名無しさん :03/10/29 15:59
>>530
しかし教えてくん養成マニュアルにはこのように書けと書かれていたのですが・・・

532 名前:デフォルトの名無しさん :03/10/29 16:05
>>531
おじさんつまんなーい。

533 名前:523 :03/10/29 16:12
有難う御座いました。
&が抜けていただけでしたね(汗)

続いて質問ですが、ソースをコンパイル中に

error C2664: 'fprintf' : 1 番目の引数を 'struct _iobuf' から 'struct _iobuf *' に変換できません。 (新しい機能 ; ヘルプを参照)
この変換を実行可能なユーザー定義変換演算子がないか、または演算子を呼び出せません。

というようなエラーが発生しますが、何のことだか全くわかりません。
作ったソースファイルは524の通りです。

ちなみにこのソースは、10人の生徒の学籍番号とテストの点数を入力して
ファイルに出力するプログラムらしいです。
google等の検索エンジンや、cの本を調べたのですが、なぜエラーが発生するのかわかりません。
わかる方がいれば宜しくお願いします。

534 名前:533の続き :03/10/29 16:12

#include<stdio.h>
main()
{
FILE *fr,fw;
int kekka[100][2],ninzu,i;
fr=fopen("D:cq5in.dat","r");
fw=fopen("D:cq5out.dat","w");
fscanf(fr,"%d",&ninzu);
for(i=1;i<ninzu;i++)
{
fscanf(fr,"%d %d",&kekka[i][0]);
if(kekka[i][1]>=80)
fprintf(fw,"%d Yuu\n",kekka[i][1]);
else if(kekka[i][1]>=70)
fprintf(fw,"%d Ryou\n",kekka[i][1]);
else if(kekka[i][1]>=60)
fprintf(fw,"%d Ka\n",kekka[i][1]);
else fprintf(fw,"%d Fuka\n",kekka[i][0]);
}
fclose(fr);
fclose(fw);
}


535 名前:デフォルトの名無しさん :03/10/29 16:14
何度もカキコすいません。訂正です。

× 作ったソースファイルは524の通りです。
○ 作ったソースファイルは534の通りです。

宜しくお願いします。

536 名前:デフォルトの名無しさん :03/10/29 16:14
>FILE *fr,fw;
これ。
FILE *frl;
FILE *fw;

537 名前:デフォルトの名無しさん :03/10/29 16:14
l は余計だった_| ̄|○

538 名前:デフォルトの名無しさん :03/10/29 16:25
なんで宿題スレに誘導されてるのに無視して再び質問するんだ・・・・

539 名前:デフォルトの名無しさん :03/10/29 16:39
IDEが固まるって香具師、窓XP使ってねえ?
もしそうだとしたら、IMEバーをタスクバーから出せば解決するよ。

540 名前:デフォルトの名無しさん :03/10/29 16:48
中学校の宿題?

1〜nの総和を、ベタに積和する、ってのは
for文を使わせたいからだろうけど、ちょっとね。

いや、nがいくつまでなら、ループでまわして、
いくつ以上なら乗算使ってもいいのか、
っていう考察をしる、ってことなのか?

541 名前:デフォルトの名無しさん :03/10/29 17:59
えーっと、では質問の仕方を変えます。
VC6でCOMプロジェクト作った時、インターフェースメソッド名をIDE上で変更するにはどうすればいいんでしょう?

542 名前:デフォルトの名無しさん :03/10/29 18:08
>>541
Alt+E, I でファイル全て (*.*) を検索して、出てきたところを全て書き換える。
実際には .idl, .j, .cpp, .rgs あたりだけでよいと思うけどね。

543 名前:デフォルトの名無しさん :03/10/29 19:45
>>538
てか答えるほうも無視すればいいのに…
宿題は自分の力で殺るもんだろーが。

>>539
2000でも起こるぞ!
それにXPなんぞ糞なもん使わんよ。

544 名前:デフォルトの名無しさん :03/10/29 21:58
Visual Studio .NET Academic と
Visual Studio .NET Professional Academic って同じものなのでしょうか?

もし違うとしたら、後者はプロダクトアクティベーション不要ですか?

545 名前:デフォルトの名無しさん :03/10/29 22:01
>>540
「積和」というのは掛けて(積)足す(和)から積和というのだが…。

546 名前:540 :03/10/29 22:18
吊ってくる。

547 名前:544 :03/10/29 22:19
吊ってきます。

548 名前:541 :03/10/30 11:39
>>542
.jと.rgsも書き換える必要があったんですか。
ありがとうございます。

549 名前:デフォルトの名無しさん :03/10/30 16:17
>>539
そういえば、その直後くらいから固まらなくなった気が……。

550 名前:471 :03/10/30 17:49
>>539
なんか漏れのVC++.NETのデバッガも安定してきたよ!
不思議不思議★ありがとう♪



551 名前:デフォルトの名無しさん :03/10/30 21:22
ファイルをドラッグアンドドロップで読み込む
方法がわかりません。
教えていただけませんでしょうか。

552 名前:デフォルトの名無しさん :03/10/30 22:16
>>551
マルチうざい。っと言おうと思ったが、
真の教えて君志望だっけか?ガンガレ。

553 名前:デフォルトの名無しさん :03/10/30 22:39
>>551
DragQueryFileで調べろ。

554 名前:デフォルトの名無しさん :03/10/30 23:33
非常に幼稚な質問で申し訳ないのですが、未だにプログラムを動かすことすら
できません。状態はと言いますと、>>79さんとまったく同じです。貼り付けると

新規作成からwin32プロジェクト、
コンソールアプリケーション、空のプロジェクトを選択し、ファイルを新規作成し、
コードを入力してビルドからデバックを開始しても、
「デバックを開始できません。指定されたファイルが見つかりません。」
と表示されてしまいます。

で、>>80さんが的確に助言をだしているので、やってみれば一度はできたの
ですが、2回目できたなくなってしまったのです・・・。
とりあえず今とまっているのは、新規作成→プロジェクト→Win32プロジェクト
→コンソールアプリケーション、空のプロジェクト→完了→新しい項目の追加
ときたところでC++ファイルを選択しようと思ったのですが、ありません。
変わりにテキストファイルなどがあるだけです。

もう一つ困ったことは、以前まではファイル→新規作成→ファイル→C++ファイル
でプログラムを打つ→ビルド→(ファイル名)をビルドと表示されたのですが
それすらも表示されず、かわりにソリューションのビルドというものが
表示されます。もうどうしたらよいかわからず途方にくれております。
XP,Visual C++.net standard version2002 です。よろしくお願いします。 

555 名前:デフォルトの名無しさん :03/10/30 23:44
ファイル→新規作成→ファイル→C++ソースファイルで新しいcppファイル作っても駄目か?

556 名前:デフォルトの名無しさん :03/10/31 00:00
>>554
コードを書いたファイルを開いて、なにも考えずF5押す。

557 名前:デフォルトの名無しさん :03/10/31 00:06
>>555
やはりだめです。そもそも上でも書いてるようにビルドができないのです
。ソリューションのビルドしか表示されないのです。初めはビルドでき
たのですが・・・。

>>556
名前をつけて保存→デバックを開始できません、指定されたファイルが
みつかりません となります。どうしたらいんでしょ。もうかれこれ
2時間はさまよってます・・・・。

558 名前:デフォルトの名無しさん :03/10/31 00:11
>>557
>新規作成からwin32プロジェクト、コンソールアプリケーション、
>空のプロジェクトを選択
まで(ファイルを追加しない)でビルドするとどうなる?

559 名前:デフォルトの名無しさん :03/10/31 00:40
>>558
すいません、新規作成から空のプロジェクトまできて完了をクリックすると
スタートページが表示されているだけでプログラムは打っていないのですが
何をビルドするのでしょうか?

560 名前:デフォルトの名無しさん :03/10/31 00:42
デバック・・・

561 名前:デフォルトの名無しさん :03/10/31 00:42
>>559
もちろんプロジェクトを。

562 名前:デフォルトの名無しさん :03/10/31 00:44
>>558
すいません、新規作成から空のプロジェクトを選択ときて完了をクリックすると
スタートページが表示されてるだけで何のプログラムも打たれて
いないのですが、何をビルドしたらいいんでしょうか?

563 名前:デフォルトの名無しさん :03/10/31 00:45
>>558
すいません、新規作成から空のプロジェクトを選択ときて完了をクリックすると
スタートページが表示されてるだけで何のプログラムも打たれて
いないのですが、何をビルドしたらいいんでしょうか?

564 名前:デフォルトの名無しさん :03/10/31 00:46
>>558
すいません、新規作成から空のプロジェクトを選択ときて完了をクリックすると
スタートページが表示されてるだけで何のプログラムも打たれて
いないのですが、何をビルドしたらいいんでしょうか?

565 名前:デフォルトの名無しさん :03/10/31 00:49
げ〜多重すいません・・・、情けない。
で、ビルドを押すと、そこで表示されるのがやはりソリューションの
ビルドでした・・・。以前のようにファイル名のビルド が表示
されませんでした。ちなみにソリューションのビルドを実行し、
デバックなしで開始をしてみても「デバックを開始できません、
指定されたファイルがみつかりません」が表示されてだめでした。

566 名前:デフォルトの名無しさん :03/10/31 00:52
「ファイル名」のビルドなんかあったか?

567 名前:デフォルトの名無しさん :03/10/31 00:54
ファイル名の部分に自分で決めたファイル名が表示されるってことです。
確かそんな感じだったと思います。しかし、なぜできないんでしょうか・・。

568 名前:デフォルトの名無しさん :03/10/31 01:34
>>567
いや、俺はそんなのは見たこと無いが。
VSはファイルは「コンパイル」、プロジェクト・ソリューションは「ビルド」と使い分けてるから。

ところで指定されたファイル(=プロジェクトのビルド結果のEXE)はある?

569 名前:デフォルトの名無しさん :03/10/31 01:44
ないみたいです・・・。そりゃ実行できないか・・・。
あのソリューションのビルドってのがだめなのではないのですか?

570 名前:デフォルトの名無しさん :03/10/31 01:50
>>569
空のプロジェクトをビルドしても何も無いのは正常。
空じゃないプロジェクトをビルドした時、EXEファイルはある?

571 名前:デフォルトの名無しさん :03/10/31 02:11
いや、ないみたいです。

572 名前:デフォルトの名無しさん :03/10/31 02:24
>>571
空じゃない=なんらかの関数の書かれたソースファイルがC++ファイルとしてコンパイルされている
だけど
エラーも出てないわけね?
CPPファイルのプロパティ->全般->ツールがちゃんと「C/C++ コンパイラ ツール」になってるか確認
中間ファイルはあるかどうか確認
もし無いならDebugフォルダは作られてるのかどうか
プロジェクトのプロパティで出力フォルダ名も確認
書き込み権があるかどうか確認
出力フォルダ名がMAX_MATHより長いと失敗する可能性もあるかも
何らかの常駐ソフトが新規作成されたEXEを片っ端から消してるかも
くらいしか思いつかないな。

573 名前:デフォルトの名無しさん :03/10/31 03:35
>>2の「猫でもわかるプログラミング」のお勧めに従って
BCCとBCC Developerを入手したのですが、
VBのように、クラスや関数の入力ヒントや入力支援が出て来るエディタご存知ないでしょうか?
記憶力が弱いもんで・・
VBではがんばってクラス作ると入力ヒントや入力支援が付くので
その後楽になるためにやる気も起きるんですが、
それがないとクラスを増やすことによってかえって覚えることが増えてしまうので、
作り溜めても自分で使い方忘れて面倒になって使わなくなったり、
なるべくクラス化しない方向に行ってしまいそうな気がします。

574 名前:デフォルトの名無しさん :03/10/31 03:43
>>573
VisualStudio

575 名前:573 :03/10/31 04:39
>>574
いや〜んほんとでした。失礼しました。

576 名前:デフォルトの名無しさん :03/10/31 08:59
>>562->>564
荒らしか。と思ったら真性かよ。始末に終えねーな。

577 名前:デフォルトの名無しさん :03/10/31 10:03
RemoteDesktopとかVNCとかで、やり方を見せてやりたいな。

578 名前:デフォルトの名無しさん :03/10/31 11:05
>>571

プロジェクトじゃなくてソリューションの方にファイルを追加してた、に一票。

579 名前:デフォルトの名無しさん :03/10/31 12:59
エスパー

580 名前:539 :03/10/31 15:55
約二名ほどのお役に立てたようで誠に重畳。
ちなみに窓2Kで固まる香具師には以下の呪いが効くかも知れぬ。

キーボード(言語)のプロパティの近辺にある「詳細なテキストサービス」をOffにする

元ネタはWinFAQ。

581 名前:デフォルトの名無しさん :03/10/31 18:12
#include <stdio.h>

class test
{
int a;
public:
int b;
}

int main(void)
{
return 0;
}

相当基本的なことだと思うんですが、上のコードでコンパイル
できません。クラスの定義あたりでエラーがでます。
何を勘違いしてるのかよかったら教えてください。

XPSP1 VC++(2003)

582 名前:デフォルトの名無しさん :03/10/31 18:20
int main(void)

;int main(void)
にしなさい

583 名前:デフォルトの名無しさん :03/10/31 18:41
>>582
RESありがとうございます。
でも、これで解決できなかったです。
なんでだろうなぁ

584 名前:デフォルトの名無しさん :03/10/31 18:47
>>583
.cppのソースで
int b;
} ←これを「};」に置き換えなさい

585 名前:デフォルトの名無しさん :03/10/31 18:52
>>582,584
RESありがとうございます。
今別のプロジェクト「Win32コンソール」を作って、それに貼り付けて
(もちろん;を付けて)そしたらコンパイルできました。
前のは同じ「Wi32コンソール」でしたが、空のプロジェクトに
main.cを新しく作ってそこにソース書いていました。
原因が他のとこにありそうなので探して見ます。

586 名前:デフォルトの名無しさん :03/10/31 18:55
>>582,584
ごめんなさい、拡張子をc→cppにしたら正常になりました。
まさか拡張子だけでソースの扱いが違うとは思ってませんでした。
教えていただきありがとうございました。

587 名前:BASICしかやったことない男 :03/10/31 19:10
クラスってサブルーチンとは違うの?

クラスってどういう状況で使ったらいいんでしょうか。

588 名前:デフォルトの名無しさん :03/10/31 20:52
デバッグ機能について教えてください。

(1) ウォッチウインドウではenum型の変数の値は整数値として表示されるのですが、
   対応する定義名(enum {AKA, SHIRO} a;ならAKAやSHIROを表示させる方法は
   ないでしょうか?

(2) gdbなどのように、ステップ実行中に好きな関数を呼ぶことはできないのでしょうか?
  p PrintTree(t) のように自前のダンプ関数を呼んで値を確認したいのですが…。

589 名前:デフォルトの名無しさん :03/10/31 21:05
>>587
機能があってそれで解決できる問題があるんじゃない。
問題があってそれを解決するための機能があるんだ。
クラスの使いどころを聞く前にクラスを使わざるを得ない問題にぶち当たるまで数こなせ。

590 名前:デフォルトの名無しさん :03/10/31 22:46
>>587
つーか、Basicにだってクラスの概念はあるだろ?

591 名前:デフォルトの名無しさん :03/10/31 23:52
ClassViewタブでメンバ変数を追加したときに
いちいちクラスのツリーが閉じてしまうのですが
どうにかなりませんか?

592 名前:デフォルトの名無しさん :03/10/31 23:59
>>590
VBにはある
C→C++
B→VB

593 名前:デフォルトの名無しさん :03/11/01 01:52
VisualC++6.0で関数を書くと引数が表示されますよね。
あの機能でマクロの引数も表示できないのでしょうか?

ちなみに.Netでは普通に出てたのですが・・・。
もしかして6では無理ですか?

594 名前:デフォルトの名無しさん :03/11/01 02:21
Doc/Viewが全然分かりません。

595 名前:デフォルトの名無しさん :03/11/01 02:25
>>593
VC++6.0じゃ無理では?
というか、.NETのインテリセンスってマクロもOKなの?
と言う事は、#defineもすべて補間されるの?

596 名前:デフォルトの名無しさん :03/11/01 02:56
>>593
#if defined(__DEG_TO_RAD__)
float DEG_TO_RAD(d){}
#endif

#define DEG_TO_RAD(d) (d * (3.14159265358979323846f / 180.0f))

無理矢理だけど一応表示される。

597 名前:デフォルトの名無しさん :03/11/01 02:57
VC++.NET 2003 でXPスタイルを使う方法を教えて下さい。
他から取って来たソースをコンパイルするとうまくなるのですが自分で作ったプログラムはなりません。

598 名前:588 :03/11/01 08:05
やはりVC++では無理なのでしょうか…。

599 名前:593 :03/11/01 09:28
>>595
はい、.Netはマクロもインテリセンスが効いてました。
この点は便利なんですが、操作性や重さにちょっと難がありまして・・・。

>>596
確かに無理矢理っぽいけど、これでも行けそうですね。
ちょっと考慮してみます。


600 名前:デフォルトの名無しさん :03/11/01 10:04
>>587
まったく別物。

601 名前:デフォルトの名無しさん :03/11/01 14:35
>>588
・enum値は表示されなかったっけ? 少なくとも私は表示されたのを見た気がする。
・関数を呼ぶのは知らないけど、デバッグ中にブレークしたところより先のソースは
変更可能だからそれで対応したことはある。

602 名前:デフォルトの名無しさん :03/11/01 16:22
>>587
クラスではインスタンスごとに別々にプロパティを持てる。

603 名前:デフォルトの名無しさん :03/11/01 21:05
ダイレクトXを勉強してるんですが
ダイレクトXの入門書にあるサンプルプログラムを
ビルドしてみたんですがエラーになってしまいました
ウィンドウを表示するだけの簡単なプログラムなのですが
原因がわからなくて困ってます
どうすれば解決できますか?
以下はエラー文です

Base fatal error LNK1104: コンパイラは、ファイル './/Base.exe' を開くことができません。


604 名前:デフォルトの名無しさん :03/11/01 21:25
VC++5.0&Win2000でOpenGLの勉強をしております。
glutというライブラリを入れたいと思い、

glut.h,glut32.lib,glut32.dll

が必要とのことなので
http://www.xmission.com/~nate/glut.html
のglut-3.7.6-bin.zip を取ってきました。

glut.hをVC/include/glに、
glut32.libをVC/libに、
glut32.dllをWINNT/systemに入れました。
また、プロジェクトの設定でリンク->ライブラリモジュールにglut32.libを追加しました。

そしてglut系の関数を書いてコンパイルしてみたのですが、

>C:\Program Files\DevStudio\VC\LIB\glut32.lib :
>fatal error LNK1106: ファイルが無効であるか、 またはディスクがいっぱいです
>: 0x3beab413 にシークできません

と出ます。どうしたらいいでしょうか。

605 名前:  :03/11/01 22:53
                 選挙だワッショイ!!
 +            \\  選挙だワッショイ!! //
       +        \\ 選挙だワッショイ!!/             +
  +                          +/■\  /■\
 +  /■\    /■\  /■\  /■\ ( ´∀`∩∩´∀` ) ∩ /■\ +
.   ( ´∀`)   ( ´∀`∩(´∀`∩)( ´∀`) (つ   丿ヽ  ⊂丿  ヾ(゚Д゚ )
 (( ( つ  ~つ )) (つ   ノ (つ  丿(つ  つ ( ( ノ  ( ( ノ ))  /   ⊃ )) +
   乂  ((⌒) )) ヽ  ( ノ ( ヽノ  ) ) )  し'し'   し'し'    0_ 〈
    (__)   /■\)し' し(/■\_)_)  /■\   ピョーン   .   `J  *
         (( n´∀`n) ))  ( ´∀` )     ( ´∀`)    /■ヽ
  /■\○   ヽ    )    と    ⊃    _ / つ つ ))  (゚ー゚*)      /■\
と(´∀`と~⌒つ (⌒(⌒)     /  ,、 ヽ  (( ( `(  Y    (( とと ヽ  と⌒~つ´∀`)つ
         /■\   ∩■\(__) /■\゙     /■\      /■\
       ( ´∀` )   | |.´∀`)   (´∀` )    ( ´∀`.)     (´∀` )
      ⊂     づ  /    ,⊃ (⊂、   づ   O    ,O゙    ⊂  ⊂ヽ
    (( ⊂,,,  ノ゙ (((  ,,_,,づ  ((⊂,,,_,, )  (( (  ,,_,,つ )  ((⊂,,__,, )))
   /■\(__/,, /■\),,    /■\(_/,   ∩ヽ_),,   /■\b (_/  ./■\
   ( ´∀`)⊃  ( ´∀`)   (´ー` )     ( ⌒つ )) ( ´∀` ) )    (´ー` )
(( と     ノ (( ( つと )  (( と と ヽ     |/■\ (( (6    ノ  (( と と  )

              創価学会と同じでイイ人 →自民党に投票!
               新しい空気にしたい人  →民主党に投票!

          みんなで選挙に行こう。不在者投票もあるよ。日本を変えよう。

606 名前:デフォルトの名無しさん :03/11/01 23:02
同じソースが会社の環境だとビルドとおるのに
自宅だと以下のエラーが出てとおりません。

これってVisualC++のバグなんでしょうか?
それとも何かパッチをあてる必要があるのでしょうか?
ちなみにWindowsのSPはどちらの環境もSP4です。

===========================================================
error C2678: 二項演算子 '==' : 型 'const class tokenizer'
の左オペランドを扱う演算子は定義されていません。
(または変換できません)(新しい動作; ヘルプを参照)
===========================================================

どなたか解決方法をご存知の方は教えてください。
よろしくお願いします。

607 名前:デフォルトの名無しさん :03/11/01 23:10
sin(nx-ωt)
みたいに波が時間ごとに進行して行く様子を描きたいのですが、
計算をしながらリアルタイムに動かしつつ
且つ時間の流れが画面の中と現実で同じようにするってどうやるんですか?

608 名前:デフォルトの名無しさん :03/11/01 23:36
>>607
俺も似たようなこと殺ったな。ADボードで取り込んだ波形をスクロールして表示させるっつうの。
もっとも1秒単位で取り込んでるから一秒ほど遅れるけどな。
まぁ方法としてはメモリビットマップを作成して波形を描画した後、
それを少しずつずらしながらウィンドウにコピーすればいいんじゃねーの?

609 名前:607 :03/11/02 00:22
>>608
少しずつずらすときの時間間隔の指定ってどうやればいいですか?

610 名前:デフォルトの名無しさん :03/11/02 01:11
WindowsXPとVisual C++ 6.0な環境なのですが,Borland C++ Version 3.1で
作成されたコードをコンパイルしたいのですが,BCCのmakefileの記述を
VCではどこに記述したらよいのか分からず困ってます.
どなたか教えてもらえないでしょうか.

# makefileが無いとなんか変な感じがする...

611 名前:デフォルトの名無しさん :03/11/02 01:30
リソースのビットマップって256色までしか読み込めないの?
フルカラーは無理?編集するときどうすればいいの?

612 名前:デフォルトの名無しさん :03/11/02 01:37
>>609
sleep

613 名前:609 :03/11/02 01:45
ある簡単な物理現象を微分方程式を使って数値積分しながら、
実際の丁度1/10の速度で描写したいときは
数値積分の計算時間も含めて
1/10の速度にするって方法みたいなのはないですか?

614 名前:デフォルトの名無しさん :03/11/02 07:18
>>613
近年のPCなら、数値積分の計算時間は一瞬でしょ?
ほぼ無視できるぐらい。
どうしてでも気になるなら時々現在時刻とでも照らし会わせ、時間補正をすれば?

615 名前:デフォルトの名無しさん :03/11/02 07:52
>>614
物理現象と言ってるのに現在時刻?
秒単位の物理現象ですか?

timeGetTime()程度はさ…

616 名前:デフォルトの名無しさん :03/11/02 08:12
COMオブジェクトを利用するときに,
事前にCoInitialize() or CoInitializeEx()を呼び出す必要がありますよね。

で,例えばCOMオブジェクトをラップしたクラスを作成したとして
CoInitialize()はどこで呼び出すのが適当なのでしょう?
普通は,プログラムの始めに呼ぶのでしょうけど,
これだとクラスの使用者にCOMオブジェクトを使ってることを
意識させてしまうことになりますよね?
何か定石のようなものは無いのでしょうか。お願いいたします。

617 名前:デフォルトの名無しさん :03/11/02 09:06
>>606
多分バージョンの違いだと思う。
両方同じバージョンにするかマクロで処理するか。

618 名前:デフォルトの名無しさん :03/11/02 10:58
>>610
単純なソースの登録だけなら「プロジェクトに追加」「ファイル」でOK。
細かな処理をさせたければ「プロジェクトの設定」のタブと睨めっこ。

619 名前:デフォルトの名無しさん :03/11/02 15:50
今最新のVisual Cってバージョンはいくつですか?

620 名前:593 :03/11/02 16:07
2003と最初にでた.NETのVC++で大きな変更点ありますか?

621 名前:デフォルトの名無しさん :03/11/02 16:26
>>588
どちらも無理.
VCのデバッガってよく出来てると思うけど,ところどころ基本的な機能が抜け落ちてる.

622 名前:デフォルトの名無しさん :03/11/02 16:32
>>618
makefileで複数の実行ファイルを作っているので,そのままファイルを追加して
実行すると「すでに定義されています」のメッセージがでてしまいます.
そのためVCでもmakefileを書こうかと思ったのですが,どうやって書けばいいのか,
もしくは依存関係をどうやって指定したらよいのか分かりません.
どなたかご教授願います.


623 名前:デフォルトの名無しさん :03/11/02 16:35
>>620
見た目はあんま変わってないがコンパイラの標準準拠度が格段に上がってる。

624 名前:デフォルトの名無しさん :03/11/02 16:45
HRESULTをヘルプ検索しても英語なのでよく分からない
へたれですが日本語でどういう意味でしょうか?

625 名前:デフォルトの名無しさん :03/11/02 16:46
boostが100%通るぐらいな。
なんか誇らしい気分。

626 名前:デフォルトの名無しさん :03/11/02 18:01
>>624
HRESULTのHはハンドルのHでしょ。
RESULTは結果という意味だから「結果のハンドル」では?

627 名前:デフォルトの名無しさん :03/11/02 18:41
子ウィンドウでCTabCtrlを以下のようにして作っているのですが、

窓クラスA::OnCreate()
 m_tab.Create(WS_CLIPCHILDREN |TCS_MULTILINE|WS_VISIBLE|WS_CHILD,CRect(0,0,0,0),this,NULL)

そのタブがクリックされた時に、窓クラスAの
OnChildNotify() が呼ばれません。どうしたら、子ウィンドウの
CTabCtrlから通知メッセージが来るのでしょうか?

628 名前:627 :03/11/02 18:42
すいません。環境は VC++.net 2003 です。
よろしくお願いします。

629 名前:627 :03/11/02 19:59
CTabCtrlの派生クラスを作って解決しました。

630 名前:デフォルトの名無しさん :03/11/02 20:09
Microsoft Visual C++6.0使ってるんですけど
curses.h ってファイルが見つからないんです
どこにあるんでしょうか?

631 名前:デフォルトの名無しさん :03/11/02 20:17
>>621
watch windowで関数コールできるのだが。

632 名前:デフォルトの名無しさん :03/11/02 20:53
>>630
UNIX用じゃん

633 名前:デフォルトの名無しさん :03/11/03 00:41
クラスウィザードで新規のクラスを作成したあと、
それを安全に削除したい場合はどうしたらよいですか?
何だかソースファイルを削除したら
クラスウィザードには削除したクラスの情報が残っていたりして変です。

634 名前:デフォルトの名無しさん :03/11/03 01:05
VC++のデバッガってあれか。PCの操作もろくにできないのか。
おまけにメモリに書き込みもできやしないじゃないか。

635 名前:デフォルトの名無しさん :03/11/03 02:45
>>633
クラスウィザードで削除できたと思うが。
気になるなら、プロジェクトを一旦閉じてプロジェクト名.clwを削除してしまえば綺麗になる。

>>634
メモリへの書き込みくらいできるよ。勿論、ターゲットプログラムの扱うメモリって意味で。

636 名前:r :03/11/03 08:01
デバッガで、文字列を簡単に書き換える方法って無いですか?

637 名前:デフォルトの名無しさん :03/11/03 08:39
>>636
簡単かどうかは兎も角、あります。
CStringなんかならWatchWindowでそのまま入力、char *なんかならアドレスをコピーしてMemoryWindowで入力。

638 名前:デフォルトの名無しさん :03/11/03 09:46
>>635
ん?FileViewでソースファイルとヘッダファイルを削除すればいいんじゃないの?

639 名前:デフォルトの名無しさん :03/11/03 13:57
CFileDialog関数でファイル(dat)を指定し,そのファイルのフルパスを
GetPathNameでもらって,そのファイルを読み込もうと思ったら,
そのファイルがないってエラーが出るんです.

それと関連して,CFileDialog関数を通ると,今までにあらかじめ指定して
おいたファイルまで読めなくなってしまうのです.

つまり,CFileDialog関数を呼び出すボタンを押さずに実行すると,
回るのに,CFileDialog関数を通ると,そのCFileDialog関数の中の
変数は何一つ用いていないのに,あらかじめ指定しておいたファイルが
読めなくなって,エラーがでるんです.

CFileDialog関数を通ると,ファイルの読み方に違いが生じるのでしょうか?
今回のエラーは本当にさっぱり見当がつきません.ご助言お願いします.

640 名前:デフォルトの名無しさん :03/11/03 14:03
>>639
カレントディレクトリが変わってるんだろ。

読み込むファイル指定をするときにフルパスにしれ。

641 名前:639 :03/11/03 14:27
>>640
お返事ありがとうございます.

読み込むファイルをあらかじめ指定しておくときに,
フルパスにしても,エラーが出ます.

先ほど,馬鹿な間違いに気づき,CFileDialog関数からファイルを
指定して,フルパスをもらってそのファイルを読み込むことはできたのですが,
やはり,あらかじめ指定したファイルがフルパスで指定していても,
エラーが出てしまいます.フルパスもアドレスからコピペしているので
打ち間違いはないと思うのですが・・・

カレントディレクトリをもとに戻す方法はあるのでしょうか?

642 名前:デフォルトの名無しさん :03/11/03 14:36
>>641
アドレスをコピペしたら\がそのままじゃないか?\\としてるか?

例 "C:\\dir\\file.txt"

643 名前:639 :03/11/03 14:49
>>642
ご指摘されたとおりでした・・・
稚拙な質問で申し訳ありませんでした.

あともうひとつ,分からないことがあるんですが,
あらかじめフルパスを指定しておくと,他のユーザが
他のPCで利用したときに,もちろんエラーがでると思うのです.

今まではカレントディレクトリが変わることがなかったので,
相対パスで指定することによって,それをカバーしてきたのですが,
CDialogFileを利用するとそれも無理そうなので,カレントディレクトリを
戻す方法があればご助言お願いします.

他にも上記の問題が解決する方法があればお願いします.

644 名前:デフォルトの名無しさん :03/11/03 15:10
リソースのツールバーのアイコンを間違って消してしまって、
フロッピーのアイコンとかを元に戻したいときは
どこから引っ張ってくれば良いのですか?

645 名前:639 :03/11/03 15:20
解決しました.お返事くださった方ありがとうございました.

646 名前:デフォルトの名無しさん :03/11/03 16:17
ダイアログ自体およびそれに関わる関数などを
削除するにはどうすれば良いでしょうか?



647 名前:デフォルトの名無しさん :03/11/03 16:33
>>643
>カレントディレクトリを戻す方法
んなもん起動時にカレントディレクトリのフルパスを記憶しておいて、
その記憶しておいたディレクトリに移動すればいいだけだろ。

648 名前:デフォルトの名無しさん :03/11/03 18:43
VC++の良書キボンヌ

649 名前:デフォルトの名無しさん :03/11/03 19:40
>>643
m_ofnだかのFlagsにOFN_NOCHANGEDIRを追加
>>644
ニセプロジェクトを一個作ってコピペ
>>646
ファイルごとプロジェクトから外す

650 名前:デフォルトの名無しさん :03/11/03 19:48
>>649


651 名前:デフォルトの名無しさん :03/11/03 20:00
クライアント領域に連続描画していってアニメーションさせるとき、
一回メモリ上のキャンパスに描いてから、それをビューに映して
ちらつきを抑えるみたいなテクニックってありますか?
どうやるんですか?

652 名前:デフォルトの名無しさん :03/11/03 20:02
ダブルバファリン

653 名前:デフォルトの名無しさん :03/11/03 20:37
>>651
メモリDC?

これとかどうでしょう。
http://www.codeproject.com/gdi/flickerfree.asp?target=CMemDC

654 名前:651 :03/11/03 21:09
あっ、それです。>メモリデバイスコンテキスト

655 名前:デフォルトの名無しさん :03/11/03 21:15
>>651
第26章 ビットマップ画像の表示
http://www.kumei.ne.jp/c_lang/sdk/sdk_26.htm

656 名前:651 :03/11/03 21:30
ウホッいいHP

657 名前:651 :03/11/03 22:06
>>653
そのコードを写さないとメモリDCの機能は使えませんか?
そのくらいの機能は最初からMFCにないんですか?

658 名前:デフォルトの名無しさん :03/11/03 22:13
>>657
ねーよ馬鹿!
めんどくさくてもメモリDCとメモリBMPつくらんと無理。
常識だろ?

659 名前:デフォルトの名無しさん :03/11/03 22:15
>>658
馬鹿の一言にいちいち反応してたら身が持たんよ

660 名前:デフォルトの名無しさん :03/11/03 22:16
>>657
単純すぎてサポートのしようが無いからだろ。
具体的にどうしてくれたらうれしいんだよ。

661 名前:デフォルトの名無しさん :03/11/03 22:18
むしろ
そのくらいのことは自分でやれ

662 名前:デフォルトの名無しさん :03/11/03 22:21
ダイレクトXのプログラムを作るときって
プロジェクトを作った後
d3d9.lib d3dx9.lib dxguid.lib winmm.lib
とかいうのをいちいちリンクさせないといけないから
めんどくさいです。
プロジェクトを作ると同時に勝手にリンクしてくれる
ように設定できませんか?
コンパイラはc++.netです

663 名前:デフォルトの名無しさん :03/11/03 22:25
>>662
#pragma comment( lib, "d3d9.lib" )
以下略

を書いたヘッダをどこかの共通フォルダに保存しておいて。
新しく作ったプロジェクトのソース内のどこかで

#include "さっきのヘッダ"

書くよろし

664 名前:デフォルトの名無しさん :03/11/03 23:21
いちいちいんくるーどさせないといけないから
めんどくさいです。

665 名前:デフォルトの名無しさん :03/11/03 23:40
マウスの動きをグローバルフックするためにDLLを書き、
フックをセットするときに呼び出し側のHWNDを渡し、DLL側の変数に保存、
フックしたらPostMessageするようにしたのですが上手くいきません。

フック自体は上手くいっているのですが、PostMessageが出来ません。
渡したはずのHWNDが上手く保存されていないみたいなのです。

呼び出し側のウィンドウ上でマウスを動かした場合は
DLL側のWHND変数はフックをセットしたときに渡したHWNDの値で、
ちゃんと呼び出し側にPostMessageされるのですが
呼び出し側ウィンドウ以外の場所ではDLL側のHWND変数が0になってしまいます。

どなたかアドバイスお願いします。

666 名前:デフォルトの名無しさん :03/11/03 23:48
>>665
アドレス空間が異なるので当然の結果である。
好きな方法で共有すればうまくいく。

667 名前:デフォルトの名無しさん :03/11/03 23:51
>>665
>>DLL側の変数に保存
この変数は、プロセス間で共有するように処理してるか?
変数はそのプロセスでのみ有効。
他のプロセスでも使いたいなら、#pragmaやファイルマッピングで
共有するようにしないと。

668 名前:デフォルトの名無しさん :03/11/03 23:55
>>664
それじゃカエレ。
宣言不要な旧VBでも使ってろ。

669 名前:デフォルトの名無しさん :03/11/04 00:05
>>665
Postが出来ないっていうより ウィンドウハンドル が取得できてない、もしくは取得
できたんだけど渡せない、ってことでしょ。
自分が何を聞きたいのかを分析し、できるだけ単純化した例を挙げるなりしたほう
が有効な回答を引き出しやすいと思うぞ。

>渡したはずのHWNDが上手く保存されていない
って聞かれても、”渡したんだろ?”で終わっちゃうよ。
どのように渡してるのかなど明確に。

>>667
偉いね。

670 名前:デフォルトの名無しさん :03/11/04 01:00
Visual C++6.0 応用50例という本を買ってみました。
これマジで糞です。助けてください。

671 名前:デフォルトの名無しさん :03/11/04 01:02
>>670
内容が知らないからよう分からんが・・・
なぜ買った?

672 名前:デフォルトの名無しさん :03/11/04 01:14
役に立ちそうな雰囲気を醸し出していたからです。

673 名前:デフォルトの名無しさん :03/11/04 01:19
>>664
あらかじめ、>>663のように記述したヘッダを含んだプロジェクトを作っておいて
DirectXのプログラムする時は、そのプロジェクトをテンプレートにすれば良いのでは?

674 名前:デフォルトの名無しさん :03/11/04 01:21
>>672
おまえの負けだ。

675 名前:デフォルトの名無しさん :03/11/04 01:25
あとC/C++プログラミング辞典というのも駄目駄目だった。

676 名前:デフォルトの名無しさん :03/11/04 02:30
上のほうでメモリDCの質問をした者ですが、
一度に複数のメモリDCを作ることってできますか?
リソースのbmpファイルを読み込むためにひとつと、
それをメモリDCに描く用にひとつが必要だと思うのですが。

677 名前:デフォルトの名無しさん :03/11/04 02:33
DrawState

678 名前:676 :03/11/04 03:12
CDC dc_bitmap,Memdc;
dc_bitmap.CreateCompatibleDC(pDC);
Memdc.CreateCompatibleDC(pDC);
のようにやっても、何故か下のメモリDCが作られません。

dc_bitmapにビットマップイメージを読み込んでから、
Memdcにdc_bitmapをBitBltで転送して、他にも何か書いてから
*pDCにMemdcをBitBltで転送して表示したいのですが。

679 名前:デフォルトの名無しさん :03/11/04 03:20
>>678
質問直後の俺のありがたい一言レスをことごとく無視してくれやがりましたね。
まぁ損をするのはお前なのでどうでも良いが。

そんなお前はここでも読んでなさい。
http://www.microsoft.com/JAPAN/developer/library/vcmfc/_mfc_cdc.3a3a.createcompatibledc.htm

680 名前:676 :03/11/04 03:31
バファリン?とか良く分かりませんでした。
とりあえず、まだ良く分かりません。どうすればいいんですか?

681 名前:デフォルトの名無しさん :03/11/04 03:43
MemdcからpDCに転送するときBitBltは使えませんか?
というか、どうやってメモリDCから本DCに移すのか分かってませんでした。
どうやるんですか?

682 名前:デフォルトの名無しさん :03/11/04 03:50
こういう処理のことをDouble Bufferingと呼ぶ。
いちいちビットマップをDCに設定しなくても DrawState で直接描画できる。
Memdc の CreateCompatibleDC は成功しているが、初期設定されているビットマップが 1x1x1 しかないから自分で必要なサイズのビットマップを作って選択しなきゃいけないの。


683 名前:デフォルトの名無しさん :03/11/04 08:55
>>670
てかその手の本で役に立つ物を見たことが無い。

684 名前:デフォルトの名無しさん :03/11/04 08:57
>>678
そりゃそうだろ。メモリBMPを作って選択してねーじゃねーかよ。

685 名前:676 :03/11/04 09:38
>>684
メモリBMPを作って選択ってどうやるんですか?
よろしければ教えていただけますか?

686 名前:665 :03/11/04 13:15
解決しました。
つか、そもそもどこもおかしくありませんでした。
寝ぼけていて、ちゃんと動いているのに気がついていなかっただけで
おかしかったのは人間の頭の方でした。

>>666 >>667
もちろん#pragma data_seg して リンカオプション /SECTION 設定していました。

>>669
ウフ。

687 名前:デフォルトの名無しさん :03/11/04 17:20
C++.NETでプロセス制御のプログラムを作っているのですが
自プログラムがアクティブでない時でもコントロールボタンが押されたら
自プログラムを終了させたいのですがどうしたらいいのでしょうか?
(OS:XP PRO C++.NET)

RegisterHotKey関数を使えばいい所までわかったのですが
どう使っていいのかよくわかりません・・・

while(1)
{
//対象パス取得
pInfo->FileName=Str_Key1;
pInfo->Arguments=Str_option1;

//プロセス実行
Process* Key1 = Process::Start(pInfo);
int a=RegisterHotKey(this->Handle,0x0000,MOD_CONTROL,VK_SPACE);

if(a==0)
{
break;
}
//プロセス終了まで待機
Key1->WaitForExit();

Key1->Close();
}

688 名前:デフォルトの名無しさん :03/11/04 17:45
>>684
CBitmapのCreateCompatibleBitmapでビットマップ作ってSelectObjectで選択しろ。
それくらい分かるだろ?

689 名前:デフォルトの名無しさん :03/11/04 21:56
void CDCMDlg::OnButton()
{
CBB dlg;
dlg.DoModal();

if(dlg.DoModal()==IDOK)
{
////
}
}

上のプログラムでダイアログを起こして,OKボタン押すと,
もう一度同じダイアログが立ち上がってしまうんですけど,
なぜ立ち上がってしまうか分かりません。

キャンセルを押しても立ち上がってしまいます。
もう一度ダイアログを消すと,ちゃんとメインのダイアログに戻ります。

どなたかご助言お願いします。

690 名前:デフォルトの名無しさん :03/11/04 22:07
DoModal呼んだらダイアログが一つ
もう一度呼んだらダイアログが二つ

691 名前:デフォルトの名無しさん :03/11/04 22:10
>>689
爆笑

692 名前:デフォルトの名無しさん :03/11/04 22:15
おまえら非道すぎ。

693 名前:デフォルトの名無しさん :03/11/04 22:15
>>691
ほんとだ。
よくみたらコリャ可笑しいわw

694 名前:デフォルトの名無しさん :03/11/04 22:25
イトオカシ

695 名前:デフォルトの名無しさん :03/11/04 22:26
ダイアログを起こして、そのダイアログのエディットボックスに
データを入れ、ダイアログを閉めて再度ダイアログを起こしたときに
前のデータがエディットボックスに残っている状態にするには
どうすればいいっすか?

696 名前:デフォルトの名無しさん :03/11/04 22:32
>>695
>>689参照

697 名前:デフォルトの名無しさん :03/11/04 22:34
ジャストタイミングだな

698 名前:676 :03/11/04 22:34
駄目です、分かりません。
メモリデバイスコンテキストに描いてから
画面に表示のやり方がまだ駄目です。

699 名前:デフォルトの名無しさん :03/11/04 22:37
>>698
そんなこと説明してるページはいくらでもある。
二度とここには来るな。

700 名前:695 :03/11/04 22:38
>>696
>>689を見ても分からないのですが・・・

701 名前:デフォルトの名無しさん :03/11/04 22:43
>>700
689をまんま実行すれば期待通りの動作をすると思うが・・・

702 名前:695 :03/11/04 22:54
689のソースはOKボタンを押したときに実行せよっていう
プログラムですよね?

あのif文の中にどういったソースを書けば分からないのですが・・・

703 名前:デフォルトの名無しさん :03/11/04 22:56
>>702
ifの前をよーくごらん

704 名前:デフォルトの名無しさん :03/11/04 22:57
>>702
if文の中なんかどうでもいいんですが・・・

705 名前:695 :03/11/04 23:04
void型がいけないんでしょうか・・・

こんだけヒントもらってもわかんないっす。
ほんとすいません。

706 名前:デフォルトの名無しさん :03/11/04 23:06
705はニセモノ

707 名前:デフォルトの名無しさん :03/11/04 23:17
メインウインドウのサイズを変更できなくしたり、
アイコンやマウスポインタの形をMFCで変えたりするにはどうしたら良いのでしょうか?
APIなら分かるのですが、MFCではどの関数を使えばよいか分かりません。

708 名前:デフォルトの名無しさん :03/11/04 23:18
Visual C++ (ver.6 professional) で、マウスイベントを発生させることって可能でしょうか?
やりたいことは、「あるウィンドウの中のある座標の位置での左マウスボタン押下&離す」
という動作を該当するアプリに伝えることです。

Visual Basicではできるらしいですが、これはVCの方でも可能なのでしょうか。
ポインタなど頂けたら幸いです。よろしくお願い致します

709 名前:695 :03/11/04 23:20
>>705ニセモノじゃないっす!!

まじでわからないっす。
ヒントとなるようなサイトとかでも結構なんで
教えてください


710 名前:デフォルトの名無しさん :03/11/04 23:23
>>709
ヒントじゃなくて答えが出てるっつーのに・・・

711 名前:デフォルトの名無しさん :03/11/04 23:31
>>707
MFCはソースを読め、って先輩に言われました。

ソースを読まなくてもいいから、検索してみてはどうでしょうか?
該当するメンバがなかったら・・・MFCはラッパークラスみたいなものだと思って、直叩きする。

712 名前:デフォルトの名無しさん :03/11/04 23:32
>>709
始めのdlg.Modal()を消せ。そして二度と来るな。

713 名前:デフォルトの名無しさん :03/11/04 23:33
>>698
だったら諦めろ!
お前の悪い頭じゃ一生無理!

>>707
APIが分かるならMFCでも分かるだろ?


714 名前:デフォルトの名無しさん :03/11/04 23:36
どしたの今日は。

715 名前:デフォルトの名無しさん :03/11/04 23:38
>>695
まずヘルプでDDXを調べて実装する
それができたら>>689を実行

716 名前:707 :03/11/04 23:40
>>713
そうでもないです。MFCになると分かりません。

717 名前:デフォルトの名無しさん :03/11/05 00:31
>>708
当然できる
その目的のウインドウにメッセージをポスト

718 名前:デフォルトの名無しさん :03/11/05 00:33
やっとメモリデバイスコンテキストができました。
これも偏に皆様方のお陰です。
しかし何故かリソースのビットマップを連続的に動かしたときに
その軌跡が残ってしまいます。
メモリデバイスコンテキストは描画前に
全部白でFillRectで塗りつぶしているのですが、何故でしょうか。

719 名前:デフォルトの名無しさん :03/11/05 00:36
718が作ったアプリ リソースだだ漏れしてそうでいやだ・・・

720 名前:718 :03/11/05 01:16
おおっできました。
どこかのサイトのやり方を参考にInitialUpdate()の中に
メモリDCのFillRectを突っ込んでいたら最初の一回しか描写されてませんでした。
っというか、InitialUpdate()がどういうときに呼び出されるのか知らずに
ただそのサイトのソースを写しただけでした。
でもまだウインドウのサイズを変更しようとすると
背景のビットマップがちらつきます。これはどうすればいいんですか?

721 名前:デフォルトの名無しさん :03/11/05 01:17
>>616
COMかあ。
結局のところ、クラスの使用者にCOMオブジェクトを使ってることを
意識させるのが一番よいという結論に私は達したよ。うん。
だって、同じスレッドが別のCOMオブジェクトを使ってて
CoInitializeExの引数を調整しなきゃならなくなったりしたら大変だし。

722 名前:デフォルトの名無しさん :03/11/05 01:27
いい加減まともに答えてみるか。
>695
WM_INITDIALOGでSetDlgItemText()

723 名前:デフォルトの名無しさん :03/11/05 03:06
>>616
 まったくお勧めしないが、どこでどう利用されるかわからない DLL などで
どうしても 721 のような問題を避けるなら、別スレッド立ててそっちで CoInit
して COM を利用、メインスレッドからはスレッド間通信でデータのやりとり
を行うしかないと思う。

724 名前:C++ :03/11/05 03:25
時間がなくて、もうお願いするしかありません。どうかどうか、以下の内容の助言をお願いします。

WindowsXP にて Visual C++ 6.0 を持っております。 C++の知識は #include <iostream>で
文字を表示させられる程度です。(以下はVisualBasic6.0でプログラムは完成していました。が、
VisualBasicでの実行は今回に限りダメ!と言う状態に・・・。)

本題です。
デジカメで撮った画像を20枚BMP形式で保存しています。その画像をPCモニタの全画面表示
で1分おきに表示したいと思っています。どうしてもC++(かVisualC++)で作成したプログラムで
実行したいのです。どうしてもその20枚の表示のためだけに、プログラムが必要なのです。
ズバリ、プログラムを作成いただけませんでしょうか。

どうかお力をお貸しください。 この通りです。 (ぺこぺこ

725 名前:デフォルトの名無しさん :03/11/05 04:40
>>724
スバリ、宿題は自分で解いてください

726 名前:724 :03/11/05 04:55
なんとか 上司を説得できてVisualBasicで了解もらいました。
ホッ。プレゼンに間にあいそー。

さすがに数時間でプログラムかける人はいませんよね。
失礼しました。

727 名前:デフォルトの名無しさん :03/11/05 08:04
>>724
既存のFreeのソフトでそういうことができるものは腐るほどある罠。
つーか、Office持ってないの?

728 名前:687 :03/11/05 09:56
やっぱ、.NET使ってる人は少ないのでしょうか・・・
.NETでAPI関数を使うのは間違っているのか?

729 名前:デフォルトの名無しさん :03/11/05 13:07
Microsoft VisualC++6.0で実行結果画面をコピーするには
どうしたらいいですか?

730 名前:729 :03/11/05 13:20
実行結果画面をそのままWordに貼り付けたいのです

731 名前:デフォルトの名無しさん :03/11/05 13:28
>>730
Alt+Printscreenじゃだめなの?

732 名前:デフォルトの名無しさん :03/11/05 13:39
>>731
駄目なんです Alt+Printscreen押してwordのとこで貼り付けしても
前にコピーしたやつが貼り付けされるんです
やり方が違うのかな?もうちょっといろいろやってみます

733 名前:デフォルトの名無しさん :03/11/05 14:19
Alt-PrintScreenは時々空振りっていうか、変な挙動するね。

漏れは、Paintに一旦貼り付けるようにしてます。

734 名前:デフォルトの名無しさん :03/11/05 15:47
>>733
俺の環境はAltじゃなくてもPrint Screenは100%失敗する。
同じく、ペイントに貼り付けるとうまく行くのに他のソフトは全滅。
画面の色数が関係してるんじゃないかと勘繰っているが。

735 名前:デフォルトの名無しさん :03/11/05 15:52
ベクタ逝けばその手のツールは幾らでも転がってると思うが。

736 名前:デフォルトの名無しさん :03/11/05 18:26
だめだ printscreen出来ない・・・
このPCじゃ無理なのかな

737 名前:デフォルトの名無しさん :03/11/05 20:00
ViXのクリップボードセーバーはどう?
出来ない人でもできるかもしれません。

738 名前:593 :03/11/05 23:06
VC++6のリソースエディタでダイアログを作成すると、
ウィンドウの文字サイズを変えた時も
自動でウィンドウサイズが変更されますよね。

これを維持したまま、ピクチャーのサイズを
任意で固定したいのですが、リソースエディタ側だけで
設定できるのでしょうか?

739 名前:デフォルトの名無しさん :03/11/05 23:37
>>738
少し前も同じような質問でたけど固定したいならSetWindowPosで。

740 名前:デフォルトの名無しさん :03/11/06 01:09
CStringクラスの
CString STR=_T("・・");
の_Tって何ですか?

741 名前:740 :03/11/06 01:22
分かりました。
汎用テキスト マッピングのマクロですね。
まあ良く分かってないけど満足です。

742 名前:708 :03/11/06 01:49
>>717
お返事遅れてすみません。それを聞いて安心しました。
今から頑張って具体的な方法を学ぼうと思います。
どうもありがとうございました

743 名前:デフォルトの名無しさん :03/11/06 09:30
ビットマップを回転して(角度をつけて)表示って
どうやればいいのですか?

744 名前:デフォルトの名無しさん :03/11/06 11:52
>>743
DirectXを使う。

745 名前:デフォルトの名無しさん :03/11/06 13:00
C++.NETでマシンのシャットダウンイベントを拾いたいんですが
何か簡単な方法はないでしょうか?

746 名前:デフォルトの名無しさん :03/11/06 15:30
エディットボックスに入力されたものを、ファイルに保存したいのですが
どうすればいいですか?

747 名前:デフォルトの名無しさん :03/11/06 16:06
>>745
.NETというか、汎用の方法は WM_(QUERY)ENDSESSION をキャッチ

>>746
エディットボックスから文字列を読み込む(やりかた色々)

その文字列をファイルに出力する(やりかた色々)

748 名前:デフォルトの名無しさん :03/11/06 16:38
>>747
ありがとうございました
WM_ENDSESSIONで終了できました

しかしProcess::WaitForExitを使用した場合
WM_ENDSESSIONの取得がプロセス終了までできません
WaitForExitの待機中でもWM_ENDSESSIONが取得できる方法はないでしょうか?
プロセス終了がしてから取得してしまうので・・

749 名前:VC++.netで :03/11/06 19:45
データ型が変換される時の挙動が分からないのです.
intと同じ数字をcharに与えたいのです.

//宣言
int y = 3000;
char text;

//計算
y = y--;

//intのまま出力
printf("intだよん %d \n",y);

//charに変換して出力
text = y;
printf("charになた %d \n",text);

上記コードを実行すると…
intだよん 2999
chaになた -73
intだよん 2998
chaになた -74
intだよん 2997
chaになた -75
intだよん 2996
chaになた -76
.....

となてまいます.なしてマイナスとか言われますか.泣きそうです.

750 名前:デフォルトの名無しさん :03/11/06 19:47
>>749
泣きわめけボケ


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