□□□VC++初心者質問スレ□□□

このエントリーをはてなブックマークに追加
1会社から暇つぶし
API32、SDKの質問もオッケー。
聞いてちょ。
2デフォルトの名無しさん:2001/03/17(土) 22:04
構造体を、引数として関数に渡したいのですが、

int sample( ここに構造体の宣言を入れたい。 ){

}

このような場合、構造体へのポインタは、関数側でどのように宣言すればよいのでしょう?
ちなみに、ソースはそれぞれ別物で、sampleは自作ライブラリの関数です。値を渡す方がメインのプロジェクトです。
3:2001/03/17(土) 22:14
追加です。
その構造体は配列になっています。
つまり
struct ABC{
int A;
}ABCDEFG[30];
こうなっているわけです。
4デフォルトの名無しさん:2001/03/17(土) 22:20
extern int sample(struct ABC[30]);
5:2001/03/17(土) 22:32
>4
できました。
どうも有難うございました。
6デフォルトの名無しさん:2001/03/17(土) 22:37
>>5
いやっ、あの・・・(^^;)
まぁ、動けばいいんだけどね。(笑)
7デフォルトの名無しさん:2001/03/17(土) 22:42
>>2
構造体はtypedef で宣言しとけ
8デフォルトの名無しさん:2001/03/17(土) 23:46
dllの時だけかは知らないけど、
ファイルサイズがコンパクトになる設定があったと思ったんだけど
どこで設定すればいいんでしょうか?
9デフォルトの名無しさん:2001/03/17(土) 23:56
>>8
プロジェクトの設定のC/C++タブの最適化
10デフォルトの名無しさん:2001/03/18(日) 00:12
最近、VC++の勉強を始めたんだけど、クラスはどういう風に使うのが一般的なの?
とりあえず、モジュールを分けるときみたいに、データor目的別で良いのだろうか?
適当にやってもいいんだけど、なるべく業界標準にあわせたいのでよろしく
お願いします。
ちなみに職場はマイコン系なんで誰も知らない。
11デフォルトの名無しさん:2001/03/18(日) 00:33
>>10
「憂鬱なプログラマのためのオブジェクト指向開発講座」
ってのを読むといいかも。

12デフォルトの名無しさん:2001/03/18(日) 03:19
うーん。配列とか文字列とかを考えるとJavaの方が楽だねぇ。
13デフォルトの名無しさん:2001/03/18(日) 04:16
>>10
俺もC++で一番悩んだのはそれだった。
クラスの作り方は分かっても、どうやって使えばいいのかがさっぱりだった。
んで、最近>>11の本を読んで、ようやく分かったような気になった。
14デフォルトの名無しさん:2001/03/18(日) 10:35
構造体をファイルにバイナリで書き出したあと、ファイルに書きこんだ情報をそのまま元の構造体に読み込むにはどうすればいいんでしょう。
typedef struct hoge
{
int aho;
char ABC[100];
}hogehoge
hogehoge hogepu[10];


int main(void){
strcpy(hogepu[1].ABC, "Hello world" );

ここに構造体をファイルに書き出して、それから構造体にそのまま読み込むコードを書きたい

return 0;
}
15簡単なアニメしたい:2001/03/18(日) 11:24
VC++で簡単なアニメーションを作りたいけど、良い本が見つからない。
JAVAだと、スレッドで時間設定するとか、チラツキ防止にバッファリングのイメージファイル作った方が良いとか、大体書いてあるんだけど、VC++の初心者本には書いていない。
VC++はアニメーションするものではないのかな??
16デフォルトの名無しさん:2001/03/18(日) 11:33
DDrawでバッファ作って描画してフリップすればいいんでないの?
17デフォルトの名無しさん:2001/03/18(日) 11:44
>14
Cの関数を使うなら、sizeof(変数名)で構造体のサイズを求めてから、fopen(),fclose(),fwrite(),fread()で読み書きすればいい。
ただし、fopen()するときは、バイナリファイルとして開いた方がいい。
じゃないと、構造体の中にたまたま-0x0D-0x0A-ってデータの並びがあると-0x0A-に変換したり、その逆も起こったりする。

Windows APIなら、CreateFile(),CloseHandle(),ReadFile(),WriteFile()を使う。
やり方はCと同じ。
18てんさいぷろぐらむぁ(偽):2001/03/18(日) 12:08
>>14
構造体を宣言した時に、変数毎に領域あわせでメモリが余分にとられます。
その余分な領域サイズはコンパイラの設定で変更可能。
つまりデフォルトの設定でsizeofを使って読み書きしている場合には
問題ないけれど、違う設定でコンパイルした実行ファイルを使った場合
サイズがずれるのでデータがめちゃくちゃになる場合があるよん。

その設定がコンパイラのバージョンや、ハードの環境によって変わらない
保証はないと思うよん。
つまり一度リリースしたバージョンと後々バージョンアップで
再コンパイルした物とでデータの形式が変わる可能性があるかも。
コンパイラの設定で修正できるけど、そういうのに頼るのはどうかと思うんだけどね・・・
19デフォルトの名無しさん:2001/03/18(日) 13:35
>>17
できました。どうもありがとうございました。
>>18
今後気をつけます。大変参考になりました。どうもありがとうございました。
20簡単なアニメしたい:2001/03/18(日) 17:28
>>16さん、もう少し教えてください。DDrawという言葉も本に無くて、分かりません。空のビットマップの上にGDI描画関数で書くことでしょうか?
21デフォルトの名無しさん:2001/03/18(日) 17:41
DirectDrawを使うということです。
わかりやすく言えば
つまりセカンダリサーフェスとプライマリサーフェスを作り
セカンダリサーフェスにBlt等で描画し、プライマリサーフェスにセカンダリサーフェスのイメージを転送するということです。
Javaでゆうダブルバッファリングにあたります。
DirectXの本を買って勉強しましょう。アニメーションなら割と簡単です。
ちなみに私はDirectXしか知らないので、他に方法があるかもしれません。
2221:2001/03/18(日) 17:42
× Javaでゆう
○ Javaで言う
23すげー古い本だが一応:2001/03/18(日) 18:11
http://www.ascii.co.jp/pb/msp/16132/16132.htm
VC++2 とか使ってたような気もする(w。
24簡単なアニメしたい:2001/03/18(日) 18:12
>>16さん、アドバイスありがとうございます。早速DirectXを勉強します。
25簡単なアニメしたい:2001/03/18(日) 18:35
>>23さん、本を探していただきありがとうございます。
新しい本が出ていないということは、Win32のGDIを使ったアニメーションはあまり使われていないということでしょうか。
2610:2001/03/18(日) 19:17
>>11 >>13
レスありがとう。
その本は別の板で紹介されていたので発注済で納品待ちの状況です。
出版社のサイトでは在庫少となってましたので、慌てて注文しました。
とりあえず、学習の方向性は間違ってなさそうなんでがんばります。
クラスはCからC++に移行するとみんなが迷う点なんですかね?
昔XWindowのプログラムを書いてたのですっとばしてAPI適当に使ってプログラムを
書こうかなとも思ったのですが、クラスは使いこなせば便利そうなんで気になって
いました。
27質問:2001/03/20(火) 23:47
あるフリーのソフトでエディットボックスに[y=x^3+x^2+3x+5]とか記入すると座標にグラフを描いてくれるソフトがあったのですがどのようにして作られているのですか?文字と数字が一緒に記入しても処理できるのですか?私なりにプログラムしてみたのですが簡単なn=3 Y=n*X程度のプログラムならできるのですがy=x^2+3x+5みたいなプログラムはできませんどのようにすればよろしいのですか?また「*」はどのように処理しているのですか?
28デフォルトの名無しさん:2001/03/21(水) 10:02
SendMessageの引数について説明しているHP無いでしょうか。
検索したんですがMLがひっかるばっかりで、駄目でした。
29デフォルトの名無しさん:2001/03/21(水) 10:02
× ひっかる
○ ひっかかる
30デフォルトの名無しさん:2001/03/21(水) 10:06
と思ったらMSDNにありました。
31デフォルトの名無しさん:2001/03/21(水) 13:16
OutLook Expressの本文やタイトルの情報を
取得する方法ってどうやるのですか?
32デフォルトの名無しさん:2001/03/21(水) 20:40
ツリービューのアイテムを選択したときに通知されるイベントは何ですか?
また、選択されているアイテムのテキストを取得するにはどうしたらいいのでしょうか。
33デフォルトの名無しさん:2001/03/21(水) 22:17
>>32
TVN_SELCHANGED
TreeView_GetItem
34デフォルトの名無しさん:2001/03/21(水) 22:56
>33
わかりました。ありがとうございました。
35デフォルトの名無しさん:2001/03/22(木) 04:40
うちのパソコンにはWindows98とWindows2000が入ってます。で、普通に
VCを両方で使うとなると2回インストールしなきゃで、当然ディスク容量も
倍食うわけですよね。

これをどうにか一つ分の容量で済ますことはできないでしょうか?
(あるいは同じフォルダに詰めてインストールしちゃった人、いません?)
36デフォルトの名無しさん:2001/03/22(木) 09:56
>>35
これって、ライセンスどうなるのでしょう。
私も同じような事してますが、一台分しか払っていません。
(だって同時には絶対使えないし)
駄目ですか?
37デフォルトの名無しさん:2001/03/22(木) 10:58
>>35
MSに問い合わせたら、「同時に使用できない場合は複数インストールしても問題なし」
って回答が帰ってきたという話を聞いたことがある。
VSでなく、PC-98で1ライセンスのWindowsを別パーティションに複数インストールするケースの話だけどね。
38デフォルトの名無しさん:2001/03/22(木) 16:29
CArrayについて質問です。
1.オート変数をAddしてそのスコープから消えた場合、別のところから
参照できるんでしょうか?
2.template< class TYPE, class ARG_TYPE >
のARG_TYPEの型は通常、TYPE への参照と書いてありますが、
参照じゃない場合、どうなるんでしょう?
(どういう時に実体を使うんでしょうか?)
3938:2001/03/22(木) 16:48
3.Addするものがクラスで、newを使わずにローカルのスコープ
で宣言したものだった場合、deleteはしなくていいんでしょうか?
40デフォルトの名無しさん:2001/03/22(木) 17:53
あのー質問があります。
アルファベットを大小比較したいのですが、どのようにすれば
いいのでしょう・・・。
41デフォルトの名無しさん:2001/03/22(木) 18:27
>>40
CString s1, s2; なら if (s1 > s2) ……
char *s1, *s2; なら if (strcmp(s1, s2) > 0) ……
char c1, c2; なら if (c1 > c2) ……
42デフォルトの名無しさん:2001/03/22(木) 18:43
>>38-39
CArrayのソースを見るとCArray::Add()は引数のコピーを作って
追加してるようだから、動作はclass TYPEのコピーコンストラクタ
によるんじゃない。
1は実体をコピーする深いコピーコンストラクタがあるなら、
Auto変数をAdd()してから関数のスコープから抜けても大丈夫。
でもポインタしかコピーしないコンストラクタだったりすると
問題おきるでしょう。
3はもちろんdeleteする必要なし。deleteしたら困る。
2はわざわざ参照を使うより実体をコピーするほうが
単純なやつじゃない? sizeof(s)==4な構造体sとか。
4338:2001/03/22(木) 19:20
>>42さま
なるほどぉ。ご親切にどうもありがとうございました。
(ソース見てみりゃよかったんですね)
4435:2001/03/22(木) 21:00
>>36
> 私も同じような事してますが
お、ということは一つ分の容量でできているってことですよね?
(それとも2回インストールしてるってことかな)

これから思い切って試してみます
45デフォルトの名無しさん:2001/03/23(金) 01:28
>>44
そんなこと言ってないよ。
別のドライブに個々に全部入れるようにしてるよ。
NT用と95用で必要ファイル違うかも知れないし、無理とちゃうかな。
4644:2001/03/23(金) 02:48
>>45
あ、やぱーり。うーん無理ですかねぇ。

インストール時に同じフォルダ指定すれば、すでにインストール済みの
必要ファイルはスキップしてくれないかな、なんて考えているのですが。

とりあえず今はWindows2000用サービスパックを落としてる最中だったり・・・
47デフォルトの名無しさん:2001/03/23(金) 07:15
よくゲームなどでフルスクリーンになるものがありますが、
あれはどうやって実現しているのでしょうか?
4840:2001/03/23(金) 10:04
>>41
ありがとうございます。
早速やってみます。m(__)m
49デフォルトの名無しさん:2001/03/23(金) 12:16
APIのStrCmpNIの外部参照が解決できません。どのヘッダをインクルードすれば良いのでしょうか。
5049:2001/03/23(金) 12:56
と思ったらリンクのエラーのようです。どのライブラリを関連づければいいのでしょうか。
51デフォルトの名無しさん:2001/03/23(金) 14:25
>>47
DirectDrawに頼る。
もしくは、解像度を変えて、ウィンドウで全体を覆う。
5249:2001/03/23(金) 15:06
#include <shlwapi.h>
とやったら、エラーは出ないのですが実行したら「欠落エクスポートシステムに装着されたデバイスは動作しません」
という警告がでました。どういうことでしょうか。
5349:2001/03/23(金) 15:08
正確には

HOGE.EXEファイルは
欠落エクスポートSHELL32.DLL:StrCmpNAにリンクされています

です。
54デフォルトの名無しさん:2001/03/23(金) 20:06
MAPIReadMailで受信トレイのメッセージを取得できるのは
分かったのですが、予定表や連絡先の情報を取得するには
どうすれば良いのでしょうか?
55デフォルトの名無しさん:2001/03/23(金) 22:46
char hog[10];
strcpy(hog,"aaaaaaa");
とした配列を、初期状態にしたい(データが入ってない状態にしたい)のですが、どうすればよいのでしょうか。
56デフォルトの名無しさん:2001/03/23(金) 22:50
>>49
MSDNぐらい見ろよ
われず厨房か?
57てんさいぷろぐらむぁ(偽):2001/03/23(金) 22:55
>>55
何が言いたいのかよくわからん、
ていうかWindows関係ないCの基礎の話じゃないのか?

その配列を文字列として使うんなら
hoge[0] = '\0';
じゃだめなの?
ていうか初期状態ってなにさ?
たまたま入ってたメモリ領域の値を復活させたいとでも?
5855:2001/03/23(金) 23:27
バイナリで開いた時、16進であらわした数が0のデータです。
5949:2001/03/23(金) 23:32
>56
見ました。英語でしっかり〜libをリンクすると書かれてましたが、前述したとおり欠落エクスポートになってしまいます。
60てんさいぷろぐらむぁ(偽):2001/03/23(金) 23:36
>>55
それは初期状態って言われてもわからないよー
ようは配列を0で初期化したいってことだよね?

C言語のみならば
char hoge[10] = "にょにょ";
memset(hoge, 0, sizeof(hoge));

でいいんじゃないの?
第一引数のアドレスを第二引数を使って第三引数分埋める関数ね。

Windowsなら
ZeroMemory(hoge, sizeof(hoge));
って感じ。
0の決めうちで同じように動作する。
ちなみにZeroMemoryはmemsetのマクロで
実際は
#define ZeroMemory(buf,size) memset(buf, 0, size)
みたいになってるだけのものだから、そのへんよろしく(何が?)
61デフォルトの名無しさん:2001/03/23(金) 23:39
>>55
memset
ZeroMemory

ここで聞くよりgoogleいったほうが早いよ。
62デフォルトの名無しさん:2001/03/23(金) 23:40
>>58
memset(hog, 0, sizeof(hog));
63デフォルトの名無しさん:2001/03/23(金) 23:40
かぶったー
64質問:2001/03/23(金) 23:55
あるフリーのソフトでエディットボックスに[y=x^3+x^2+3x+5]とか式を記入すると座標にグラフを描いてくれるソフトがあったのですがどのようにして作られているのですか?文字と数字が一緒に記入しても処理できるのですか?私なりにプログラムしてみたのですが簡単なn=3 Y=n*X程度のプログラムならできるのですがy=x^2+3x+5みたいなプログラムはできませんどのようにすればよろしいのですか?また「*」はどのように処理しているのですか?
6555:2001/03/24(土) 00:10
>60・61・62
おかげ様でできました。皆様どうもありがとうございました。
66デフォルトの名無しさん:2001/03/24(土) 00:41
>>47 >> 51
フルスクリーンとは画面全体ってことだから、
解像度変える必要ないぞ。
キーワードはGetSystemMetrics()だ。
67デフォルトの名無しさん:2001/03/24(土) 00:45
68デフォルトの名無しさん:2001/03/24(土) 07:20
これまで問題なく動作していたプログラムの、メインの処理をいろいろ変更してみたのですが、
全然手を加えてないところからエラーが出ました。
実行すると、しょっぱなのCreateWindowのところで「ハンドルされていない例外は〜.exeにあります。」とエラーがでます。
今回変更したのはウインドウの初期化とかは全く関係ないところなのですが、
こういうことってあるのでしょうか?
69デフォルトの名無しさん:2001/03/24(土) 08:00
VC買って三日目の激烈初心者です。
本当に基本的なことかも知れませんが、解らないことがあります。
(前にVBやっていたので、ポインタとかDirect Xとかは理解しているつもりです。)

ズバリ、インスタンスハンドルって何ですか?
予想だとプログラムに割り当てられたIDのような気もするのですが。
どうも、Direct Xのサンプルとか見てると多用していると思うので。

あと、ウインドウメッセージの一覧とかってないんでしょうか?
70>69:2001/03/24(土) 09:14
>ズバリ、インスタンスハンドルって何ですか?
アプリケーションの起動ごとの固有のハンドル
>あと、ウインドウメッセージの一覧とかってないんでしょうか?
Helpで ”WM_”で引く
71デフォルトの名無しさん:2001/03/24(土) 12:07
VC++を使ってWin2000でWin98と同様の開発は可能ですか?
72>71:2001/03/24(土) 12:29
それぞれに特化していない部分なら問題ないと思います。
すべての差異はわかりませんが、直感的には
Active Directory -> 2000 のみ
DirectX -> 98のみ(ってうそ2000にもはいりましたね)
あとAPIによってはいずれか片方のみ有効のもの少しあるので
ヘルプで確認すればいいと思います。
VC++のディレクトリ検索かけるとWin32api.csvという大きなファイル
のAPI表もあります。
7371:2001/03/24(土) 16:38
なるほど。Win2000のノートPCを買う予定だったので安心しました。
どうもありがとうございました。
7469:2001/03/24(土) 23:12
ありがとうございます。
ウインドウメッセージってWM_って名前が必ず付くんですね。
確かにそう言われてみればそうでした。

すみません、また質問です。
Direct DrawのサンプルのDDex4のリソースを変更したのですが、
変更した後にこのようなエラーが出るようになりました。
C:\Program Files\Microsoft Visual Studio\MyProjects\ddex4\ddex4.rc (20): error RC2144 : PRIMARY LANGUAGE ID not a number
C:\Program Files\Microsoft Visual Studio\MyProjects\ddex4\ddex4.rc (63): error RC2135 : file not found: 932
多分、英語の書式のリソースを日本語にしたからこのようなエラーが出ると思うのですが、
日本語にするにはどうしたらよいでしょうか?

プロジェクト→設定→リソース→言語 の項目を日本語にしてみたのですが、
やっぱり駄目でした。
全然見当違いのことをしているのかも知れません。
どうすればこのエラーが無くなるでしょうか?
75デフォルトの名無しさん:2001/03/24(土) 23:20
ハァ?
英語を日本語?
#define → ディファインってことですか。
そらエラーもでるわな。違うか。
リソースファイルのフォルダにビットマップとかちゃんと入ってんのか?
リソーススクリプトで定義されてるのを中身を知らずにいじっちゃ駄目よ。
7669:2001/03/24(土) 23:35
>>75
>#define → ディファインってことですか。
違うよ(笑
CってVBと同じでUnicodeで動いてるんですか?
だったら修正はいらないのかな?
BMPもちゃんとソースのあるフォルダに入ってるし、
(所でリソースファイルのフォルダって一体どこ?
もしかして、変換するときにファイルを手動で移動しないといけないのかな?)
リソーススクリプトの中身も修正してません。(何となくいみ解るけど)
でも、リソースを変更したときに、
「データの形式を変換しますか?」みたいなこと聞かれました。
「はい」を選択したらこういうエラーになっちゃいました。

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_JPN)
#ifdef _WIN32
LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT//ここでエラーが出ます
#pragma code_page(932)
#endif //_WIN32

//一部省略

ALL BITMAP MOVEABLE PURE "ALL.BMP"//ここでもエラーが出ます
77>74:2001/03/25(日) 00:17
LANG_JAPANESE, SUBLANG_DEFAULT がインクルードされてないのだと
思います。リソースは自動生成時にインクルードされるファイルが
勝手に書かれるのでそのときに不整合が生じるみたいです。(詳細不明)
とりあえず上の2つは 0x11,0x01 なので (olenls.h または
winnt.h 内)それ直接書き直せば平気と思います。(コンパイルエラー
でたときに編集しちゃう)
makefileメークのサンプルなのでプロジェクトの形式の変換が
DeveloperStudioが完全でないのでしょう。
あまり直接いじらないほうがいいととらえて、C&Pでやっちゃってったほうが早い?
"ALL.BMP" のとこのエラーはわかりません(消えると思うけど)
7869=76:2001/03/25(日) 02:29
>>77
ありがとうございます。
該当のファイルをインクルードしたら直りました。
ついでに"ALL.BMP"の所も消えました。
良かった良かった。親切にも、VC四日目激烈初心者を相手してくれて
本当にありがとうございます。
7969=76=78:2001/03/25(日) 02:45
olenls.hのぞいてたんですけど、なんだ、
LANG_JAPANESE SUBLANG_DEFAULTってユーザー定義の定数だったんですね。
そう言われると全部大文字なので、ユーザー定義の定数と決まってるわけですな。
ずっとコンパイラが提供する定数だと思ってました。(もしかしてVB病かな?)
やっぱり慣れていないのでそう言う単純なところに躓いてしまう。
悲しい。悲しい。
80デフォルトの名無しさん:2001/03/26(月) 06:35
*.cpp を直接開いて、Winアプリ用にコンパイル&ビルド
するには、どの辺のパラメータを変更したらいいんですか?
(いちいちプロジェクト開くのがめんどいので。)
81デフォルトの名無しさん:2001/03/26(月) 10:13
ワークスペースがないとコンパイルできん
よってプロジェクトをひらけ
82デフォルトの名無しさん:2001/03/26(月) 10:17
>>81
でも*.cppを開いてから、コンパイル→プロジェクトを作成
してもうまくコンパイルできないですよね。main()がない
とかいうエラーになる。
83SAGE:2001/03/26(月) 10:31
>>82
/subsystem:windows でリンク
84デフォルトの名無しさん:2001/03/27(火) 11:40
VC++6を使っています
スタティックテキストを3つ、ダイアログに貼り付けているのですが、
Aのボタンが押されたら、スタティックテキストの1つめの背景色を黒に、
Bのボタンが押されたら、スタティックテキストの2つめの背景色を黒に、
Cのボタンが・・・
と、アプリケーション実行後に動的に背景色を変化させたいのですが、
どのようにしたらよいのでしょうか。
いくつか、ホームページを回ってみたのですが、ダイアログの表示される
タイミングで「スタティックテキストの背景色はこれ」とか指定するサンプルは
あるのですが、動的に変化させるサンプルがありません
よろしくお願いします
85デフォルトの名無しさん:2001/03/27(火) 14:17
AppWizardでダイアログベースのアプリを
作ろうとしていてF1〜F12まで自分で考えた機能を
割り当てたいのですがF1キーを押すとヘルプを探しに
いってしまいます。F1キーのヘルプは無効にできますか?
86デフォルトの名無しさん:2001/03/27(火) 15:39
>>84
そのサンプルが親windowでWM_CTLCOLORを処理するようなモノなら、
BN_CLICKEDでトグルされるようなフラグをもっておいて(ボタン自体を
WS_CHECKBOXにするという手もある。というか、特に理由がなければ
そうするべきだと思う)OnCtrcolorの中でそのフラグに対応したブラシを
返すようにしてやればいいんでないの?
87デフォルトの名無しさん:2001/03/27(火) 22:34
VCというよりは・・・Cですが
long / long の結果を doubleに入れるにはどうするのでしょうか
long / long の結果って、 long型ですよね?
88デフォルトの名無しさん:2001/03/27(火) 23:08
long l1, l2;
double d;
...
d = (double)l1/(double)l2;
89デフォルトの名無しさん:2001/03/27(火) 23:31
dong l1, l2;
double d;
...
d = (double)(l1/l2);
l1,l2をdoubleにキャストするとlong/longの結果じゃないよね?
・・・すまん、ただの揚げ足取り(藁
90デフォルトの名無しさん:2001/03/27(火) 23:51
VC6で、inline指定した関数が実際にインライン展開されたかどうか
分かる方法ってありますか?
__forceinlineの場合は警告4714が出るみたいですけど。
91デフォルトの名無しさん:2001/03/28(水) 00:00
>>87です
>>88-89
ありがとうございます
計算できました
89さんのおっしゃる内容も、初めは???でしたが、わかりました(藁
9285:2001/03/28(水) 12:00
F1は、ON_COMMANDで、ヘルプが呼ばれるようになってたから
コメントアウトしたら大丈夫になったけど、F10が拾えないのはなぜ?
PreTranslateMessageでもひろえません
93デフォルトの名無しさん:2001/03/28(水) 22:08
実行時にコードを自分で作成してそのコードに制御を渡す時

1 スタティックあるいはグローバル関数を使わずに制御を渡す方法
2 その関数内で必要な関数開始処理、終了処理とかはなんでしょう?

C++ではスマートな方法を思いつきません・・・(泣)
後、その関数(void xxxx(void)です)から帰ってきた後に
__chkesp()っつーのがあるんですが、アレは何?!

94てんさいぷろぐらむぁ(偽):2001/03/28(水) 22:16
>>93
>実行時にコードを自分で作成してそのコードに制御を渡す時

ってどういう意味?
実行時にコードを作成ってもしかして、プログラム実行後に機械語
をメモリに吐き出して直接実行させるとかそーゆー荒技?
難しそうで興味アリ詳細きぼん
95SAGE:2001/03/28(水) 22:27
>>93
一気にすげーゴツい初心者質問スレになりそうだ。

__chkesp() は、名前からして 32bitのスタックポインタのチェック…かな?
96デフォルトの名無しさん:2001/03/28(水) 22:42
>>94
そうです。ハンドアセンブルしたx86のコードを確保してあるメモリに
ガンガン書きこんでいきます。

ちなみに今は、クラスのメンバの中に
void (*drc_exe)(void);
等という関数ポインタを作って、そのポインタに、確保してあるメモリの
アドレスを渡してます。

で、この後から作ったコードの中に、もともと持ってる関数
(例えば文字を表示させるなど)を埋め込もうとすると、
call の後に、リラティブでアドレスを書くのですが、関数名で書くと
(というかそうとしかかけない)その関数がグローバルか、スタティック
でないと、アドレスをC++の性質上取得できんのです。

で、グローバルをガンガン作るのはアホくさいですし、恥ずかしいので、
なんとかしたいのですが・・・・・・・
97デフォルトの名無しさん:2001/03/28(水) 23:41
void (T::*drc_exe)(void)
98デフォルトの名無しさん:2001/03/28(水) 23:44
>>97
意味が良くわからないのですが・・・・・・
関数ポインタは、既にとあるクラスのメンバですけど?
9997:2001/03/29(木) 00:04
>>98
おまえの言っていることもよくわからん。
メンバ関数へのポインタがほしいと言っているのか?

class T
{
public:
 T():pmf(mf) {}
 void (T::*pmf)(void);
private:
 void mf(void) {なんとか;}
};

main()
{
 T a;
 (a.*a.pmf)();
}
100デフォルトの名無しさん:2001/03/29(木) 00:13
>>99
最初の質問がおかしかったです。

実行時にコードを自分で作成してそのコードに制御を渡す時
2 その関数内で必要な関数開始処理、終了処理とかはなんでしょう?



1 関数ポインタをスタティックあるいはグローバル関数にせずに
  取得する方法

って事です。(1は訂正。あと、1と2は直接関係ないですね)
101てんさいぷろぐらむぁ(偽):2001/03/29(木) 00:22
>>93 & >>96
自分には何のアドバイスもできないや(偽だし)
っていうかわかる人ぜひ自分にも教えてくださいな。

推測するに
>で、この後から作ったコードの中に、もともと持ってる関数
>(例えば文字を表示させるなど)を埋め込もうとすると、

ってのはメンバ関数のことなんですよね?

>(というかそうとしかかけない)その関数がグローバルか、スタティック
>でないと、アドレスをC++の性質上取得できんのです。

C++の性質上静的で無い普通のメンバ関数はCのようにアドレスを
そのまま持っている訳でわ無いのでダイレクトにアドレスをたたいて呼び出すような
ことが出来ない。
かといってグローバルやらスタティックな関数を作ると
「なんかC++っぽくなくて悲しい」ってことですよね?

静的でないメンバ関数を呼び出すにはオブジェクト自身のポインタ(this)
経由で呼びださなきゃならんってやつですね。

1:静的メンバ変数にコンストラクタかなんかでthisポインタを格納しておき
2:静的メンバ関数をラッパーとして作って例の関数ポインタからその関数を呼ぶ
3:呼び出した静的関数からあらかじめthisを格納してある静的メンバ変数を使って
実際に呼び出したい非静的メンバ関数を呼ぶ。
4:実質静的でないメンバ関数が呼ばれるので静的でないメンバ変数も使えて良い感じ
5:でも静的変数にthisを格納するので複数の同クラスは呼べなーい

この辺の流れは参考になりませんか?
っていうか明らかに格上っぽい人に言うのも恐縮なんですが。
102デフォルトの名無しさん:2001/03/29(木) 00:25
あ、あと、1はそのとあるクラスの中で、関数のポインタが必要になると
言う事です。

例えば、

class A{
void b(void);
void c(void);
void (*d)(void);
};

void b(void){
unsigned char e[0x1000];

e[0]=0x90; ......... コードの埋め込み
e[x]=0xe8;
*(unsigned long *)(e[x+1])=((unsigned long)c)-((unsigned long)x)-5;
e[n]=0xc3;

d=(void(__cdecl *)(void))e;
d(void);
}

という感じでやるわけです。
で、このcという関数を、スタティック、あるいはグローバルにせずに
クラスのメンバのままでアドレスを取得するには・・・・・?という疑問です。
103てんさいぷろぐらむぁ(偽):2001/03/29(木) 00:26
つーか知りたいこととぜんぜん違ってたらすんません。

なんかすごい事やろうとしてますねぇ
ローレベルなハードの制御をC++に移植でもしてるんでしょうか・・・
104デフォルトの名無しさん:2001/03/29(木) 00:28
2. /Faオプションでアセンブリリスティングを吐かせて調べる。
ecxレジスタがthis, 右から左へパラメータpushされて呼ばれる。
スタックを戻すのは呼ばれたほうの責任。

1. メンバ関数T::mfのポインタはT::mf

以上
105デフォルトの名無しさん:2001/03/29(木) 00:32
>>101
俺もthisポインタをグローバルに格納というのは考えたんですが、
実は全く同じオブジェクトを2個作ってマルチスレッドで動かすので、
プログラム的には「自分がどっちのスレッドなのか」というのを
判断させなきゃならんわけです。
まぁそれを簡単にするのがthisなんですけど。

確かにスタティックのメンバのポインタ変数にthisをコンストラクタで
入れるのは良いかもしれませんね。後でその辺も考えてみます
(ダメだったら)

ただ、スタティックはうざいので、あんまり使いたくないのですよね(泣)
106デフォルトの名無しさん:2001/03/29(木) 01:00
>>105
COMをCから呼び出すのと同じ方式をつかえばいいんじゃないのか?
107デフォルトの名無しさん:2001/03/29(木) 10:55
今、MFCでメモ帳を作ろうとしています。
メモ帳の機能の一つに、
決まった文字列が書き込まれるとその部分だけ
色が変わるように(VCで#defineと書いたら色が変わる機能)
を実装しようとしています。

現在は CRichEditCtrl::SetSelを使い
CRichEditCtrl::SetSelectionCharFormatで色を変えています
が、これだと20行程度の文章でも色変えの処理が数秒かかってしまい
とても使えません。

VCやEmEditorみたいに早く処理するにはどうしたら良いんでしょうか?
どなたかご教授を・・
108デフォルトの名無しさん:2001/03/29(木) 14:19
>>107
コントロールを自作するとかすれば良さそう。
それほど難しくないし。

109デフォルトの名無しさん:2001/03/29(木) 15:55
>>108
そのコントロールって奴は
どのように作れば良いんでしょうか・・
110デフォルトの名無しさん:2001/03/29(木) 20:47
http://members.tripod.co.jp/ms_mzn/#search
この辺を読むとよくわかるよ。
11178:2001/03/29(木) 21:25
この前はご親切にありがとうございました。
皆さんのおかげでやっとDirect Drawで画面上をキャラクターが動くようになりました。
そこで、フルスクリーンとウインドウモードをゲーム中自由に変更できるようにしようと思い、
ソースを組みました。
Alt + Enterのコマンドでスクリーンモードを切り替えることまではできたのですが、
ウインドウモードの時に最大化ボタンを押したときにも切り替えが出来たらいいな〜
と思ったのですが・・・最大化ボタンを押したときにどんなメッセージが送られてくるのでしょうか?
いろいろと調べてみてWM_ACTIVATEというメッセージがかな〜りアヤシイのですが、
よくわかりませんでした。多分、めちゃくちゃ基礎的なことだと思うのですが、
検索しても出てこなかったので、質問いたします。
VC初めて一週間なのでユルシテクダサイ・・・
って、許されないかな?
112でふぉ:2001/03/29(木) 21:37
VC++を買ったはいいが、ただのデバガと化してる(笑)
winプログラムをする事は当分ないでしょう。
113SAGE:2001/03/29(木) 22:10
>>111
WM_SYSCOMMAND だったよーな気がする。
調べないで言ってるから信用しない方がいいけど。
114デフォルトの名無しさん:2001/03/29(木) 23:11
>>111
最大化ボタンを押したとき            -> WM_SYSCOMMAND (wp = SC_MAXIMIZE)
システムメニューから最大化を選択したとき -> WM_SYSCOMMAND (wp = SC_MAXIMIZE)
最小化状態から復帰するとき          -> WM_SYSCOMMAND(wp = SC_RESTORE)
115111:2001/03/29(木) 23:15
>>113
ありがとうございます
最大化ボタンを押したときに
&HF030が帰ってきました。
116111:2001/03/29(木) 23:22
あ、Cでは十六進は 0xって表記でしたっけ?0xF030ですね。

>>113
>>114
丁寧にありがとうございます。
本当に助かりました。
本当にありがたくてありがたくてありがたくて・・・

今気がついたんですけどAPIのSendMessageって、
ウインドウメッセージを勝手に送るAPIだったんですね。
VB使ってた頃によく使いましたわ。
117108:2001/03/30(金) 00:07
>>109
すんません、只のフカシです。m(__)m
コントロールを作るには、とりあえず。
CreateWindow()
APIを使って、生地を作り、その上にいろいろな物をトッピング?して行けば
良いのですが。
テキストの描画等を自分で作れる為に、どんな仕様の物でも出来るんですよ。
簡単なところで
TextOut 、GetDC とか、GDIを利用して描画するようにしていけば
それなりの物が作れます。

完全なコントロール (COM or ActiveX ) を作るには、かなりの
労力が必要ですが、MFCであれば、こうやって作る方法もある
ので...。


すまねー
118114:2001/03/30(金) 01:46
>>116

追加。
元のサイズに戻すボタンを押したとき -> WM_SYSCOMMAND (wp = SC_RESTORE)
システムメニューから‥‥       ->  〃

なのでSC_RESTOREの時には最小化状態から復帰するときなのか、最大化状態から窓モードへ移行するときなのか、ちゃんとチェックする必要がある。
119sage:2001/03/30(金) 10:26
>>110
あはは、ごめんなさい。
あんまり詰まってたんで切羽詰って皆さんに答えを無理に求めてました。
「f.fsoft HomePage」ってとこにRTF変換についてのTipsがのってました。
Gooでカッコ内の文字を検索すればすぐ見つかります。

もし同じようなところで詰まってる人がいれば参考にしてね。
120107:2001/03/30(金) 10:53
>>117
すいません・・それがコントロールなのですね・・
実はあんまりよくわかってませんが・・

生成されたウインドウにツリービューとかチェックボタンを乗せたものが
「コントロール」って奴でOKなのでしょうか・・?

で、コントロールを自作しろってのはCRichEditCtrlクラスを継承して
自作クラスを作れってことなんですよね.。

そこまではやってるんですが、色変えの上手い方法が判らなくて・・
とりあえず色々頑張ってみます。参考になりそうなTipsも見つけたし。
121SAGE:2001/03/30(金) 11:11
>>120
んにゃ。コントロールを自作と言ったらもっと激しく、
キーを押されたら文字列データを更新して、それをTextOutで画面に書いて、
マウスがドラッグされたらCaptureして選択範囲を反転して書くようにしたり…などなど
ってのを全部自分で作るってことだね。

かなり面倒いけど。
12292:2001/03/30(金) 11:40
F10が拾えない件ですが、pMsgのmessageが256というのがWM_KEYDOWN
みたいなんだけど、F10が押されたときはpMsgのmessageが260になってます
この、pMsg->messageが260っていうのは、WM_なにか教えて下さい
(こういうのって、どこで調べたらいいんだろ・・・)
123デフォルトの名無しさん:2001/03/30(金) 12:00
オレはコントロールの練習にスプリッターコントロール書いたぞ。
はじめの練習にはちょうど良いと思うが、どうよ?
124デフォルトの名無しさん:2001/03/30(金) 12:01
>>122
ヘッダ調べろ。
grep掛ければ見つかるだろ
125greper:2001/03/30(金) 12:22
WINUSER.RH:323:#define WM_KEYFIRST 0x0100
WINUSER.RH:324:#define WM_KEYDOWN 0x0100
WINUSER.RH:325:#define WM_KEYUP 0x0101
WINUSER.RH:326:#define WM_CHAR 0x0102
WINUSER.RH:327:#define WM_DEADCHAR 0x0103
WINUSER.RH:328:#define WM_SYSKEYDOWN 0x0104
126107:2001/03/30(金) 13:17
>>121
おおそこまでやるんですか!
MFCで作ろうと思ってるんで任せられるトコは全て既存のメンバ関数に
やらせてしまおうと思ってたんですけど・・

既存のクラスを使わずにあえて一からクラスを作ることを
「コントロールを自作する」ってことでOKですか?

>>123
Splitterですか!
うはー俺も頑張ってみます。
127デフォルトの名無しさん:2001/03/30(金) 16:33
WPARAM の W と LPARAM の L って
何の略なんですか?
128デフォルトの名無しさん:2001/03/30(金) 16:52
>>127
WORDとLONG。
Win16時代はそれぞれ16ビット、32ビットだった。
Win32だと両方32ビットだけどね。
129デフォルトの名無しさん:2001/03/30(金) 16:55
初心者質問スレにしてはやおらゴツい話題になったと思ったら、凄い落差だ(藁
こっちが本来あるべき初心者質問スレの話題なんだが、あまりのギャップにすがすがしさすら感じるよ。
130デフォルトの名無しさん:2001/03/30(金) 21:43
VC++6を使ってます。
フォームにActiveXコントロールを貼り付けているのですが、
これが、フォーカスを得たかどうか・・・とか、
次にこれにフォーカスがくるとかっていうのは、どうすればわかるんでしょうか。
131116:2001/03/31(土) 00:06
>>118
メッセージを送らずに、最大化ボタンを元に戻るボタンにしないというのは駄目ですか?
(スクリーンセーバーを抑制する方法と同じような処理をやっています)
やっぱりメッセージを送ったほうが安全でしょうか?

追加の質問で申し訳ないんですけど、タイトルバーをダブルクリックしたときも
最大化しますけど、そのときのイベントはどうなるのでしょう?
ヘルプを捜してみたのですが、見つからなくて。
132デフォルトの名無しさん:2001/03/31(土) 00:21
IOleControlSite::OnFocus(BOOL fGotFocus)
133132:2001/03/31(土) 00:22
>>130
134デフォルトの名無しさん:2001/03/31(土) 00:54
FTPのコマンドシーケンスを状態遷移で記述しようとおもうのですが、
帰ってくるコードによって遷移先が複数できますよね?
複数の遷移先を持つ状態遷移っていうのは、設計的にどうなんでしょうか?
135デフォルトの名無しさん:2001/03/31(土) 01:08
はあ?>134
状態遷移表/図書け。
136しらかわよふね:2001/03/31(土) 02:20
114だよ。何となくコテハンで逝ってみます。

>>131
>メッセージを送らずに、最大化ボタンを元に戻るボタンにしないというのは駄目ですか?
>(スクリーンセーバーを抑制する方法と同じような処理をやっています)
>やっぱりメッセージを送ったほうが安全でしょうか?

そこは自分で TRY & ERROR で逝くのが良いんでないかな?

とりあえず私の場合はちゃんと最大化メッセージを送るようにしてる。

理由は‥‥フルスクリーンの時にAlt+Enterするとアプリケーションはタスクバーに入るよね?
でもって、タスクバーのそのアプリケーションの所を右クリックするとシステムポップアップメニューが出てくる。
最大化メッセージを送らないで居るとこのシステムポップアップメニューがずれてくるから。

自分で、システムポップアップメニューの制御をしても良いんだけど、システムに任せた方が楽だし正確ってのもあるし‥‥。


>追加の質問で申し訳ないんですけど、タイトルバーをダブルクリックしたときも
>最大化しますけど、そのときのイベントはどうなるのでしょう?
>ヘルプを捜してみたのですが、見つからなくて。

WM_NCLBUTTONDBLCLK。

wparam(多分)をチェックして、HTCAPTIONだったときはWM_SYSCOMMANDの最大化メッセージをPostMessageしてreturn 0;してやればいい。
137デフォルトの名無しさん:2001/03/31(土) 04:56
WindowsAPIとCの標準関数で同じ機能のものがありますが、
APIを使った時と標準関数をつかったときとではどう違うのでしょうか。

今は気分で使い分けてるので、1つのコード中に両方が混在してます。
やはり統一した方がいいですよね。
138デフォルトの名無しさん:2001/03/31(土) 05:00
MFCやる前にC++やった方がいいと思う。
C++やる前にSDKやった方がいいと思う。
SDKやる前にCでコンソールアプリやった方がいいと思う。
・・・どう?
139デフォルトの名無しさん:2001/03/31(土) 06:38
>>137
Cの標準関数も内部ではAPI呼んでいるだけ。
移植性を高くしたければ、標準関数。
nativeに逝くならAPIで
140デフォルトの名無しさん:2001/03/31(土) 06:48
>>137
そうなの?
CreateFile と fopen って、内部では同じ物なの?

もしそうなら...鬱だ。
141デフォルトの名無しさん:2001/03/31(土) 07:09
>>137
fopenは内部でCreateFileを呼びます。
142てんさいぷろぐらむぁ(偽):2001/03/31(土) 07:12
>>137
strncpyとlstrcpynで動作が違ったりするのはわかってますよね?
C標準関数はlibc.libとかが使われます。
Winの代わりの関数はkernel32.libとかが使われます。
内部でどうやってるかは知らないけどライブラリは別のを使ってるので
まったく同じってことではないです。

また一部のlibcを使う標準C関数は初期化が必要でCreateThreadで
スレッドをつかう場合データが壊れたり関数が失敗したりリークしたりします。
それをおこさないためにはWinの代用関数を使えとMSDNにある。

標準Cを使ったプログラムでスレッドを使う場合は、マルチスレッド用の
libcmt.libをリンクしなければならない。
さらにCreateThread関数ではなく、代用スレッド関数(_beginthread等)
でスレッドを作成しなければならない。

それでもあなたは標準Cを使いますか?(ぷっぷくぷー)

P.S
CopyMemoryとかZeroMemoryはmemcpyやmemsetのマクロだけどねー
143>142:2001/03/31(土) 08:46
CreateThreadなんて普通使わない。
(まあ全部SDKAPIで書くのを前提とすれば話は別だが普通そんなことしない。)
他のスレでも書いたがbeginthreadex/endthread使え
それに一部のライブラリ関数はインライン展開される。
144143>142:2001/03/31(土) 08:54
それにAPI直だと仕様が変わったりしたときに困るので、
可能な限りライブラリ側の関数使っ方が良い。
移植時や他人のライブラリ使う場合もあるからなぁ。
わかったかい?
145てんさいぷろぐらむぁ(偽):2001/03/31(土) 13:51
たしかに仕様が変わった時&他人のライブラリやなんかを使う時
なんか困るかもしれないねぇ。
確かに今までCreateThreadより_beginthreadの方が使う機会が多かったけど・・・

実際のところみんなCreateThreadは使わない物なの?
面白そうだから詳しい話きぼんぬ
14693:2001/03/31(土) 14:02
全部Win32APIで書くから、CreateThreadしか使ったことないよ
147デフォルトの名無しさん:2001/03/31(土) 14:07
 ハーバート・シルトの「Windows98プログラミング」を参考にしながら
LoadBitmap関数を試してみています。最初にbitmapをVC++6.0付属のリソ
ースエディタで作成。*.rcファイルに関してはVC++の新規作成でリソース
スクリプトを作成し、そのソースを直接編集するのではなく、VC++から
「挿入」を使って、bitmapファイルと関連付けました。でもこのままコン
パイルすると動きません。LoadBitmap関数の戻り値がNULLになってしまう
ようです。リソースファイルを下記のように自分で手書きにすると、問題
なく動いたので、どうもリソースファイルに問題があるようです。

MyBP1 BITMAP BP.BMP

 手書きではうまく動作するのですが、どうもVC++ってリソースファイルは
手書きではなく、自動で作成させる方針みたいなので、この点を曖昧なまま
先に進みたくありません。どうやったら正しくコンパイルされるのでしょうか?

 ところでリソースで指定したアイコンやカーソル、ビットマップなどは、
EXEファイルの中に埋めこまれるのですか? つまり元になった *.ico, *.cur,
*.bmp はなくてもかまわないのでしょうか?
148>147:2001/03/31(土) 14:11
無くてもかまわない。
つーかそれぐらい自分で試せ。
149SAGE:2001/03/31(土) 14:48
趣味で作ってるプログラムに関しては>>146に同じだなぁ。

>>147
自動生成されたほうのリソースファイルはどーなってんのさ?
150デフォルトの名無しさん:2001/03/31(土) 14:56
>>147
第二引数に MAKEINTRESOURCE() 噛ませ忘れてる、に一票。
151デフォルトの名無しさん:2001/03/31(土) 15:48
>>149
自動生成すると以下のようになります。
わけわからんです・・
--------------------------

//Microsoft Developer Studio generated resource script.
//
#include "resource.h"

#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.h"

/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS

/////////////////////////////////////////////////////////////////////////////
// 日本語 resources

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_JPN)
#ifdef _WIN32
LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
#pragma code_page(932)
#endif //_WIN32

#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//

1 TEXTINCLUDE DISCARDABLE
BEGIN
"resource.h\0"
END

2 TEXTINCLUDE DISCARDABLE
BEGIN
"#include ""afxres.h""\r\n"
"\0"
END

3 TEXTINCLUDE DISCARDABLE
BEGIN
"\r\n"
"\0"
END

#endif // APSTUDIO_INVOKED


/////////////////////////////////////////////////////////////////////////////
//
// Bitmap
//

MyBP1 BITMAP DISCARDABLE "BP.bmp"
#endif // 日本語 resources
/////////////////////////////////////////////////////////////////////////////#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//


/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED


152デフォルトの名無しさん:2001/03/31(土) 15:49
>>150
C++のソースファイル(*.cpp)の中で使うんですか?

>>148
試したんですけど、一応聞いてみました。^^;
153150:2001/03/31(土) 16:02
>>152

LoadBitmap(hInstance, "MyBP1");

としてたら、これを次のように書き換えてください。

LoadBitmap(hInstance, MAKEINTRESOURCE(MyBP1));

理由は resource.h 参照。
154デフォルトの名無しさん:2001/03/31(土) 17:08
>>153

ありがとうございます。
resource.h をinclude して、
LoadBitmap(hInst, MAKEINTRESOURCE(MyBP1))
このように変更したら、うまくコンパイルされました。

でも、リソースファイルを自分で書いたときは
#include "resource.h"
を書かなかったのですが、うまく動いてしまった。不思議です。
(シルト氏の本でもincludeしてませんでした。)
それまでは LoadBitmap(hInst, "MyBP1"); という形で文字列
で指定していたから、文字列のままでIDが特定されてたのかな?

 シルト氏のテキストは分かりやすいんですが、今一歩、内部事
情への踏み込みが弱い印象です。例えば、WM_RBUTTONDOWN が右ボタ
ンクリックで1度しか送られないことや、逆にWM_CHARやWM_KEYDOWN
はボタンを押し続けることで何度も送られることがきちんと書かれ
ていません。MAKEINTRESOUCE(i) は integer と LPTSTR型へキャスト
するマクロみたいですけど、このマクロも載ってないし、LPTSTR型の
解説もないみたい。(サンプルソースのミスもすでに何ヶ所かありました。)
 このテキストの後で、もう少し深いレベルのテキストで学習したい
のですが、何か適当なテキストはあるでしょうか?

ところで

>理由は resource.h 参照。

とありますが、これは resource.h で MyBP1 が defineされているって
ことでいいですか?

155てんさいぷろぐらむぁ(偽):2001/03/31(土) 17:29
>>154
えらそうな事言うようで申し訳ないんですが、
ひとつだけ言わせてもらうと、
本来自分で調べて(MSDNとかマニュアルで)作るものなんだよー
あなたが書いた物なんかまさに「自分で調べろ」な部分だと思うんですわ。

あれだけ丁寧に書かれた本に文句いっちゃーいけない気がします。
>このテキストの後で、もう少し深いレベルのテキストで学習したい
学校の勉強じゃないんだからそーゆー「テキスト」がないとってのは違うよん。
MSDNみてやればよいと思う今日この頃。
156デフォルトの名無しさん:2001/03/31(土) 17:46
VCの勉強に・・・と、豆プログラムをいくつも書いているのですが、
突然リソースファイルがバカでかくなるときがあります。
それまで、400Kぐらいだったのが、エディットボックス追加したぐらいしか
ないのに、1000Kぐらいになって、あるとき突然ロードやリビルドが遅くなった
と思ったら、10M超えてたりします。
どして??なんか、いらない情報が溜まってるのでしょうか。
157デフォルトの名無しさん:2001/03/31(土) 17:56
CreateThread だと、問題が出る事があったんです 昔
memcpy とか そこら辺の なんていうんだったっけかな
まあ、ANSIの関数群で不具合が出た。
158デフォルトの名無しさん:2001/03/31(土) 18:17
>>155
「WM_CHAR なんかの細かい仕様に関しては MSDN 引け」という
のは同意だけど、次に読むテキストといったら Petzold 本すす
めるでしょ。

「プログラミング Windows95」チャールズ ペゾルド (アスキー)
159156:2001/03/31(土) 18:19
うわ、何もかえてない(つもりですが)7Mぐらいまで増えた。
さっきまで3Mだったのに。(それでもおかしい・・・)
ちょっとまえまで500Kだったのに・・・
誰か助けて下さい〜
160バグ怖いです:2001/03/31(土) 19:36
VC++で作ったプログラムをもとにDLLを作ろうと思っています。
DLLを作るのは初めてなので、ちょっと戸惑う事がありました。
VC++6.0でプロジェクトを新規製作しようとすると
DLLのプロジェクトが2種類ありました。
「MFC AppWizard(dll)」と「Win32 Dynamic-Link Library」です。

この二種類のDLLて何が違うのでしょうか?
「MFC AppWizard(dll)」だとMFCのクラスが使えるようですが、
違いはこれだけでしょうか?

「MFC AppWizard(dll)」で作ったDLLをMFC以外のEXEで使用した時に
変な現象とか出たりしませんか?

テスト用の何も機能の無いDLLは他のプロジェクトに登録できましたが、
せっかく作ったDLLが使えなかったりすると悲しいのでご指導をお願いします。
161デフォルトの名無しさん:2001/03/31(土) 23:05
>>160
エクスポートされた関数の{}内の先頭に
AFX_MANAGE_STATE(AfxGetStaticModuleState())
をちゃんといれてるか?
162デフォルトの名無しさん:2001/03/31(土) 23:09
C言語でテトリスやブロック崩しみたいなゲームって作れますか?
また、Java以外でテトリスやブロック崩しの様なゲームが作れる
言語ってありますか?
163デフォルトの名無しさん:2001/03/31(土) 23:43
テトリスやブロック崩しはJavaでしか作れないのか・・・・
164デフォルトの名無しさん:2001/04/01(日) 00:15
>>162
CだろうがC++だろうがPerlだろうがRubyだろうが
EmacsLispだろうがVBだろうがDelphiだろうが
JavaScriptだろうがアセンブラだろうが何だろうが作れると思うが。
165デフォルトの名無しさん:2001/04/01(日) 00:22
SQLではつくれねーな(藁
166デフォルトの名無しさん:2001/04/01(日) 01:02
>>164
では、Cでもテトリスは作れるということですね?
167166:2001/04/01(日) 01:03
補足しておきますが、VC++やC++ではありません。
Cで作れるか?ということです。
168デフォルトの名無しさん:2001/04/01(日) 01:05
>>166

作れるよ。きちんとしたライブラリさえあれば。

169>167:2001/04/01(日) 01:07
くどいぞこのんこ野郎!
170デフォルトの名無しさん:2001/04/01(日) 01:10
>>169
君キティ?だったらここ↓に逝ったら?お仲間がいっぱいいるよ。
http://saki.2ch.net/lobby/index2.html
171166:2001/04/01(日) 01:15
では、どなたかテトリスかブロック崩しをCで作ってくれませんか?
またはそのサンプルのソースがありましたら教えて下さい。
実物を見ない限り、私は納得出来ません。
172>171:2001/04/01(日) 01:20
おまえがつくれこのんこ野郎!
173>170:2001/04/01(日) 01:23
おまえが逝けこのんこ野郎!
174166:2001/04/01(日) 01:25
>>172-173
ですから、私はCで出来るからといわれても、
そのソースの構成が頭に浮かびません。
それに、私じゃ出来ないから、どなたかソースのサンプルを見せてくれないか?
といっているのです。
お前みたいに役に立たない奴がしゃしゃり出て偉そうに罵倒してんじゃねーよ、
このスカタンポコチンカスがっ!
175デフォルトの名無しさん:2001/04/01(日) 01:26
>>166
あのねー・・・。

中古ソフト屋に逝けばいくらでもあるぞ。
176166:2001/04/01(日) 01:27
>>175
はぁ?Cで組まれたテトリスがですか?
そんなの見ませんよ?それともプレステ、ファミコン、ゲームボーイとかの
ゲームのプログラムって、Cのみで組まれているんですか?
そうですかそうですか、そりゃ知りませんでした。
すんまそん、
177デフォルトの名無しさん:2001/04/01(日) 01:30
>ですから、私はCで出来るからといわれても、
>そのソースの構成が頭に浮かびません。
>それに、私じゃ出来ないから、どなたかソースのサンプルを見せてくれないか?
>といっているのです。

んじゃ、やめとけ。


>お前みたいに役に立たない奴がしゃしゃり出て偉そうに罵倒してんじゃねーよ、
>このスカタンポコチンカスがっ!

いや、君よりは確実に偉いよ?w
178デフォルトの名無しさん:2001/04/01(日) 01:30
172に同意(笑
まあCやC++だと環境によって作り方が多少異なるけど。
テトリスならテキストベースでも十分だけど。
179>166:2001/04/01(日) 01:33
「テトリスのCのソース」で検索すれば?
180166:2001/04/01(日) 01:35
しゃ〜〜ねぇなぁ。俺がCでテトリスを作ってみるか。
まっ、2,3日待ってろや。作ってくるから。
口だけの誰かさんと違って、やれると分かればやってやるぜ。
覚悟しとけよ、>>173
181>180:2001/04/01(日) 01:37
がんばってね。
182デフォルトの名無しさん:2001/04/01(日) 01:43
>>180
 頑張ってくれ・・・応援してる。
試すもしないでできないと騒いでいては何もできない。
183デフォルトの名無しさん:2001/04/01(日) 01:47
>180
つーか、テトリス作るぐらいでそんなに気合いを入れなくても・・・
プログラムの素材としてはベタだし。
「ソース テトリス」で検索したら、たくさん見つかったぞ。

184166:2001/04/01(日) 01:48
検索すりゃ見つかるんやなぁ・・・。
面倒だから作るのやーめた。
ソース見て勉強しよっと。
185>183:2001/04/01(日) 01:49
やる気を削ぐような事言うなこのんこ野郎!
186>184:2001/04/01(日) 01:51
わずか13分で挫折するなこのんこ野郎!
187>184:2001/04/01(日) 01:52
見るだけじゃ勉強にならんぞこのんこ野郎!
188166:2001/04/01(日) 01:57
ちぃ、わぁ〜〜ったよ。自分で1から10まで構成してやらぁ。
だぁら2,3日待てっつーのっ。
俺も暇じゃねーんだから。
189>188:2001/04/01(日) 02:06
がんばってね。
190166:2001/04/01(日) 02:42
あぁ〜〜だりぃ。テトリスはもういいや。
テトリスみたいなゲームが作れると分かればそれで良かったことだし。
テトリス以外のほかのゲームを作るのに専念するよ。
ではっ!
191デフォルトの名無しさん:2001/04/01(日) 02:46
やぱーり作れなかったのね。プ
192デフォルトの名無しさん:2001/04/01(日) 03:59
>>166はんこ。
193デフォルトの名無しさん:2001/04/01(日) 05:01
最近ぽろぽろとVC++でツールを作ってるんですが、
大抵のWinアプリケーションは画面中央に、アプリケーション名と適当な画像が出てから初期化?始めてますよね?
あれって一般的にどういう手法で実現してるんでしょうか?
ちなみに、私はAppWizard+MFCを大抵は利用してます。

194デフォルトの名無しさん:2001/04/01(日) 05:04
>>193
容量の小さなウインドウを作って表示
195166:2001/04/01(日) 05:36
あん?別にテトリスじゃなくても良いんだろ?
テトリスなんて今更作ったって芸がねーよ。
俺独自のゲームをGUI開発しちゃるから待っとれ。
196166:2001/04/01(日) 05:37
訂正:
GUI開発 -> 開発
消し忘れた(^^;
197デフォルトの名無しさん:2001/04/01(日) 06:32
>>166
がんばれ〜、密かに応援してるぞ〜ゴルァ!!
198デフォルトの名無しさん:2001/04/01(日) 07:08
>>193
スプラシュウインドウ使え。
プロジェクト->プロジェクトに追加->コンポーネント/コントロール
199デフォルトの名無しさん:2001/04/01(日) 07:09
>>166
春休みは残りわずかだが大丈夫か?
200166:2001/04/01(日) 07:28
おいっ、俺には春休みなんて関係ないご身分なんだよ。
もう学生じゃねーよ。
201てんさいぷろぐらむぁ(偽):2001/04/01(日) 10:20
>>166
大人なのにそんななの?・・・・・・
202166:2001/04/01(日) 10:29
まだ21だ。完全な大人とは言い切れんよ。
自分でもまだ子供だって思えるくらいだ。
大人になんてなりたかねーよな。
けどいつかは家庭を持って、子供を育てていくうちに大人になってんだなぁ、
みつを、なんつって。
203てんさいぷろぐらむぁ(偽):2001/04/01(日) 10:37
21といったら立派な大人だぞ。
大人として仕事やら税金やらをちゃんとこなした上で
子供のような行動をとるならまあいいんだけど。

君の場合はなんか「甘ちゃん」のにおいがそこはかとなく漂ってくるんだよ。
親の家に住んでるだろ?(もしくは仕送りか)
飯自分で作ってないだろ?
ごみの分別ちゃんとやってるか?

・・・と半マジ説教半ネタ風の発言をしてみる小春日和。
204バグ怖いです:2001/04/01(日) 10:50
>>161さん
アドバイスありがとうございます。
調べてやってみますね。
205166:2001/04/01(日) 11:11
>>203
をいをい、痛いところを突くじゃねーか。
だが大外れだな。雰囲気で人間性が決まる程世の中単純じゃないんでね。
特に俺においてはなおさらだ。外見と中身が全然違うって言われるくらいだからな。
こう見えてもルックスに長けているのさ。
プログラムなんて熱心にやるやつだと、ヲタクなんたらって言われるんだろうけどさ。
206デフォルトの名無しさん:2001/04/01(日) 13:54
>>203=166
‥‥ルックスが良くって、「外見と中身が全然違う」って言われるってのは、つまり中身は糞だって言われてるんでは?(藁
207デフォルトの名無しさん:2001/04/01(日) 15:38
>完全な大人とは言い切れんよ。
と自称する人が、
>雰囲気で人間性が決まる程世の中単純じゃないんでね。
なんておっしゃられても、いささか説得力に欠けますね。

で、具体的にはなに作るの?(藁
208デフォルトの名無しさん:2001/04/01(日) 16:28
>>203
小春日和って‥‥‥12月上旬から中旬だぞ?
209てんさいぷろぐらむぁ(偽):2001/04/01(日) 18:45
>>208
突っ込まれても・・・(いろんな意味でネタだし)

つうかそろそろ脱線を戻さないと怒られてしまうよー
(って自分が言うことぢゃないのはわかってるんだけど・・スマソ)
210デフォルトの名無しさん:2001/04/01(日) 23:16
関数ポインタ配列の、動的な作成方法わかる方居ます?

int procNumber;
void (**proc)(int);
proc = new ????????? [procNumber];

・・・ってやりたいんですが。
211>210:2001/04/01(日) 23:33
わかりやすい様にtypedefでもすれば?
typedef void (*tproc)(int);
proc = new tproc [procNumber];
212210:2001/04/02(月) 00:25
>>211さん
出来ました。
typedefって使った事無かったんですが、
こんな使い方が有ったのですね。
有難う御座いました。
213デフォルトの名無しさん:2001/04/02(月) 03:28
166そっくりの新人が入社してしまいました。
・C言語はまかせてクレと豪語しています。
・集中力は最高15分程度です。
どのように指導するのが良いでしょうか?

214>213:2001/04/02(月) 03:51
デスマーチプロジェクトへ放り込め!
215166:2001/04/02(月) 22:23
すいません、いろいろやって見ましたが、画像を表示する関数はCで
なんというのでしょうか?
音楽を鳴らす関数とか、エンディングの文字をスクロールさせる
関数とか、ブロックを回転させる関数も教えてください。

後、行番号を適当につけたら、間に入れたい行があっても入らなく
なりました。どうしたらいいんでしょうか?

Cって簡単だと思ってたけど、結構むずかしいです。
大きい事言ってしまってみなさんには本当に申し訳ないです。
お詫びはテトリスを作ることであらわしたいと思います。
皆さん本当にすいませんでした。
216166:2001/04/02(月) 22:47
>>215
をい、俺(本人)を目の前にして言いたい放題言いやがって。
下らねーんだよ、偽物は。
っつーか俺の集中力が15分だぁ?知らないくせに何を言ってやがる。
誰がプログラムしねーだなんて言った?
俺は俺独自のゲームを開発するんだよ。
今だって集中してやってるわい。
ったく、ここに来る連中がロクな人間じゃねーんだ。
そんな奴にどうこう言われたかねーんだよ、こっちは。
217デフォルトの名無しさん:2001/04/02(月) 23:11
>>216
>ったく、ここに来る連中がロクな人間じゃねーんだ。
>そんな奴にどうこう言われたかねーんだよ、こっちは。
じゃぁ最初からここで聞くな。負け犬が。
218デフォルトの名無しさん:2001/04/02(月) 23:19
>>166
みんな生暖かい目で見守っているよ。
いろんな意味で逸材だと思う。
219デフォルトの名無しさん:2001/04/02(月) 23:21
天然だしな(藁)
220デフォルトの名無しさん:2001/04/02(月) 23:45
>ったく、ここに来る連中がロクな人間じゃねーんだ。
>そんな奴にどうこう言われたかねーんだよ、こっちは。

自分の思い通りにいかないと、すぐまわりのせいにする。
思いっきりガキじゃん。
こんなやつほっとけば。
どうせ大したもん作れねーんだから。


221デフォルトの名無しさん:2001/04/02(月) 23:48
マジな話、「Cでテトリス作れるか?」の質問が出る状態から
2・3日でテトリス作れるか?
俺なら無理だ。
全然よゆー、って言える人キボンヌ
222デフォルトの名無しさん:2001/04/03(火) 00:03
つーか仮にテトリスが作れたとして、

「で、それがどうしたの?」

って感じ。ゲームを作ろうとする時点でオリジナルが作れない奴は何をやっても
猿真似は猿真似。ダメなもんは何やってもダメ。
223>221:2001/04/03(火) 00:05
多分、1日あれば作れるかな。
224デフォルトの名無しさん:2001/04/03(火) 00:11
>>223
君にこの言葉を贈るよ

「みためより かんたんなものは ほとんどない」

ソフト作る上での常識だからな。忘れるな!
225>222:2001/04/03(火) 00:14
プログラム初心者が最初に作る物としてならいいんじゃない?
226デフォルトの名無しさん:2001/04/03(火) 00:15
>どうせ大したもん作れねーんだから。
それはその通りなんだけど、こういう厨房ちゃんが実際にどんなモノを作れて、
どんな自己評価をするかをみてみたいんだよねぇ。イタイ新人の相手するときの
参考になるじゃん。

というわけで、がんばってすてきなオリジナルゲームを作ってね〜
テトリスすら作れないプログラミングスキルと、天然な企画力があれば怖いモノ
なしだ〜
もちろん完成後は発表してネ〜
227>244=222=220?:2001/04/03(火) 00:16
きみはなんでそう偉そうなんだ。(笑
228デフォルトの名無しさん:2001/04/03(火) 00:32
>255

勉強をかねて作る分にはいいんだけどね、それをここで発表して「どうだ、参ったか!!」と言いたいわけよ、166は。
21にもなってさ。
229166:2001/04/03(火) 01:48
ふんっ、をいをい、俺が初心者だとでも思うのか?
これでもC言語を習い始めて1年以内に、既にまともなゲームを
Cで作ったんだぞ。証拠は・・・、レポートとして提出してあるから、
あそこにいけばまだあるかも。
230>229:2001/04/03(火) 01:55
なんかもう、支離滅裂だね
231166:2001/04/03(火) 01:59
ああ、なんかもうあんたらの言い分はケツ滅裂だよ(笑)
とにかく、今の俺なら十分簡単なゲームなら作れるくらいの
技量はある。人相と技量を一緒に考えるなよ。
232デフォルトの名無しさん:2001/04/03(火) 02:09
>>166
162の発言の時点で技量計測COMPLETE。
233デフォルトの名無しさん:2001/04/03(火) 03:07
一年では初心者でしょう。
文面から、素人の思い上がりが見て取れます。
もっとも、確かにソースコードを読んでみなければ正常な判断は下せませんが。

僕だと、WindowsでC++(MFCじゃないよ)ならテトリスなら作れるかな?
...システムだけなら一日くらいかな。
でも、タイトルとかスコアとか付けると三日は最低でもかかるなぁ。
きっと
234193:2001/04/03(火) 03:25
>>198

>スプラシュウインドウ使え

早速MSDNで調べてみました。
ありがとうございます。
235デフォルトの名無しさん:2001/04/03(火) 03:26
>とにかく、今の俺なら十分簡単なゲームなら作れるくらいの
>技量はある。

うわぁーぉ。ずいぶんと高い自己評価だねぇ。客観的な評価が一致してると
いいんだけど。
以前うちのチームに中途で入ってきた人や、新卒クンが似たようなこと言ってたな。
そうやって自己評価が高い人に限って、仕事はできなかったけどね。
小さいプログラムのコードをどっかにアップしてくれたら、キミの自己評価と
客観評価の間のギャップの大きさがわかるんだけどね。ま、そういうことを
ヤル気はないんだろうけど。世の中には明らかにならないほうが幸せなことも
あるからね。

キミはまだ20代前半かな?まだ何を知らないかを知らない時期なのかもね。
それが自覚できてないうちは、自己評価は低めに考えておいたほうがいいよ。
ま、この手のタイプには言ってもムダかもしんないけど〜

プログラミングは奥が深いよ。ソフト開発はそれよりもっと奥が深いよ。
せいぜいすてきなソフトをつくってくれよ。
236166:2001/04/03(火) 03:40
>>235
いるよなぁ。口だけの学生さん気分の抜けないヴァカ。
いつまで学園祭やってんだって感じ。
成果が出なくても許されるような世界じゃないのにね。

訳のわからんただのラッパーを
「・・・・システム」だとか「・・・・・ライブラリ」とか言う奴とかな・・・
一回殺せ。デスマーチに突っ込んで。

プロジェクト立てるだけ立てて、失敗は他のメンバーのせいにする奴とか

あれ?これって僕のこと?真でお詫びしますね・・・・
237デフォルトの名無しさん:2001/04/03(火) 03:45
Win32環境での国際化で良いサイト、本がありましたら教えてください。
一応下記のサイトは見たんですが。
http://www.microsoft.com/technet/winnt/winntas/Tips/intcodck.asp
http://www.microsoft.com/globaldev/articles/muiapp.asp

具体的にはCreateFontでArial決めうちになっているのをどう直せばいいのかなと。
日本語のフォントに変えればローカライズはできますが。
サンプルのあるサイトがあれば助かります。
238>237:2001/04/03(火) 03:56
ChooseFontDialog(だっけ?今資料無いので適当)でユーザー(自分でもいいけど)に
フォント選択させて、あとはCreateFontIndirect使えば楽。
フォントにエイリアス描けたければその後、LOGFONT構造体メンバを修正。
239>166+その他:2001/04/03(火) 04:01
もう166関係の発言禁止。
240166:2001/04/03(火) 04:08
うるせぇ!俺もこのまま引き下がれるか!
どうせお前らえばってるけど、ただの糞オタだろ?
人の揚げ足ばっかり取りやがって!

お前ら童貞のくせに偉そうにしてんじゃねぇよ!
腐れエロゲーオタが!外で遊べ!
241166:2001/04/03(火) 04:16
>>240
いい加減俺の偽物やめてくれない?
訴えるわよ?
242166:2001/04/03(火) 04:18
>>236
これも偽物。っつーか、もう良い。やっぱここの連中性質が悪いし。
誰がC言語習いはじめて1年だなんて言った?
俺は既にC言語を習ってから3年は経ったんだよ。
っつーかC以外の言語も嗜んでいるんでな。
Cだけしか出来ないヘボいやつよりは、考える力には長けているはずだ。
243239>166+その他:2001/04/03(火) 04:27
余計な事言ってしまったみたいだな。(笑
撤回する。好きなだけ続けてくれたまえ。
244名無しさん:2001/04/03(火) 04:33
>>93から始まったネタってもう終了?興味あったんだけどなぁ。

やっぱC++でスタックポインタ直接書き換えるのって駄目なのかな。
__chkesp()で確実に怒られる。ぬぅ・・・
例外の伝播とかで必要になるからだと思うけど。
24593:2001/04/03(火) 04:36
>>244
継続中です
246>244:2001/04/03(火) 04:37
ホットスポットだけインラインアセンブラで書いたら?
247>244:2001/04/03(火) 04:40
どっちにしろもう環境に依存するコードだからアセンブラで書いた方が
逆にすっきりすると思うけどね。
248デフォルトの名無しさん:2001/04/03(火) 04:59
>>246,>>247
どっからどこまで?特に247。スタートアップルーチンからか?
249247=246>248:2001/04/03(火) 05:04
埋め込みコードを呼出す部分
250247=246>248:2001/04/03(火) 05:05
つーかなんでスタートアップ?
251166本物:2001/04/03(火) 05:15
お前らいい加減にしろよ。訴えてやるからな。

お前ら凄腕のゲームプログラマに損害を与えたんだから、
1億くらいは慰謝料請求できるんだぞ?

だからはやくテトリスのソースよこせ!
252>251:2001/04/03(火) 05:26
(゚д゚)ポカーン
253デフォルトの名無しさん:2001/04/03(火) 05:32
激しく痛い166晒しage
254デフォルトの名無しさん:2001/04/03(火) 05:55
166って何だったんじゃろ。
とりあえずCでテトリスすら簡単に作れないのに(とか
まあ、今時の若い者は 「エスケープシーケンス」なんて言葉も
知らないんじゃろうのぉ。
(自分の知識の無さをこうやって大々的に広められるのも2Chの良い所じゃのぉ)
それに、中学生でも下手すれば作れるレベルだし > テトリス
(とか、言ってみるテスト。

166が何処までが本物かわからんが、Cだけでグラフィックもサウンドも、
当然全部作れるよ。
それくらいの常識は持とうね。せめて....
255166:2001/04/03(火) 06:46
>>251 <偽物の166
166、つまり俺の偽物がとても虚しく見えてきます・・・。
そんなに俺を装いたいか?やってろ。
俺はもう発言しないからな。
テトリスが出来てもここでは公表しません。
以上。
256デフォルトの名無しさん:2001/04/03(火) 07:26
最近の糞スレ乱発、糞レス乱発を見てて・・
どうでもいいけど、知識レベルの低い荒しは寒いね。
反応する気も失せるくらい
赤ん坊の相手してあげる暇は朝くらいしかないしさ。。
257166敗北宣言?!:2001/04/03(火) 08:20
>>255
テトリスが出来ても公表しないー>×
テトリスが出来ないので公表できないー>○

つーか「出来たら公表」とか大威張りで言われてもな
テトリスごときで・・・・・・・・
やっぱり激しく痛い166晒し上げ!
258デフォルトの名無しさん:2001/04/03(火) 08:22
>>244
__chkesp() 呼び出す前に、スタックポインタ復元してますか?
cdecl だと、関数の呼び出し側と呼び出された側の処理は、こん
な感じです。

呼び出し側
1. スタックに引数をつむ (push)
2. 関数呼び出し (call)
3. スタックから引数を除去 (ふつうは pop せずに add esp する)

ここまでは、型宣言しておけば C++ コンパイラにお任せで OK。

呼び出された側
1. スタックフレームポインタをスタック上に保存 (push ebp)
2. スタックフレームポインタを更新 (mov ebp, esp)
3. (メインの処理)
4. スタックポインタを復元 (mov esp, ebp)
5. スタックフレームポインタを復元 (pop ebp)
6. 呼び出し元に戻る (ret)

この 1, 2, 4, 5 を、実行時に作成するコードに埋め込めば
良いんじゃない?
259デフォルトの名無しさん:2001/04/03(火) 11:29
>>93 の続きの >>102 だけど、
結局、スタティックでないメンバ関数のアドレスをint値で取得したいってことでしょ?

void (A::*funcptr)(void)=A::c;
int funcadrs;
__asm {
mov eax,funcptr
mov funcadrs,eax
}

こんな感じでインラインアセンブラを使えばint funcadrsに
クラスAのメンバ関数void c(void)のアドレスをいれられるんだけど、
インラインアセンブラを使わずに、
直接 funcadrs=(int)funcptr とかやってもキャストできない。
インラインアセンブラを使わずにint値にキャストする方法ないのかな??
260デフォルトの名無しさん:2001/04/03(火) 11:37
>>254
人を非難するのに
>(とか、言ってみるテスト。
逃げを作っておくのはちょっと賛成しかねます。

昔 Jed ってエディタの付属マクロでなぜかテトリスがあったっけ。
261デフォルトの名無しさん:2001/04/03(火) 12:40
そうかたった3年でそこまで大きな口をきける人も世の中にはいるんだなぁ。
10年以上やってるけど、オレなんてまだまだと思うことばっかりだよ。
262csvじゃなくてスマン:2001/04/03(火) 13:22
VZにもあったような、、、
263254:2001/04/03(火) 14:28
>>260
すんません。
どれが本物の166か、本気で判らなくなっていたんです。
と言うか、正直判らない...。

それと、昔Jed使ってました。
マクロでテトリス動いた時には、ちっと驚きました。
264166:2001/04/03(火) 17:05
わぁったわぁった、んじゃ俺のゲームを作る前に、
テトリス作ったるわ。
今までUNIXで文章や数式を扱ったプログラムしか作らなかったんでな。
グラフィカルな部分を忘れていたんだよ。
そんなに攻めなくても良いじゃねーかよ。
これでもブラックジャックとかその他のゲームをCで再現したことあるんだぜ。
プログラムの構成くらい、必要な関数やヘッダが分かれば、今の俺なら何とかして
作る自身はある!だから待ってろ。
出来なかったら出来なかったと報告する。
出来たら・・・どうしようか?
265デフォルトの名無しさん:2001/04/03(火) 17:33
266特にVC++に限らないんだけど、:2001/04/03(火) 18:07
RichEditコントロールの詳細な解説が読める本というと、
どんなのがありますでしょうか?
267デフォルトの名無しさん:2001/04/03(火) 18:11
ビットマップ画像をロードしてhdcmemに格納して表示して
一回目はうまくいくんですけど、いろいろ作業して後からまた
この画像を表示しようとすると何も表示されないのですけど、
どういう原因が考えられるでしょうか?
268デフォルトの名無しさん:2001/04/03(火) 18:15
どっかにテトリスのソースファイル一式アップしてくれよ。
後学の参考にさせていただくよ。
269デフォルトの名無しさん:2001/04/03(火) 18:30
JBuilder4Foundation
をやっとこさインストールしました。

んだけど、これ、どうやって使うんですか??
最終目標としては、WebページにJavaアプレットを載せたいんですけど・・・
270269:2001/04/03(火) 18:31
↑ゴメソナサイスレマチガエマシタ
271デフォルトの名無しさん:2001/04/03(火) 18:38
>>269
DeleteObject してないの?
272267:2001/04/03(火) 18:55
DeleteObjectはしていないです。
hdcmemを直接使ってる場所は少ないので自分でデータを消したり
変更したりはしてないと思うのですが、何でだろう・・・
273デフォルトの名無しさん:2001/04/03(火) 21:34
>267
プロシジャーで、static宣言し忘れて、2回目以降のハンドルが死んでるとか?
オレはよくあるんだが。
該当部分のソースコピペしてくれた方が早いかも。
274デフォルトの名無しさん:2001/04/03(火) 22:47
VCのデバッガでメモリリークを検出できるらしいのですが、

for(int i = 0; i < 100; i++) new char[255];
このようなコードを書いても、アウトプットウインドウのデバッグタブに
Detected memory leak! と出ないのですが。
どうやったら出るようになるのでしょうか?

275デフォルトの名無しさん:2001/04/03(火) 22:50
>>274
TRACE("Detected memory leak!");
を足せば出ます。
276デフォルトの名無しさん:2001/04/03(火) 23:24
277名無し。:2001/04/03(火) 23:25
CComBSTR、_bstr_t、BSTRは、どうやって使い分けたら
いいのでしょう?
278276:2001/04/03(火) 23:35
>>274
すまん、トンチンカンな答えを書いてしまった。
#include <afx.h>
の1行を入れて、
「プロジェクトの設定」-「C/C++」タブ -「使用するランタイムライブラリ」
を“マルチスレッド(デバッグ)”にしてコンパイル。
これでデバッグ実行で"Detected memory leaks!"メッセージが出るようになる。
279デフォルトの名無しさん:2001/04/04(水) 00:02
>>276
>>278
ありがとうございます。
MFCを使うしか、行う方法ないんでしょかね(^^;
MFCは使ってないので、、、
280>>279:2001/04/04(水) 00:35
前に以下のようにしたらできた。
deleteをオーバーライドしてないけど・・・

#ifdef _DEBUG
void* __cdecl operator new(size_t nSize, LPCSTR lpszFileName, int nLine)
{
return ::operator new(nSize, _NORMAL_BLOCK, lpszFileName, nLine);
}

#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endifint APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow )
{
// TODO: この位置にコードを記述してください。
#ifdef _DEBUG
_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF|_CRTDBG_CHECK_ALWAYS_DF|_CRTDBG_LEAK_CHECK_DF);
#endif
281デフォルトの名無しさん:2001/04/04(水) 01:34
CMapStringToObを使って文字列に該当するクラスを検索しているのですが
登録件数が多いせいか思うような性能が出てくれません。
282デフォルトの名無しさん:2001/04/04(水) 01:52
コンソールアプリで実行中に
ウインドウ右上の閉じるボタンを使えなくしたいです。
ウインドウ左上のメニューを使えなくしたいです.
ctrl+cもきかなくしたいです.
どうしたらいいですか?
283166:2001/04/04(水) 02:24
普通のCで点や線を描くにはどうしたら良いんだ?
わからねーぞ。やっぱやーめた。Javaでテトリスに変更ね。
んじゃ。
284デフォルトの名無しさん:2001/04/04(水) 07:04
わ、勝手に変更してるし。
285名無し~3.cmd:2001/04/04(水) 07:38
>>259
COMの魔法をつかって、メンバ関数を「単にthisを第一引数に取る
関数」にまで引き下げれば、インラインアセンブラはいらない。

#include <objbase.h>
#include <stdio.h>

typedef interface AStruct {
 struct AStructVtbl FAR* lpVtbl;
} AStruct;
struct AStructVtbl
{ void (__stdcall * afunc)(AStruct *that); };

class AClass
{
public:
 STDMETHOD_(void,afunc) (THIS)
 { printf("Itteyosi:%p\n",this); }
};

int main()
{
 AClass ac;
 AStruct *a = reinterpret_cast< AStruct* >( &ac);
 a->lpVtbl->afunc( a );
 int funcptr = (int)a->lpVtbl->afunc(a);
 return 0;
}
286名無し~3.cmd:2001/04/04(水) 07:40
あ、int funcptr = (int)a->lpVtbl->afunc(a); は
int funcptr = (int)a->lpVtbl->afunc; の間違いね。
287267:2001/04/04(水) 07:52
>273
グローバル変数にしています。自分が糞コードを書いているだけだろうけど、
プロシジャーからいろいろな関数を呼んでそこで主な作業をしています。
あちこちで同じ変数を使うのでやたらとこの型が多いです。
ということでソースのコピペは全部じゃないとあんまり意味ないかも。
>166
多分、LSI−Cなどを使っているのでは?
開発環境を教えてください。
288デフォルトの名無しさん:2001/04/04(水) 10:09
>>283
昔のDOSだと
・VRAMに直書き
・グラフィックアクセラレータみたいなもの(I/Oポートで操作)
・BIOSコール
のいずれかを使います。一から作ると面倒です。
289166:2001/04/04(水) 10:52
すいません、いままでjavaだと思ってたのはjava scriptでした(泣)
逝ってきます!

けど、java scriptって行番号がうざいんですよね。
gosubの使い方がよくわからんし・・・・・・
290デフォルトの名無しさん:2001/04/04(水) 10:56
>>289
えーと、どこまでネタでどこまで本気と扱って良いのかわからんので、
今度から、ネタな時はメアド欄に「neta」とでも記入しといてくれ。
291289は:2001/04/04(水) 11:00
全部ネタとしか思えない
292254:2001/04/04(水) 14:04
>>291
ネタですよねぇ。
>>279
#ifdef _DEBUG
// Get current flag
int tmpFlag = _CrtSetDbgFlag( _CRTDBG_REPORT_FLAG );
// Turn on leak-checking bit
tmpFlag |= _CRTDBG_LEAK_CHECK_DF;
// Turn off CRT block checking bit
tmpFlag &= ~_CRTDBG_CHECK_CRT_DF;
// Set flag to the new value
_CrtSetDbgFlag( tmpFlag );
#endif
って書くと、メモリリークチェック出来るらしいよ。
詳しくはMSDN読んでみてけれ
(解放し忘れたメモリーは表示してくれるっぽい)
>>166
テトリスで線は必要ないでしょ。
書きたければ VGA BIOS 調べれば解るかもね

まぁ、どうでもいいか...
293('o`):2001/04/04(水) 19:12
こんなクラス定義でコンパイルすると ↓

<pre>
class a
{
public:

union
{
int a[3];
struct
{
char b[12];
};
};

public:


.
.
}

</pre>
anonymous class type not used to declare any objects って言われるんですが、
どうすればいいですか?
294デフォルトの名無しさん:2001/04/04(水) 19:46
>>293
union の中で構造体定義だけをして何になるんだ一体。
295しろうと:2001/04/04(水) 20:00
>>293
union の変数なくない?
296デフォルトの名無しさん:2001/04/04(水) 21:58
struct{
char b[12]
} shine;

だね
297166:2001/04/04(水) 22:04
>>289
また偽物か。いい加減やめろ。
JavaとJavaScriptの違いくらい、既に知ってたわ。
そんなに俺を馬鹿にしたいか?
やっぱりここに来る連中って性質が悪いね。
ちょっとプログラム言語をかじったくらいで、
コンピュータの仕組みでも分かったつもりか?
289はマジでJavaとJavaScriptの違いが
分かってなかった様だね。
298デフォルトの名無しさん:2001/04/04(水) 22:27
>>297
おぉおぉ、負け犬が吠えとるわ
299デフォルトの名無しさん:2001/04/04(水) 23:08
>>280
>>292
アリガトございました。
292の方法でできました。

280の方は、なぜnewをオーバーライドしているのか理解できなかったので、
試してませせんけど(^^;
300166:2001/04/04(水) 23:12
>>298
だったらてめぇ〜がC言語でテトリスを作ってみろよ?
俺はJavaでやるからよぉ。だいたいなぁ、言語が違っても
ある程度のアルゴリズムは似ているんだよ。
っつーかさぁ、どうやればC言語でグラフィカルな表現が出来るの?
301初心者:2001/04/04(水) 23:29
>>295
C++には無名共用体つーのがあるから変数名なしでもいいんでないの。
ていうかおれも昨日その説明を読んだところだけど。
#こういうやりとりってベテランの人たちは笑って見てるんだろね・・・
302デフォルトの名無しさん:2001/04/04(水) 23:41
>>293

クラス名 a とメンバ名 a がぶつかってるからじゃない?
別の名前にすれば問題なく動く。
あと、クラス定義の最後に ; を忘れなく。
303デフォルトの名無しさん:2001/04/04(水) 23:52
>>166
アルゴリズムは近似でもグラフィクスライブラリの
相違はいかんともしがたいと思うが、そもそも
ライブラリの概念が見事に欠落している時点で
テトリスの完成は100%ないと思われ。
304259:2001/04/05(木) 00:00
>>285
ありがとう、うまくいきました。
「単にthisを第一引数に取る関数」っていろいろと使えそうね。

そういえば強引にキャストするのにunionが使えるんだった。
union {
void (A::*funcptr)(void);
int adrs;
} tmpcast;
tmpcast.funcptr = A::c;
int funcadrs = tmpcast.adrs;
これでもOKだった。
305デフォルトの名無しさん:2001/04/05(木) 00:00
>>っつーかさぁ、どうやればC言語でグラフィカルな表現が出来るの?
288が答えてくれてるのに・・・
思うに166はC言語の機能を全部覚えれば、それだけで自分は立派なCプログラマーだと思ってるんじゃないのか?
ハードウェアとC言語の関係、OSとC言語の関係は全然知らないのかも。
306166:2001/04/05(木) 00:38
んじゃぁ、必要なヘッダをあげてみろよ?
分かんのか?
数値的な扱いはある程度こなせてるんだよ。
ポインタだってやった。文字列も。
数式を扱うタイプのものは嫌というほどやったよ。
大学の実験でな。
307デフォルトの名無しさん:2001/04/05(木) 00:39
Basic でグラフを描くのに、点や線、その色を決定するアルゴリズムを
見たことがある。
要するにテトリスをするには、図形を表示できなきゃ話しにならん。
308デフォルトの名無しさん:2001/04/05(木) 00:49
>166
>>数式を扱うタイプのものは嫌というほどやったよ。

だから、それはCの一面を理解してるだけなんだよ。
そんなもんじゃ「俺はCに詳しい」なんて人に自慢できない。

>んじゃぁ、必要なヘッダをあげてみろよ?

必要なのはヘッダよりも、ライブラリやAPI。
それが嫌なら、グラフィックメモリに直接書き込め。
309デフォルトの名無しさん:2001/04/05(木) 00:51
>>166
そのヘタレ具合で何の実験をしたのか教えてくれ。
コピペ嫌いなんだが今回ばかりはキチガイ警報
だしたくなってきたよ。
310デフォルトの名無しさん:2001/04/05(木) 01:11
>>306
#include "directx.h"
なんて、今時の答えっぽくてどうかのう?
煽りになってないかのぉ
31193:2001/04/05(木) 01:51
>>310
今なら
#include "d3d8.h"
とかどうです?

>っつーかさぁ、どうやればC言語でグラフィカルな表現が出来るの?
Cのシンタックスを覚えただけでプログラムは作れないよ。
ポインタやったのなら、VRAM直書きも出来ると思うけど・・・・
312ななしにゃん:2001/04/05(木) 01:54
>>306
>んじゃぁ、必要なヘッダをあげてみろよ?
ぎゃははははは!マジか?こいつ?
VC++初心者以前のパソコン初心者だね!

今後二度とプログラマとか、プログラム出来るとか言うなよ?
俺らの地位も低く見られるからさ。マジで頼むわ。な?
そろそろ学校も始まるしさ、井戸に戻れ。な?(藁)

真性ヘタレ晒しage
313166:2001/04/05(木) 02:00
あのぉ・・・VC++でもなければ、C++でもないんだけど?
ただのCだぜ?俺がやろうとしているのは?
分かる?>>312
314254:2001/04/05(木) 02:01
>>299
new をオーバーライドすると、
たとえば this ポインターの位置を表示させたり出来ます。
そうすると、私が書いたプログラムで出てきた、解放されていない
メモリー領域と比較して、どれが解放されていないか素早く見くけられます。
(本当は、Deleteもオーバーライドして、どれだけ取ってどれだけ解放したか
みるのが一番良いのですけど。>>280 さんは、たぶんこれを言おうとしたと思います)

>>166
>>306
#include<conio.h>
これで十分だよ。
inp と outp だからね、使う命令は。
詳細は自分で調べましょう。
315166:2001/04/05(木) 02:01
まぁ俺も書き込む場所間違えてたかもしれんが、
とりあえず誤解している奴がいるから確認を。
ただのC言語でテトリスは組めるのか?
あん?あん?あん?VC++は無しだぜ。
316166:2001/04/05(木) 02:02
conio.h なら見たことある。
んじゃやってみるか。
317デフォルトの名無しさん:2001/04/05(木) 02:09
数式処理...ということは
Integrate[ (1+Sin[x])/(Sin[x](1+Cos[x])), x ]
と入力すると
-2*Log[Cos[x/2]] + 2*Log[Sin[x/2]] + Sec[x/2]^2 + 4*Tan[x/2])/4
と答えてくれるようなプログラムを作っていたの?
そこまでできてるんなら、ソレナリだとは思うけどね。

それとも数値計算かな? Bessel関数値計算の実装で留意しなければならないことは
と聞かれていくつか答えられるかな?

そのくらいできるなら「ある程度はこなして」いると胸を張って言えるよね。
318デフォルトの名無しさん:2001/04/05(木) 02:22
>>inp と outp だからね、使う命令は。
カッターナイフで一戸建て作るみたいな感じだな。
319デフォルトの名無しさん:2001/04/05(木) 02:30
>>317
ベッセルどころか九九すら危ういと思うがどうか?
320デフォルトの名無しさん:2001/04/05(木) 02:39
>166

>あのぉ・・・VC++でもなければ、C++でもないんだけど?
>ただのCだぜ?俺がやろうとしているのは?

言語とコンパイラの区別もついてねーんだろうな。
321166:2001/04/05(木) 02:59
をいをい、いくらなんでもコンパイラと言語の区別くらい
ついてるよ(笑)
っつーか、JavaのコンパイラでCをコンパイルするやつだったら、
区別がついてないっつーことを言われてもしょうがないだろうけどさ。
322デフォルトの名無しさん:2001/04/05(木) 03:26
あの、VC++って言語じゃないんですか?
製品なのは分かってますが、拡張機能使いまくって、
他のコンパイラで通らなくなったら、もはやVC++言語のソースって
言っていいような気がするのですが?
323デフォルトの名無しさん:2001/04/05(木) 03:45
>>322
プログラム言語の1種でしょ、VC++だって。
324デフォルトの名無しさん:2001/04/05(木) 03:48
通りすがりだけど、
>では、Cでもテトリスは作れるということですね?
痛過ぎ・・・
あんまり166煽ってタタリ神にしないほうが良いと思われ。

>>322
気がするのは勝手だけど、VC++はC++言語の実装の1つでしょ?
それを「C++言語じゃなくてVC++言語だ」って言い張るのは
無理だと思われます。

>>323
言語処理系の1つ、でしょ?
C++はプログラム言語の1つ。
325Visual Basic :2001/04/05(木) 04:13
びじゅある・べーしっく
 Microsoftが開発したプログラミング言語およびアプリケーション開発環境。

 Windows環境でWindowsアプリケーションが作成可能なように、従来のBASICを拡張したもの。
いわゆるRAD(Rapid Development)ツールの元祖的存在。「フォーム」と呼ばれる、
アプリケーションのベースとなるウィンドウにさまざまなコントロール(ActiveXコントロール)
を貼り付けてアプリケーションを完成させる。最初にリリースされたのはWin16版で、
その際のコントロールは独自インターフェイスのDLL(VBXと呼ばれていた)であったが、
Win32版では、カスタムコントロール(OCX)として、COMをベースにしたものに変更された。
そのためWin32環境のOCXでは、他のベンダでも開発環境でも、カスタムコントロールが利用できるようになった。
さらにカスタムコントロールは、ActiveXコントロールと名前を変えInternet Explorerに貼り付けて利用できるようになった。
326デフォルトの名無しさん:2001/04/05(木) 04:18
VC++だって言語および開発環境と呼べるのではないだろうか?
327デフォルトの名無しさん:2001/04/05(木) 04:38
「VC++はマイクロソフトが開発したプログラム言語です」
って言うつもり? んなむちゃな。
もちっといろいろな言語を見てみれば、
VC++の、標準C++からのズレなんてどうでも良いことに気づくよ、きっと。
328デフォルトの名無しさん:2001/04/05(木) 04:41
やれやれ。
「言語仕様と実装の区別が付かない厨房」ってホントにたち悪いね。

ところで言語仕様で表示機能の実装を規定している言語っていうと、
何があったっけ?タートルグラフィックとか…ありゃマクロかな?
329>328:2001/04/05(木) 05:13
Schemeは印字出力形式も規定されてます。
よって出力されたデータを再読込み(または実行)して
同じ結果にすることが可能。
あ、点打ったりする画面表示の事?だったら知らん。
330デフォルトの名無しさん:2001/04/05(木) 05:16
VC++で円周率ってPIじゃダメなの?
331デフォルトの名無しさん:2001/04/05(木) 05:20
332デフォルトの名無しさん:2001/04/05(木) 05:22
http://www.hitachi.co.jp/HAND/SOFTPAGES/1297.html
VC++は言語仕様ってところか?
333デフォルトの名無しさん:2001/04/05(木) 05:37
>>324
C++の部分はね。
ただ、固有の拡張機能使いまくってたら、もはやC++とはいえないのでは?
334324:2001/04/05(木) 06:03
>>333
何が「もはやC++とはいえない」の?

拡張機能使いまくられて書かれたソースはC++で書かれたようには
見えないかもしれないから、
そのソースはC++で書かれたとは言えないと認めても良い。

でも、
そのソースがVC++でコンパイルできるからといっても、
VC++はC++言語の1つの実装であることには変わりないでしょ?

つーか、
もう、
VC++はC++言語の実装ではなく、
マイクロソフトが開発したVC++言語の
実装の1つ、ということでいいです。。。
335デフォルトの名無しさん:2001/04/05(木) 07:32
リモートデバッグで質問です。
プロジェクトの設定の「デバッグ」のカテゴリ「追加するDLL」の設定方法がわかりません。
ローカル名とリモート名には何を書けばいいんでしょうか。
ホストはWindows2000でターゲットはWin98です。
多分、どっちかのマシンのファイルのパス名を書くんだと思うんですが…。

何も書かずに実行した場合、ローカルモジュールの検索「リモートファイル用のローカルファイル名を入力」というダイアログが出て、
たとえばwinmm.dllの時だと「C:\WINDOWS\SYSTEM\WINMM.DLL」というのがデフォルトで入ってます。
このままOKを押すと「リモート上の対応するファイルとマッチしません」になります。
「C:\WINNT\SYSTEM32\WINMM.DLL」や「マシン名\WINNT\SYSTEM32\WINMM.DLL(WINNTは共有フォルダ)」
とかやってみましたが結果は同じでした。

336デフォルトの名無しさん:2001/04/05(木) 08:56
166の自作自演が痛いな・・・・・・
337デフォルトの名無しさん:2001/04/05(木) 10:11
突然ですが質問です。
VC++を使っているのですが、ヘッダファイルの二重インクルードを防ぐ方法を教えてください。#ifdefとかなんとかでできると思うのですが使い方がよくわからなくて・・・。
338デフォルトの名無しさん:2001/04/05(木) 10:15
VC++っていまどき MDIなんですか? Builderみたいに自由に配置したいんだけどどうしたらいいの?
339デフォルトの名無しさん:2001/04/05(木) 10:18
>>337

#ifndef hoge
#include "hoge.h"
#endif

hoge が未定義の場合のみ #endif の部分までを実行。
いや、どうとでもなるけど。
340デフォルトの名無しさん:2001/04/05(木) 10:21
>>301
無名共用体知らなかった。鬱田詩嚢。
341デフォルトの名無しさん:2001/04/05(木) 10:34
>>339
どっちかっつーと中でやらん?

/* hoge.h */
#ifndef HOGE_H
/*
...
*/
#endif
342341:2001/04/05(木) 10:36
しまった。define 忘れてるよ。

#ifndef HOGE_H
#define HOGE_H


#endif
343デフォルトの名無しさん:2001/04/05(木) 11:09
>>336
どこが自作自演なんだ?
344デフォルトの名無しさん:2001/04/05(木) 11:33
えっと、339さんと341さん。ありがとうございます。
また、いろいろ聞きますのでお願いします。
345335:2001/04/05(木) 11:40
リモートデバッグしようとしてVCの設定をいじってたら、なんとかできるようになりました。
かわりにDirectDrawが動作しなくなりました。
DirectDrawで、サーフェスのGetDCを実行した途端、エラーメッセージの表示すらなく問答無用で終了してしまいます。
dllの設定を変更した時にDdraw.dllのパスとかを変更したのがいけなかったのかもしれませんが…。
エラーメッセージすら表示されないので何が原因なのかわかりません。
このような症状に心当たりは無いでしょうか。
346デフォルトの名無しさん:2001/04/05(木) 12:27
VBにおけるDoEventや、DelphiにおけるApplication.ProcessMessagesみたいな、Windowsメッセージを処理する命令ないですか。あと、モーダルウィンドウを作ろうとして、CFrameWndを継承したクラスでBeginModalState()ってやったらメインウィンドウがモーダルになっちゃったのです。何故でしょう。作り方が悪かったんでしょうか?ちなみに、
メインフォーム(CFrameWndを継承) : グローバルスコープ
 アプリケーション(CWinAppを継承) : グローバルスコープ
 モーダルしたいフォーム(CFrameWndを継承) : アプリケーションクラス内
で、最後の「モーダルしたいフォーム」はポインタで宣言しておいて、メインフォームのコンストラクタ内でnewしてます。
どうでしょうか。よろしく教えてください。
347254:2001/04/05(木) 12:32
>>337
VCなら
#pragma once
って使えるよ。
詳しくはMSDNでも調べてちょうだい
348347:2001/04/05(木) 12:36
プログラム作成についての質問ではないのですが・・・。

ICQを、付属のインストールシールド使わずにインストール
する方法って、、あるんでしょか
349デフォルトの名無しさん:2001/04/05(木) 13:04
>>345
どこまでステップで追えるの?

>dllの設定を変更した時にDdraw.dllのパスとかを
>変更したのがいけなかったのかもしれませんが…。
Direct-Xのバージョンが同じdll , h , lib を使っている
なら問題無いような。
ツール -> オプション -> ディレクトリ のインクルードファイル&
ライブラリの優先順位はあってる?

あとはポインタ周りのメモリ破壊か。


リモートデバッグとは羨ましい。フルスクリーンのときは
デバッグ時は裏画面で表示切り替えたり、エラーログを
テキストで記録したりしてたな。


350デフォルトの名無しさん:2001/04/05(木) 13:37
>>345
GetDCでおちるのは、Win16Mutexが関係しているとか
きいたことがある。
351デフォルトの名無しさん:2001/04/05(木) 20:31
>>350
これだろ
http://www.microsoft.com/JAPAN/support/kb/articles/JP147/2/56.HTM
Win2000ならGetDCの中までトレースできるぞな
352335:2001/04/05(木) 22:43
なんか、再起動すると上手くいくみたいです。
そして何度か実行してるとまた同じ症状になります。

あと、Windows2000をホストにしてWin98で実行、もしくはWin2000ローカルで実行するとこの症状が出ますが、
Win98ローカルで実行すると問題なく実行できます。デバッグできないけど。
353デフォルトの名無しさん:2001/04/05(木) 23:28
CArchiveのReadLineでEOF時の例外がCATCHできないんです.
DEBUGモードで実行すると例外はThrowされているようなんだけど.
CACTHで引っかかりません.
なぜ?
354166:2001/04/06(金) 00:59
麺クリア時に女の子の服を脱がす関数はなんですか?
void girl::strip(unsigned char);これかなぁ?

あと、僕がjavaだと思ってたのはコボルでした。すいませんです。
355デフォルトの名無しさん:2001/04/06(金) 01:10
>>354
だから負け犬はもうここに書くなって。マジうぜぇから。
356勝ち犬:2001/04/06(金) 01:12
おれの勝ちだ。
わんわん
357デフォルトの名無しさん:2001/04/06(金) 01:32
VBアプリから『c:\temp』に保存しているhtmファイルを開くにはどうしたらいいのですか?
358166:2001/04/06(金) 01:48
っつーか俺の偽物の自作自演がむなしいな。
煽りとしか思えない。
煽りは罰金もんだぜ?
暴走族を煽ったことが原因で、裁かれる罪になったのだよ。
分からないやつは、逝ってよしっ。
359デフォルトの名無しさん:2001/04/06(金) 09:00
>>358
無知も罪だぞ(藁)
360166:2001/04/06(金) 10:10
では、赤ん坊は罪人だらけだな。
361デフォルトの名無しさん:2001/04/06(金) 10:38
166、ウザい
362デフォルトの名無しさん:2001/04/06(金) 11:06
166屁理屈しか言えないから、お前はダメなんだぞ?
363デフォルトの名無しさん:2001/04/06(金) 11:41
Windows2000でWriteProfileStringを使っているアプリケーションがあるのですが
コンピュータを複数のユーザーで使用しているため、勝手にWIN.INIの内容が変更されてしまいます。
アプリケーションが使うWIN.INIの場所はどのように指定されるのでしょうか?
364イブマサト:2001/04/06(金) 11:47
>>360
私は子供に生まれなくて本当にシアワセだ!
365デフォルトの名無しさん:2001/04/06(金) 13:27
166って、まだ本物居るのか?
さすが春房、レベルが違うな。

>>360
その話は宗教の方で昔から話されてるから、宗教板に行ってくれ。
366166本物:2001/04/06(金) 22:48
                Λ_Λ   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
                ( ・∀・)< Javaの勉強しているんだから、静かにしてくれる?
             _φ___⊂)__ \_______________
           /旦/三/ /|
        | ̄ ̄ ̄ ̄ ̄|  |
        |熊本みかん|/
           ̄ ̄ ̄ ̄ ̄
367166本物:2001/04/06(金) 22:49
春房?馬鹿いっちゃいかん。俺は既に大人だと言っただろ。
既に義務教育など終えているのだよ。
なんで俺を馬鹿にしたがる?あん?
グラフィカルな面を抜けば、C言語は使いこなしてるんだよ、ボォケナスガァ!
368デフォルトの名無しさん:2001/04/06(金) 22:55
sageで書けよ。ったく目障りな厨房だ。
369デフォルトの名無しさん:2001/04/06(金) 23:02
>>366
そのAAなんか和む。
370166:2001/04/06(金) 23:08
>>368
                Λ_Λ   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
                ( ・∀・)< 命令してんじゃねーよ。目障りに思うのはてめーの勝手だけどさぁ。
             _φ___⊂)__ \_______________
           /旦/三/ /|
        | ̄ ̄ ̄ ̄ ̄|  |
        |熊本みかん|/
371デフォルトの名無しさん:2001/04/06(金) 23:27
目障り。
372166:2001/04/06(金) 23:29
>>371
                Λ_Λ   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
                ( ・∀・)< 俺からしてみれば、いちいち目障りって言うあんたが目障りだぜ。
             _φ___⊂)__ \_______________
           /旦/三/ /|
        | ̄ ̄ ̄ ̄ ̄|  |
        |熊本みかん|/
373166:2001/04/07(土) 03:46
                Λ_Λ   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
                ( ・∀・)< おっ、関心関心。みんな俺の為に静かにしてくれんだね。
             _φ___⊂)__ |きっとJavaでテトリスを作ってみせるよ。
           /旦/三/ /| \_______________
        | ̄ ̄ ̄ ̄ ̄|  |
        |熊本みかん|/
374ゆうきこすも:2001/04/07(土) 05:58
166のおかげでなんだかんだでもうすぐ400です。
アフロがとう。
375166:2001/04/07(土) 06:03
                Λ_Λ   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
                ( ・∀・)<  いや、俺を煽ったやつのおかげでしょ?
             _φ___⊂)__ \_______________
           /旦/三/ /|
        | ̄ ̄ ̄ ̄ ̄|  |
        |熊本みかん|/
376166:2001/04/07(土) 09:55
                Λ_Λ   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
                ( ・∀・)<  いやぁ、オブジェクト指向のプログラムって奥が深くて面白いね。
             _φ___⊂)__ \_______________
           /旦/三/ /|
        | ̄ ̄ ̄ ̄ ̄|  |
        |熊本みかん|/
377デフォルトの名無しさん:2001/04/07(土) 14:54
-------------------------------------------
このスレッドは166放置スレッドになりました。

以降VC++の質問は
http://piza.2ch.net/test/read.cgi?bbs=tech&key=981630730
で受け付けます。
\_ ____________________/
   |/

   Ψ
   □
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
378166:2001/04/07(土) 21:34
  ∧_∧  カタカタ   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 (    )  ∧ ∧ < よしっ、テトリスが出来たぞ。
 (    )  (,,゚Д゚)  \____________
 ̄ ̄ ̄ ̄ ̄ (つ_つ__
 ̄ ̄ ̄日∇ ̄\| BIBLO |\
        ̄   =======  \

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ほう、プログラムが組めるという自慢ですか?

   ̄ ̄ ̄|/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ∧_∧       / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ( ・∀・)  ∧ ∧ < な、なんですか?あなた・・・
 (  ⊃ )  (゚Д゚;)  \____________
 ̄ ̄ ̄ ̄ ̄ (つ_つ__
 ̄ ̄ ̄日∇ ̄\| BIBLO |\
        ̄   =======  \

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| 私は出来るプログラマーだって言ってるわけだ

   ̄ ̄ ̄|/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ∧_∧       / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (  ・∀)  ∧ ∧ < 言ってないですよ・・・ソンナコト
 (     )  (;゚Д゚)  \____________
 ̄ ̄ ̄ ̄ ̄ (つ_つ__
 ̄ ̄ ̄日∇ ̄\| BIBLO |\
        ̄   =======  \

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| 私の事は「テトリスもつくれないヘボプログラマ」ですか。

   ̄ ̄ ̄|/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ∧_∧       / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ( ・∀・)  ∧ ∧ < だから逝ってないでしょ!!
 (  ⊃ )  (゚Д゚;)  \____________
 ̄ ̄ ̄ ̄ ̄ (つ_つ__
 ̄ ̄ ̄日∇ ̄\| BIBLO |\
        ̄   =======  \

379166:2001/04/08(日) 04:52
                Λ_Λ   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
                ( ・∀・)<  さぁってと、そろそろ本格的にテトリス作成に入るぞ。
             _φ___⊂)__ \_______________
           /旦/三/ /|
        | ̄ ̄ ̄ ̄ ̄|  |
        |熊本みかん|/
380デフォルトの名無しさん:2001/04/08(日) 07:15
>>367
春房 = 春休み中の中学生以下の精神年齢を持つ奴
文面から読み取ってね。

って、煽ってみたけど、結構本気で反応してくれてぽっくんうれぴい。
381166:2001/04/08(日) 11:21
                Λ_Λ   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
                ( ・∀・)<  例え中学生以下の精神年齢でも、技術はてめーよりは上だよ(プ
             _φ___⊂)__ \_______________
           /旦/三/ /|
        | ̄ ̄ ̄ ̄ ̄|  |
        |熊本みかん|/
382デフォルトの名無しさん:2001/04/08(日) 12:54
Bitbltで、寸法640X480ピクセルのビットマップから32X32ピクセル分を部分的に取り出したいのですが、どうすればよいのでしょうか。
383382:2001/04/08(日) 12:56
と思ったら論理長を座標+32にしていたのでながすぎたというオチでした。ごめんね。
384デフォルトの名無しさん:2001/04/08(日) 14:45
166はgraphicパッケージが実装されてないjava環境を知らないのか…
385166:2001/04/08(日) 18:53
>>384
                Λ_Λ   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
                ( ・∀・)<  そんなヘボい環境で開発なんてしてられっかよ(プ
             _φ___⊂)__ \_______________
           /旦/三/ /|
        | ̄ ̄ ̄ ̄ ̄|  |
        |熊本みかん|/
386デフォルトの名無しさん:2001/04/08(日) 19:23
これで166が正真正銘のドキュソであることが証明されたと思うがどうか?
…そんなこととっくにわかってるって?(藁
387166:2001/04/08(日) 19:30
                Λ_Λ   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
                ( ・∀・)<  はぁ?ドキュソ?馬鹿じゃねーの?日本語ちゃんとしゃべれ(ププ
             _φ___⊂)__ \_______________
           /旦/三/ /|
        | ̄ ̄ ̄ ̄ ̄|  |
        |熊本みかん|/
388デフォルトの名無しさん:2001/04/08(日) 20:34
>>180 名前:166投稿日:2001/04/01(日) 01:35
>>  しゃ〜〜ねぇなぁ。俺がCでテトリスを作ってみるか。
>>  まっ、2,3日待ってろや。作ってくるから。
>>  口だけの誰かさんと違って、やれると分かればやってやるぜ。
>>  覚悟しとけよ、>>173

今から考えると、エイプリル・フールだったんだね。

389166:2001/04/08(日) 21:45
>>388
                Λ_Λ   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
                ( ・∀・)<  気付くのが遅いね。っつーか、とっくに俺はJavaで組むって逝っただろ?
             _φ___⊂)__ \_______________
           /旦/三/ /|
        | ̄ ̄ ̄ ̄ ̄|  |
        |熊本みかん|/
390デフォルトの名無しさん:2001/04/08(日) 21:46
PCしか環境知らないドキュソにアホ呼ばわりされたくないなあ。
で、煽りって楽しいかい?
391166:2001/04/08(日) 21:56
をいをい、俺はWSも経験済みだぜ?
UNIX系も使ったことがある。
いい加減てめーらより経験と技術があることに気付けよ。
このままじゃピエロだぜ、あんたら。
392デフォルトの名無しさん:2001/04/08(日) 22:01
ローカルルール: 166は死んでください。

166の場合、技術だの経験だのより前の問題だろう。
うざったいったら。
393デフォルトの名無しさん:2001/04/08(日) 22:01
すっかりこの板で知名度ナンバーワンのコテハンさんですね。
394166:2001/04/08(日) 22:03
                 _  ,,. -―‐-.、.__
                ,.-'" ̄  ``'´     ,;:‐`ー--、
             /       ´'´          ``-、
           /     __..._       ,..´ ̄``ヽ、. ::、\
              /   ,.-'´         `       \、;::、、ヽ
           /  ./     ,,..  _    __,,,,,、、. .. \;;:: : ヽ
          i   /  ,  ,/ / ,/ .; 、、``\ヾヾ、、.::.\;;;: .|
            |   / , / .:/.,;.;イ/ . / ' .:;i: l. !: i lヾヽヽ;: ヽ:: ヽ;;: :|
            ! ./././/.:/;;/'//: ;//.::::/;. ! |:: |:|、ヾ、;;:.. ; |;. : |;;;:. |
         | :|;/.//.:/.:/X..、|:l|;;/:/,:::;イ:;: |/|:::|リヽ:|;,ヾ;:;..;:|;,;: .:|;;: |
           |  l///,;/,;/∠≧ミ/|イ;:://;'.イ/|;:|l_-‐|;||:; |;:; : |;.:;:. !;;、|
        | .;::||1 |;;;|;//'7::::::OミN:://イノ∠キ'<´|;:||:; |;: : :|;;:;: ;|;;|;|
          !.;/:::||; |;;|/〈l |:::::::::q l レ`/ノ"|::::::○、ミ|;/|:: |':;.:::|l;;;:: ||:|l|
         |;イ;:::;;|ヽl;N  O:::::;ノ     |:::::::::9 | l' /|:ノ::i: :|l;; :;イl| |
         /'/;:::|;;;::ヽ、;ヽ  ニニ      O;;::;ノ ''"/;;レ::/ , |;;: /ノリ |
       /"|/'´|,'|:: lヽヾヽ〃〃      ‐-ニ  /ノノノ; //'イ、 ノ ´
     /∧ ’  レ|::∧`|i、`       l  〃〃 __/彡ノ,イノノ;;;;|ヽ    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
     // l    V レ|;!、l、 '⌒`ヽ、_     ノ;//ノィ1'|;ll;)ヽ|\   < ねぇねぇ、私を馬鹿にしておもしろーいぃ?
    lV、  l      (|レ\l\     ``_.. -'´|;イイ;;ィ∧;:|`リ'`_ヽl    \__________
    ! ヽ\l      | ヽ|   ヽヽ、__...-7´   X/|ル' ∨ ノイ´∧
395デフォルトの名無しさん:2001/04/08(日) 22:36
>>166
被害者妄想の加害者って、通り魔とか、ストーカーとかに
共通の資質だよ。悪いこといわないから改めた方が良いよ。
396166:2001/04/08(日) 22:38
それでは問題。
私が一体何の加害者になった?
ん?ん?ん?
私は誰も攻撃をしていません。
攻撃をしてくる人に対して、防衛をしただけです。
あなたこそ、加害者なのに被害者妄想をしているのでは?
397デフォルトの名無しさん:2001/04/08(日) 22:57
そういえば、日清から10年保存計画カップヌードルでたよね。
398166:2001/04/08(日) 23:00
>>397
だからなんだ?
プログラムを組んで10年保存計画のカップヌードルを作れってか?
そりゃ無理だ。
399デフォルトの名無しさん:2001/04/08(日) 23:25
>397
俺5個買った。10年後プレミアつくかも
400デフォルトの名無しさん:2001/04/08(日) 23:33
10年後も同じ物が売られていると思われ(藁
401デフォルトの名無しさん:2001/04/09(月) 02:20
>>166
いちいち煽りに反応すんなっつの。
あんたの言う「防衛」は無関係の人間にダメージが来るんだよ。
402デフォルトの名無しさん:2001/04/09(月) 03:12
>>396
貴様が延々とスレ違い&勘違いのレスを付けまくってるから、本来のスレのお題から
遠くかけ離れている。
このスレの本題を必要としている貴様以外の利用者に対するテロ行為だ。
今すぐ回線切って首を吊れ。
403デフォルトの名無しさん:2001/04/09(月) 03:15
せっかくの初心者スレだったのにな。
404デフォルトの名無しさん:2001/04/09(月) 03:43
まったくねー、質問しづらいよ
405166:2001/04/09(月) 05:48
あれ?だって・・・
http://piza.2ch.net/test/read.cgi?bbs=tech&key=981630730
こっちに移動したんじゃないの?
何今更俺に文句たれてんだ?
406デフォルトの名無しさん:2001/04/09(月) 05:59
これから166がVC++初心者にいろいろ教えるスレにしてしまうと
いうのはどうだ?(名スレの予感)
407166(氷川きよし):2001/04/09(月) 06:37
やだねったら、やだねぇ〜♪
408デフォルトの名無しさん:2001/04/09(月) 06:45
>>405
そりゃアロエリーナが仕方なく機転きかせたのでは?
だいたい原因は……

VC++ってちょい特殊だから、初心者の方はとっかかりづらいはず。
特に習いはじめは他の環境に比べ、厨房質問せざるを得ないと思う。
そういう意味で貴重なスレだったのです。ま、いいけどさ。
409デフォルトの名無しさん:2001/04/09(月) 07:55
うわ、すげえバカだな166は。
プログラマ板で紹介してえ・・・つってもタダの春房だしな。
久々に覗くとびっくりするね。(やっと地獄終わりました)

ところで、まともな質問ないの?
410166:2001/04/09(月) 10:29
ふっ、偽物の166がいるから、馬鹿に見えるんだよ。
本当の166、つまり俺は馬鹿じゃないぜ。
知恵も知識も経験も技術も、偽物よりかは遥かに上だ。
411デフォルトの名無しさん:2001/04/09(月) 10:48
166の台詞を他人に話した場合・・・
割りと親しい人・・・「はぁ?つーか、おめぇアホか?」
一般的同僚・・・「るせぇ!死ね!」
上司・・・「ちょっとそこ座れ!」
シャチョー・・・「君、要らないよ。クビ」
赤の他人・・・「はぁ・・・そうですね。(こいつとは仕事したくねー)」
うそだと思ったら言ってみ。責任は取らんけど
412166:2001/04/09(月) 11:34
ふっ、私が社長だ。
我に従わぬ者、要らぬ。
413デフォルトの名無しさん:2001/04/09(月) 13:10
倒産間近
414デフォルトの名無しさん:2001/04/09(月) 13:21
つーかみんな、カレーのルウは何派?俺はこくまろ。
415166:2001/04/09(月) 13:59
んじゃ俺は歌まろ。
416デフォルトの名無しさん:2001/04/09(月) 14:33
>414
あれもうまいけどゴールデンカレーのほうが好きだな。
417166:2001/04/09(月) 16:33
キーコーヒーのカレー缶。
インスタントのやつはもうあれしか俺の口が受け付けない・・・。
418デフォルトの名無しさん :2001/04/09(月) 17:29
すんません。switch文でDelphiでは
case 1..9 : break;
ってカンジで「nが1〜9の場合は」というように範囲を
指定できるんですが、C++で範囲指定するには
どうやって記述したらよいのでしょうか?
419デフォルトの名無しさん:2001/04/09(月) 17:37
break; をはさまずに
case 1:
case 2:
case 3:
foo();
break;
default:
bar();

という風にするしかないのでは?

420166:2001/04/09(月) 17:52
こんなんじゃダメか?
(コンパイル、動作確認済み)

#include <iostream.h>

int main(void)
{
int n;
cout << "Input n > ";
cin >> n;

switch(n) {
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
case 9:
cout << "1 <= n <= 9 \n";
break;

default:
cout << "n < 1, 9 < n \n";
break;
}
return(0);
}
421166:2001/04/09(月) 17:53
switch じゃなきゃだめなんか?
if(条件文)でやった方が良い様な気がするが・・・。
422166:2001/04/09(月) 17:57
http://www6.freeweb.ne.jp/computer/felmata/cpp2.html
検索してみたら出てきた。
423デフォルトの名無しさん:2001/04/09(月) 18:35
常駐DLLを登録したいのですが、
レジストリのどこのキーをいじくればいいんでしょうか?
424デフォルトの名無しさん:2001/04/09(月) 19:49
>>418
DelphiじゃCase ofでbreakは要らない筈だが・・・

>>423
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
じゃなかろか?

あるいはDLLをOLEオートメサーバとして作って
regsvr32 hoge.dll
かも。
425デフォルトの名無しさん:2001/04/09(月) 20:18
えっと、そういうものじゃなくて、プロセスが作成されるときに、
自動でプロセスにアタッチされるようにしたいのですが、、、、
426423:2001/04/09(月) 20:18
プロセスが作成される時というか、作成されるたびです
427デフォルトの名無しさん:2001/04/09(月) 20:49
>>422のリンク先
>ifやLoop(後にやります)では一行だけ実行する場合、
>カッコは必要ないのです。複数行実行する場合のみ、カッコが必要になります。
>これを知っていれば、より奇麗にProgramが書けるでしょう。

これさえなければ無害なページだったんだが…
428C++--=C:2001/04/09(月) 21:01
>427
どこが駄目なんですか?
429デフォルトの名無しさん:2001/04/09(月) 22:50
垂直スクロールバーのつまみの位置を、一番上にするには、どうしたらいいのでしょう。
430デフォルトの名無しさん:2001/04/09(月) 22:56
>>428
デバッグの時、見つけやすいから行はなるべく分けろ、と
言われたことない?
431デフォルトの名無しさん:2001/04/10(火) 00:15
>>429
MSDNでWM_VSCROLLとかSetScrollPosとかを調べれ。

>>428
「一行だけ〜」とかって書き方が有害。
Cの構文解析に「行」という概念が無いのは知ってるな?

ex)
&nbsp if ( boolean )
&nbsp a=0; b=0; /* 一行には違いない */
&nbsp else
&nbsp a=1; b=1; /* 同上 */
432デフォルトの名無しさん:2001/04/10(火) 00:43
やっぱ「文」でしょ。

a=0, b=0;

とか。
433デフォルトの名無しさん:2001/04/10(火) 01:17
>>428
ついでに言うと、{}がない方がソースが綺麗であるという思い込みが痛い。
434254:2001/04/10(火) 01:21
>>433
あまりにも痛すぎるね。
正直、一緒にはプログラムを組みたくないタイプです。

(とか言いながら、四則演算に括弧付けまくり厨房ですが。
435デフォルトの名無しさん:2001/04/10(火) 01:40
ついでに言うと、そんなページを見つけてきて嬉々として初心者スレに
貼り付けるあっちの166も痛い(ワラ
436デフォルトの名無しさん:2001/04/10(火) 02:49
昔fj.comp.cを賑わせたなまおクンのクソ講座を彷彿とさせるね。
あそこまで痛くはないけど。
つか、無料webスペースでC/C++講座とかやってる奴ってどうしてこう
どいつもこいつも痛いのか…いかん、スレ違いだ。
437166:2001/04/10(火) 03:47
>ついでに言うと、そんなページを見つけてきて嬉々として初心者スレに
>貼り付けるあっちの166も痛い(ワラ

をいをい、おめーら。
ヘボいページを探した俺をどうこう言うなよ(笑)
参考になりゃ良いんだろ?
別に俺は上のページを推奨しているわけでも、
「嬉々として」いるわけでもねーしよ。
俺が質問しているやつに参考にさせたのは、
あくまで switch() case: の部分だ。
その他のやつの記述方法になんて気にしちゃいねーよ。
人の勝手だろ?出来れば良いだろ。
推敲なんてあとでやれば出来るんだしさ。
初心者を相手にあまり難しい論議しない方が良いんじゃねーの?
俺は初心者を相手に良く指導してやったからな。
初心者にとってどこがよく分からないのか、
その辺はある程度は理解しているぜ。
438デフォルトの名無しさん:2001/04/10(火) 03:48
>>435
でも以前の166よりいい方向だし、オレは評価するべきだと思う。
言っとくけど166の自作自演ではないよ。166に対する
きつい内容のコメントは何度かした。
439438:2001/04/10(火) 03:49
書いたそばから・・・(あぁ)
440166:2001/04/10(火) 03:53
をいをい、やめてくれよ。
俺と俺の偽物を区別できずに、ただ
俺を批判したやつ、そっちの方が痛い。
分かった口聞くな。
せめて確実に見分けが出来たら、
偉そうなことを言え。
ちっ、どいつもこいつも。
てめーの都合ばっかで言いたい放題言いやがって。
441438:2001/04/10(火) 04:03
>>440
偽者に対する批判は166本人への批判には値しないと思うぞ。
その誤解を招きやすくおもちゃにされやすいキャラを改造する
のは後回しでいいのでスレの趣旨に沿った書き込みすれ。
442166:2001/04/10(火) 05:21
            _  _                   
            ,//,ノノ _          
            ノノノノ,//         
          /″ ゞ ソ--、        
        _ _人 と″< ̄丶     
       λヽ\ヽ__ノゝつ       
      /ゞ\\γ          
    /゙    ゞソゞ            
  /′ ′  /               
 γ  ノ′  /   
 |   ク  /                      / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
│    イ′       /~~⌒~⌒~⌒~ヾ    < 問答無用!この俺をだましたこと
λ  γ⌒ヽ      /            )     \地獄で後悔するがいい!!!!
ヽζ τ,   \    (   /~⌒⌒⌒ヽ )      \__________
  ヘ   ゙   < ̄⌒ヽ (  ξ;;  、  , |ノ     
  \    ,,;;:  γ ( (6ξ--―●-●|κ~ ̄`ヾ_   メキメキメキメキ
   \   ″  /゙  \ >、 ;  ) ‥ ) :::  γ⌒⊇                 n _
     \_ヘ  ノ    ゙ >\ _  ー=_ノゝ:;、, /´″  ヽ               |;| |;| ;_
       \_ <《  ;::゙γ~/∠″─-斤ソ′∨″ミ_    }               ノn」」ノノ,-
        \ :ケ″ι/ √ γ ̄「 /´  (      人_              /ソ斤ソ//
         ヘ′,  」 |   ;  { /゙   _;:;>へヾ  i/λ          √N/  γ i′
          ゝ;::゙ │L_ ; _;」 {゙_:;_;<  ::;゙(   i/ ∠ ヽ_ _,、─==゙゙ ̄ ̄‖|||、   ) }
           \ { L;;_λ__;;ヘ∨   :;;゙゙へ/′/   Y″  、、    ‖|├ = =″
            κ { |;ゝヘ二_:;;ゝ\_;::;″  ><″=;:,, : _ _;  イ    ≠U丿
            Λ ,ヘ∨;;ヘ __:;;;人| \_;゙γ″:;::;;ゝ ″  ::;ミ ′   /
           (  人\;;;;ゞ、;;/   ) ) 」 ::ノ ″←< _= ─ ゙゙
                                 ヽ--~
443デフォルトの名無しさん:2001/04/10(火) 05:23
166の時点で十分痛いっつーの>>440
それ以降は166のパロもあるだろうから本気にしてるヤツァいない
(いたら相当痛い)
だが、441の言うとおりだ。166問題は終わりにしよーぜー
ネタスレじゃなかったんだからよ
444166:2001/04/10(火) 05:36
     _ _――_\⌒))
    _>           ⌒ヘ
  ̄―                ⌒ヽ
  ∠⌒   ,  ,             ミ
   ∠  _|/ |/ | ∠ / |/)     ヽ
    //|-‐(‐ |/´‐/ノ‐∠     \
    ´/ )√Tt)  /^Tt> | ||ヽ ミ⌒
    //::{〃〃、  〃〃 | .|.ノ!ノ
  ,< /   \  ‐‐   ノ|. |
ミ</      _厂Y ̄ ̄ |. |
彡    \ ̄ヽヽ      |. |
痛いの痛いの、飛んでけぇ〜〜♪
445デフォルトの名無しさん:2001/04/10(火) 06:46
あーあ・・
せめて下げて書こうよ
446デフォルトの名無しさん:2001/04/10(火) 09:47
>>440
へぼいページが参考になると思いこんでる166が痛い。
447166:2001/04/10(火) 09:50
>へぼいページが参考になると思いこんでる166が痛い。
それだよそれ、勝手に決め付けて煽るやつ。
だったらてめーがもっと参考になるページを見つけて、
嬉々とすればぁ?
別に俺はあのページが参考になるなんて言ってないぜ?
switch case: のところの例としてあげただけだ。
バーか。
448デフォルトの名無しさん:2001/04/10(火) 10:05
バカはお前だ。へぼいページへのリンクをそのまま貼り付けて「例としてあげた」とは片腹痛い。
例として不適切かどうか評価してもいない(できない)くせに大きな口を叩くな。
449166:2001/04/10(火) 10:08
大口なんて叩いた覚えはないし、
switch case:の例としては別良いと思うけど?
っつーか、そのページに問題があるなら、
直接そのウェブページの管理人に言えよ。
俺がヘボイんじゃねーんだからさぁ。
450166:2001/04/10(火) 10:10
>>448
批判するだけの能無しはてめーだな。
そんなに五月蝿く言うなら、てめーがこれはいける!
っていうページを紹介しろよ。
無理ならてめーがサイト開け。
それくらいして、相手を満足させたら、大口叩け。
451166:2001/04/10(火) 10:11
俺はもうここへは書き込まないからな。
下らない煽りをするだけの、自称プログラマになど
相手にしてられないからな。
言っておくけどな、俺はおめーよりは経験も技術も知識も
ルックスも全て上だ。これだけは揺るぎ無い事実だ。
452デフォルトの名無しさん:2001/04/10(火) 10:14
>>450
批判するならお前がやれ、と言う発想が痛い。
「ない方がマシ」という現実を知らないらしい。
453デフォルトの名無しさん:2001/04/10(火) 10:15
>>451
仕様と実装の区別が付かない厨房が偉そうだな(ワラ
454166:2001/04/10(火) 10:18
これで最後。
>「ない方がマシ」という現実を知らないらしい。
お前みたいな煽るだけの発言の方が
「ない方がマシ」という現実を知らないらしい。
455デフォルトの名無しさん:2001/04/10(火) 10:35
166必死(プ
456デフォルトの名無しさん:2001/04/10(火) 10:50
>>451
頭悪いセリフだな。(ワラ
>>454
「最後」の意味を知らないらしい。
回線切って、首吊ればぁ〜?
457166:2001/04/10(火) 11:31
>>456
   ..      ./ ./  ,  / i" ./i 'ヽ \ \-, ,  ヽ  ヽ
          | ./  /  / /| ./ |  lヽ | ヽ \ヽ \ |\ ヽ
          |/  ,///' =, |/  |. \ヽ|,,,ヽ|,|,- |  ヽ. ヽゝ ちょっと、さっきから
          / /l/ i/ /,,-^~'''=-ヽヽ  |.-='''~^ヽ,\ヽ i  |  166を煽っているあんた!
          |/ ,i  | .ii  i,ノii    \|  il,ノ;i ii> '' i-,|  | 人に嫌な思いをさせて楽しい?
          ヽ.|| ,/ヽ ' ヽ-'    /     '''''''   /i.)|ヽ/   暴走族を煽ったことで、
          '|| | |'^ヽ       ’        | |,/ノ    煽る行為は問題になって、
            ヽ'-/ヽ    ./~^'''^~"ヽ    / .|'/     罰金を取られるんだよ?
            '  | ヽ    i /~~~~~'''|    / | |     調子にのってんじゃないわよ!
              | |'ヽ,,  .ヽ    ./    /  | l   あんたがどれくらいプログラムに
              i | i,,~=,,, . ̄ ̄ ̄  ,,,=',/i ヽi |  精通しているか知らないけどねぇ、
           _ヽ,,-.., ̄ i~=,   ,,,,-" |   .| |  i  調子こいてんじゃねぇ〜よ。
        ,-^~~ /'~   ヽ,,-|  ~ ̄~~  .|,,  ヽ| /  そんな下らない煽りして、
       /'    |     | -,,      | ~ヽ. |/,,,,-----,,   あんたの人間としての価値を
       .i     ヽ    |l  ~^--,,,,,    ,,,, ~~'~     ~^^-,,,  下げたいわけ?
       .|      ヽ    .|i      i /"^            ~^=-,,, やってて惨めでしょ?
       ヽ   ,--=='ヽ   ヽ-,,                      ~=  批判ばっかで役に立たない、
       /  ./   'ヽ,,     ''';;,       _                そんな書き込みは要らないのよ。
       l ,,-''     i '      ^-,,  ,,,--~ ~~ヽ.              え〜と、ゴホン!!
        ヽ'  ヽ,   i|   /    ~=~      /   ,/           いっとくけど私は優れたプログラマじゃ
        ,-|   il    |l /           ,,-~  ,-~~^^=-,,,,       ないけどね、まぁ、つまりその、
       / i|   .l|    |i'     ,,,,,--_,,,,,,--~──-i /     ~^^=--,,  人生の先輩からのアドバイスって感じ?
458デフォルトの名無しさん:2001/04/10(火) 11:59
コピペ厨房逝って良し

166が最後って書いたのは、学校が始まるからだろ。厨房だもんな。
459デフォルトの名無しさん:2001/04/10(火) 12:15
学校はもう始まってるんじゃないの・・?
460デフォルトの名無しさん:2001/04/10(火) 13:08
つうかいくらルックスがいいとか、技能が上とか、妄想連呼しても
最後にアスカコピペで尻尾だしてるぜ(藁)

つーかお前の負けは最初にCでテトリスつくりてぇとか言った時点で
予定調和なの。わかりる?
461デフォルトの名無しさん:2001/04/10(火) 13:16
>>458-460
批判ばっかで役に立たないレス
462デフォルトの名無しさん:2001/04/10(火) 13:47
461==166
463254:2001/04/10(火) 14:38
あーあ。
テトリス、影ながら期待してたのに。
結局作らないのか。

なんかがっかり。
してしまった。
鬱だ。
464デフォルトの名無しさん:2001/04/10(火) 14:52
__int64を編集できる関数って、sprintfだけなんでしょうか?
465デフォルトの名無しさん:2001/04/10(火) 15:12
>つーかお前の負けは最初にCでテトリスつくりてぇとか言った時点で
>予定調和なの。わかりる?
批判ばっかで役に立たないレス認定。
466デフォルトの名無しさん:2001/04/10(火) 15:19
>>465==166
通常、批判するのは「役に立つ行為」とされています。
放っておけばマイナスなものを否定して、少なくともゼロにしようとするのは
「建設的な意見」です。
467デフォルトの名無しさん:2001/04/10(火) 15:39
>>464
数値を文字列に直せるってことかい?
一応 _i64toa なんてのもあるよ
とまじめな回答をしてみる、、、がsage
468デフォルトの名無しさん:2001/04/10(火) 15:42
>>466
ダメだこりゃ、ダメなことをする奴は馬鹿にしてやる。
という考えが建設的か・・・。
むしろ破壊的じゃないか?
469464:2001/04/10(火) 15:43
>>467
ありがとうございます。
470デフォルトの名無しさん:2001/04/10(火) 15:43
現に、煽っている奴は何が悪いのか、何が良いのか
なんて逝っていない。
ただあのページが悪い、あのページを紹介した奴は馬鹿、
へぼプログラマだと言っているに過ぎない。
誰もあのページを推奨してないのにね。
まっ、ヘボプログラマしかいないここじゃしょうがないか。
まっとうなプログラマなら、もっとちゃんとしたところで
意見交換しているだろうし。
471デフォルトの名無しさん:2001/04/10(火) 16:02
>>470
あなたが何を読んでいるのか解らない
批判している点は、
if
の後に {} を付けない事を当然だと言っている事であって、
(プログラムの表記法に、色々あるからね)
それ以上でも、それ以下でも無い。

166が「自分は凄いプロクラマーだ」とか言って、
書込みしている奴を馬鹿にしておきながら、
挙句の果てに、
もっと良いページ教えろ
だとかのたまう。

それを痛いと言っているだけに過ぎないのだよ。
472デフォルトの名無しさん:2001/04/10(火) 16:03
166が参考にさせたのは
switchだろ?他は関係ねーじゃん。
それを批判することで、166が馬鹿?
何言ってんだか。
473デフォルトの名無しさん:2001/04/10(火) 16:31
他は関係ないとは書いてないぞ。
一応初心者スレなんだから、視力の問題で気付くようなダメな点は
あらかじめ書いておくべき。そうでなければ貼るべきではない。
474デフォルトの名無しさん:2001/04/10(火) 16:33
>>468
いいえ。ダメな奴を放っておくと、分別の付かない人が感化されてダメになる可能性があります。
それを積極的に排除しようとするのは建設的な行為ですよ。
475デフォルトの名無しさん:2001/04/10(火) 17:20
166を擁護する奴は全員166だと思うが、何がまずいか教えてやるよ。

テトリスの作り方教えてとかいう奴が、結局の所
俺のルックスは良いとか、テクはすげぇとかいうのが、
「人として」おかしいだけなんだよ。

行動の仔細はともかく、俺は人として166が嫌だ。
どうだ?簡単だろ?まぁ166はおかしいと思わないから平気で
そういう事やるんだろうけどな。
476デフォルトの名無しさん:2001/04/10(火) 17:29

リス
477デフォルトの名無しさん:2001/04/10(火) 18:32
>>475
なんか解りやすい。
ついで、激しく同意

478デフォルトの名無しさん:2001/04/10(火) 19:28
「C言語でテトリス作れますか?」なんていう厨房丸出しの質問する奴が
他人の質問に答えるなんて思い上がりも甚だしいね。
勘違いもここまで来ると見事だよ。
479デフォルトの名無しさん:2001/04/10(火) 21:45
つーわけで166は氏ねや(藁)
480デフォルトの名無しさん:2001/04/10(火) 22:07
ちんこかゆい
481デフォルトの名無しさん:2001/04/10(火) 23:42
ついに荒らし始めた166!
482デフォルトの名無しさん:2001/04/11(水) 00:15
うざうざうざうざうざうざうざうざーーーーーーーー
おまえらつまんねえよ。もっと面白い事欠け・
483デフォルトの名無しさん:2001/04/11(水) 00:17
あじゃぱー
ぶるばきゅーん
484デフォルトの名無しさん:2001/04/11(水) 01:34
今は嵐が通り過ぎるのを待つしかないか。
485166(再):2001/04/11(水) 04:05
うるせ〜、俺はルックスが良いんだ!
経験も知識も技量もあんたらより上のはずだ!
どうだ、参ったか!?
参ったらもうこんなスレあげんなよ。
486デフォルトの名無しさん:2001/04/11(水) 04:30
もういいから気の済むまでやってくれ。
その哀れさが滑稽でいいよ。
C言語でテトリス作れるかどうかもわからん厨房の166クン(ゲラ
487166(再):2001/04/11(水) 04:35
実はもう出来ていました(^^*
488デフォルトの名無しさん:2001/04/11(水) 04:38
で、ブロックを回転させる関数は見つかったのか?(ププ
489166(再):2001/04/11(水) 05:02
ぷっ、ブロックを回転させる関数だって(プ
分かってねーのはあんたの方だって証明している
様なもんじゃん。墓穴掘ったなあんた>>488
490166(再):2001/04/11(水) 05:13
っつーか、ブロックを回転させる標準関数があったら教えてくれよ
m(_ _)m
491デフォルトの名無しさん:2001/04/11(水) 05:24
>>488が煽りだと気付かないカコワルさ!166マンセー!!
492デフォルトの名無しさん:2001/04/11(水) 05:31
リッチエディットのフォントのサイズ設定の方法教えて。
EM_SETCHARFORMATのCHARFORMAT構造体のyHeightメンバでサイズ設定するんだけど
単位が twip ってので良く分からん。
ピクセル単位で指定したいんだけどそういう場合はどうやって単位変換するんですか?
16ピクセルのフォントサイズにしたいんですけど。
やり方教えて。
493166(再):2001/04/11(水) 06:03

  , ´ ̄´ヽ`_
 ▲  ° °`ヽ  / ̄ ̄ ̄ ̄ ̄ ̄
 ■|     ●| < むにゅ!・・?
 ▼ノ-_ω__ ノ   \_____
    ノ━|
    /  |
   / | | |__
  _|__L_,)_)_,)
    γ´ ̄ ̄ ̄ ̄ ̄ ̄ ̄ヽ
    ( GOOD GRIEF!)
     ゝ________ノ
      ∩  〇
    /⌒ヽ o
    |    |      ll´|
    / -  (ヽ/ ⌒ ヽ || .|
   (     |   ̄)└' |
    / ̄| | ̄ ̄ `´ ̄ ̄ ̄ヽ
   /__| |________ヽ ,-^ ' -,   _, -- 、,,
   /   ∪          ヽ    >`^ '    ';., ; '' '
  /___________ヽ
  /                 ヽ
 /____________ヽ
    |               |
    | ̄ ̄ ̄ ̄ ̄ ̄ ̄ |
494デフォルトの名無しさん:2001/04/11(水) 06:19
春ですねぇ
495デフォルトの名無しさん:2001/04/11(水) 10:37
なんでこんな滓を大切に保護して育てようとしてるんだ?(・∀・)ジサクジエン?
もっと天然で面白い素材は他にいると思うんだが
496166:2001/04/11(水) 21:08
今まで皆さんすいませんでした。本当は僕は高校受験に失敗したんです
そのイライラでこのスレを荒らしてしまいました。

中学校の頃、ゲームデザイナーにあこがれてプログラムをかじり
始めたんですけど、僕のコンピュータはファミコンに繋ぐ奴だったので、
LINE文がなくてすごいみんなにヴァカにされたんです。

それでCをマスターしただとかjava知ってるとか言ってみたかったんです
最初は、Cとかjavaが使えるだけで英雄になれると思ってたんですが
(僕の周りはそうなんですけど)ここのスレのみなさんは優秀みたいで
本当に僕のレベルが低いんだなと、いまでは反省しています。

反省してますので、テトリスの遊び方を教えてください。
497デフォルトの名無しさん:2001/04/11(水) 21:24
みんな、ヨモギもちもちっていう日糧の菓子パンうまいぜ。おらぁこれ一発でハマってしまったあ。なんともいえないヨモギのかおりと粒アンがベストマッチしてる。
498デフォルトの名無しさん:2001/04/11(水) 21:33
ここはマイクロソフト・ビジュアルC++のスレッド
ですよ!!!!!
499デフォルトの名無しさん:2001/04/11(水) 22:45
そうだったのか!!!!
500166(再):2001/04/12(木) 02:14
>>496
ネタ&私に対する侮辱としては十分過ぎるほどだ。
あとで何が起こっても知らないよ。
501デフォルトの名無しさん:2001/04/12(木) 03:16
俺は200以降ご無沙汰だったんだが、
166は面白いやつだな。っていううか
単独だったらつくづくオメデタイ奴だ。
久しぶりに笑わせてもらったよ。
また しばらくしたら見てやるから俺を
笑わせてくれ。プログラムするより
エンターテイメントした方が性に合って
んじゃねぇの。
502166(再):2001/04/12(木) 03:25
>>501
煽りとしては申し分ない。
だが、あとで何が起こっても知らないよ。
あんたの身にね・・・。
503デフォルトの名無しさん:2001/04/12(木) 03:55
サブルーチンを作るのにgotoを使うのはやはり逝ってよしなんでしょうか?
つーかgotoって何のためにあるの? 使った瞬間に厨房呼ばわりされるんだけど。
504デフォルトの名無しさん:2001/04/12(木) 05:18
501はパカ
505166(再):2001/04/12(木) 05:27
くっくっく、そういうことか・・・。
いい気になって俺を煽って、楽しかったかい?
もう手遅れだよ・・・。
506>503:2001/04/12(木) 05:43
gotoは普通使わないけど、どうしてもっていうなら別に構わないよ。
でもそのコードを他人に公開したりするのは避けてね。メンテナンスが困難だから。
プリプロセッサ的なツール(inlineやcfrontなど)はgotoを出力する場合が
あるけど、そういうのは例外。出力結果を人間が見るわけじゃないからね。
gotoの話はFAQとか見た方が良いかも。
507:2001/04/12(木) 05:43
>>503
使い方の問題だと思う。
昔、gotoを使わないことにこだわってた時期があったんだけど、
gotoを使った方がソースが見やすいこともあるってことに気が付いてから
気にならなくなったよ。

こんな感じ

bool func()
{
bool result = false;
FILE* fp1 = NULL;
FILE* fp2 = NULL;
char* buf1 = NULL;
char* buf2 = NULL;

if ( (fp1=fopen(path1, "r") == NULL )
goto error;
if ( (fp2=fopen(path2, "r") == NULL )
goto error;
if ( (buf1 = new char[128]) == NULL )
goto error;
if ( (buf2 = new char[128]) == NULL )
goto error;

result = true;
error:
if ( fp1 ) fclose( fp1 );
if ( fp2 ) fclose( fp2 );
if ( buf1 ) delete buf1;
if ( buf2 ) delete buf2;
return result;
}

goto 使わないで書くとエラー処理が複雑になりそうでしょ。
似たようなことがどっかで書かれてたらゴメン。
508503>507:2001/04/12(木) 05:52
その話題やめといたほうがいいよ。変な方向に話が行きそうだし。
初心者に例外処理なんて言ってもわかんないんだから。
503の様な初心者はgoto禁止です。
509508:2001/04/12(木) 05:53
506>507でした。utu.
510デフォルトの名無しさん:2001/04/12(木) 05:55
例外使えよ〜〜〜〜
gotoいらんぞ
511デフォルトの名無しさん:2001/04/12(木) 08:52
166こいつ最後訴えるとか面白い事言い出すんじゃねぇの(藁)
まぁせいぜい高い金払って裁判でも起こせや(藁)

そんなんで引っかかるような事最初からしないしな(藁)
つーか、166とかいう詳細不明なコテハンで損なう名誉なんかねぇよ(藁)

まぁ厨房だからわかんねーか。
だからテトリスも作れないんだけどな(藁)
つーか悲惨な166のいるスレ認定だな。こりゃ(藁)

で、166よ。どうするつもりなんだ?(藁)
なんぼでもかかってこいや(藁)
512デフォルトの名無しさん:2001/04/12(木) 09:16
たぶん、本物の166はもうここには居ませんよ。
残るは、彼の意志に感化された彼の亡霊だけ...。
何が起こるかは、たぶんディスプレーから飛び出して、
取り憑くとかするんでしょう。(w
513デフォルトの名無しさん:2001/04/12(木) 09:54
>>511
あんた、テトリスつくれるか?
作れないならでけー口叩くなよ。
裏の世界は怖いぜ・・・。
514デフォルトの名無しさん:2001/04/12(木) 10:02
テトリス?わらわせんなよ。
もっとすごいの作れるって。

裏の世界か・・・・・・
俺はその世界の住人なんだよ(藁)
ハクとかはしないけどな。
515デフォルトの名無しさん:2001/04/12(木) 10:27
そのあんたがもっとすごいと思っているものが、
テトリス以下だったら笑ってあげるよ。
ハクとかはしないけど裏の世界の住人?
ただのワレザーだろ?
516デフォルトの名無しさん:2001/04/12(木) 10:41
>>514
アウトロー板住民が混ざっているな
>ハクとかはしないけどな。
517デフォルトの名無しさん:2001/04/12(木) 10:48
>>515
ワレズを裏と思ってる厨房発見!晒し上げます!
518デフォルトの名無しさん:2001/04/12(木) 10:52
ほぉ、それじゃワレズは裏じゃないのか?
表で堂々とやれよ。
それで告発されてる奴、結構いるみたいだよ。
2ちゃんでもワレモノを扱っている掲示板を紹介されて、
潰れたサイトをいくつか見かけたことがある。
ワレズを裏だと思わない厨房はあんただ。
皿仕上げだなこりゃ。
519デフォルトの名無しさん:2001/04/12(木) 10:53
>ワレズを裏と思ってる厨房発見
っていうか、これってちょ〜〜問題発言じゃん。
520デフォルトの名無しさん:2001/04/12(木) 11:11
>>518
ワレズは犯罪だが、あんな低レベルな物を「裏」っていうな。
犯罪って言えばいいだろ。程度低いなぁ。
521デフォルトの名無しさん:2001/04/12(木) 11:17
>>520
では、その審議を論議させて頂きます。
522デフォルトの名無しさん:2001/04/12(木) 11:24
なんだよ「裏の住人」って、裏通りにでも住んでるの?
読んでるコッチが恥ずかしいよ。
523デフォルトの名無しさん:2001/04/12(木) 11:37
俺はお前の方が恥ずかしいよ。よくいきてれるな。市ね
524デフォルトの名無しさん:2001/04/12(木) 11:46
>よくいきてれるな。市ね
ろくな日本語を使わないねぇ。恥ずかしい。
ワレズが裏じゃないって言いきったあんたの負け。
犯罪だぁ?当たり前じゃん。裏の世界は犯罪が
絡んでるから裏って言うんだよ。
525デフォルトの名無しさん:2001/04/12(木) 11:50
ぉぃぉぃ166必死だなぁ(藁)

まぁ別に負けでもいいよ。お前のレベル低いのはかわんねーし(藁)
526デフォルトの名無しさん:2001/04/12(木) 11:52
でた!「裏の世界」

あんたらワイてんの?
527デフォルトの名無しさん:2001/04/12(木) 11:59
裏の世界の住人はやぱりガウンに葉巻にブランデーですか?
膝の上にはペルシャ猫ですか?

おもしろーい。
528デフォルトの名無しさん:2001/04/12(木) 12:00
おもろーい
529デフォルトの名無しさん:2001/04/12(木) 12:02
都合の悪いことはすべて166のせいにするあんた、
あんたこそ低レベルだね。いつまでも166がいると
でも思った?
530デフォルトの名無しさん:2001/04/12(木) 12:11
>>529

ぼくも、うらのじゅうにんになれますか?

P.N.ふうせんおじさんのむすこ エスキモー(5歳)
531デフォルトの名無しさん:2001/04/12(木) 13:01
166がとぼけてるぞ(藁)
532デフォルトの名無しさん:2001/04/12(木) 13:08
>>531
分かっていないのに、分かったフリしている
あんたが見苦しい。負けを認めろ。
じゃないと恥さらしになるだけだぞ。
533デフォルトの名無しさん:2001/04/12(木) 13:08
>>529
>いつまでも166がいるとでも思った?

166はいつもみんなのこころのなかにいます。
534デフォルトの名無しさん:2001/04/12(木) 13:19
裏の世界の住人は怖いんだぞ。
違法コピーもやっちゃうぞ。すごいぞ。

裏の世界の住人は偉いんだぞ。
誰よりもレベルが高いんだぞ。とにかく高いんだぞ。
535デフォルトの名無しさん:2001/04/12(木) 13:20
裏の世界の住人は強いんだぞ。
負けても負けないんだぞ。無敵だぞ。
536デフォルトの名無しさん:2001/04/12(木) 13:21
>>532
「何を」わかったふりしてるって?
「負け」って何?

166必死だなぁ(藁)
最後って書いたくせにどうなってんの?(藁)
537デフォルトの名無しさん:2001/04/12(木) 13:30
遊ばれてるのー分からないなんて、かわいそうだわー♪
538デフォルトの名無しさん:2001/04/12(木) 13:36
さんねんめ〜のうわきぐらい、おおめにみろよ♪
539デフォルトの名無しさん:2001/04/12(木) 13:40
>>537
歌詞が違うぞ

晒し上げ
540ホントだ間違ってるよ:2001/04/12(木) 13:47
遊ばれてるのー分からないなんて、かわいそうだよー♪
541デフォルトの名無しさん:2001/04/12(木) 15:05
166晒し上げ(藁)
542デフォルトの名無しさん:2001/04/12(木) 15:12
514は裏ビデオに出て掘られたってことだろ?
543:2001/04/12(木) 15:28
ネット上で勉強できるいいサイトありますか?おしえてください。
C++かJavaでもいい。
544デフォルトの名無しさん:2001/04/12(木) 15:59
ネット上で開かれてる講座とかは独りよがりで有害なのが多いからあてにしない方がいい。
本でも同じと言えば同じだが、「この本はダメ」という情報はあちこちにあるので
それらを参考にしてダメじゃない本を買ってきた方がいい。
545デフォルトの名無しさん:2001/04/12(木) 18:45
>>543
ttp://www.kumei.ne.jp/c_lang/
ttp://www1.kcn.ne.jp/~robe/cpphtml/index.html
ttp://hp.vector.co.jp/authors/VA000124/index.htm
C++のみだが参考にどうぞ。
Java関係はあまり良いものが無かった。
546( ´D`):2001/04/12(木) 18:51
Cでsocketとか使ってメール受信プログラムを作ろうと思うんですが、
参考資料が少なくて困っています。いいサンプルか解説ページあったら教えてくらさい
547デフォルトの名無しさん:2001/04/12(木) 19:07
548デフォルトの名無しさん:2001/04/12(木) 19:18
>>544 こーいうところのことか?
ttp://park.ruru.ne.jp/ando/work/who/

つーか俺ここのファンなんだが(笑)
549デフォルトの名無しさん:2001/04/12(木) 21:01
for(;flag;){...}と
while(flag){...}の違いについて教えてください。
550デフォルトの名無しさん:2001/04/12(木) 22:12
for(;flag;){...}はカス。
一応どっちも同じですけど
551デフォルトの名無しさん :2001/04/12(木) 22:35
GetDCから返されるDCハンドルでは
クライアント領域をクリッピング矩形にする、
BeginPaintから返されるDCハンドルでは
クライアント領域を有効にする、
と書いてあるのですが、クリッピング矩形にする、
有効にするの違いがわかりません。
552デフォルトの名無しさん:2001/04/12(木) 22:45
ダイアログベースにリッチエディット貼り付けたらコンパイル出来ない
んだけど、なんで?
553SAGE:2001/04/12(木) 23:16
AppWizardの時点でOLEだったかActiveXだったかをONに
しとかないとダメだった気がする。>>552
554デフォルトの名無しさん:2001/04/12(木) 23:32
SYSTEMTIME同士の比較をしたいんですが、どうすればいいでしょう。
APIだけでお願いします。
555デフォルトの名無しさん:2001/04/12(木) 23:47
>554

MSDNに書いてあるけど、
SYSTEMTIME型->FILETIME型->LARGE_INTEGER型って変換して、64bit同士で演算する。
556デフォルトの名無しさん:2001/04/13(金) 00:20
>551

GetDC()はクライアント領域全体へ描画の準備をする。
BeginPaint()は無効領域への描画を準備して、無効領域を有効化する。
無効領域の意味を知らないと、わけわかんないだろうけど。

描画について知りたければ、MSDNの関数リファレンスを見てても、勉強にならないよ。
Charles Petzoldの「プログラミングWindows」を読んだ方がいい。

557デフォルトの名無しさん:2001/04/13(金) 00:59
漏れ描画はほとんどGetDCで描いているけど変かな。
558デフォルトの名無しさん:2001/04/13(金) 02:19
>>555
FILETIME型からLARGE_INTEGER型への変換方法がわからんのですけど、
今回のはそんなに厳密なオーダは要求されてないので、単純に
time_tからdifftimeというのを使ってみることにします。
とりあえず、ありがとうです。
559デフォルトの名無しさん:2001/04/13(金) 02:37
uy
560デフォルトの名無しさん:2001/04/13(金) 02:45
既出だったら、すみません。
これこれこういう関数が必要だというときに、どうやったら目的の
関数を探すことができますか?
例えばあるcharが、空白か文字かを見分けるときには、
isgraph()等を使うんですけれども、事前にこのような関数があることを
知らなかった場合、どうやったらその目的の関数(例えばisagraph())を、
探すことができるんでしょうか?
MSDNのcdromで検索ですか?それとも何かこのための本でもあるんでしょうか?
お願いします。
561デフォルトの名無しさん:2001/04/13(金) 04:33
>>560
自分で関数作るのも1つの手段だよ。
562デフォルトの名無しさん:2001/04/13(金) 04:45
>>560
せめてANSIで規定されてる分くらいはどういう類のライブラリがあるか覚えとくもんじゃないか。
うろ覚えでも0から探しまわるよりはるかにまし。
563デフォルトの名無しさん:2001/04/13(金) 04:50
他力本願なのがCプログラマ
564デフォルトの名無しさん:2001/04/13(金) 06:42
>>560
たいていのマニュアルは機能別索引もあるから
そこらへんから探してくれ
合うものが無かったら適当に作ってくれ
565デフォルトの名無しさん :2001/04/13(金) 06:48
ちょっと素朴な疑問。
VC++の5.0と6.0って何か変わってるところはあるのですか?
566166:2001/04/13(金) 09:01
はやくテトリスのソース出せや
567名無しさん:2001/04/13(金) 10:59
VC6でこれは便利だという
ショートカットやTipsとかってありますか?

検索したい文字列を選択して、Ctrl+Fで
自動的にキーワードに登録されて
入力する手間が省けます。
568166:2001/04/13(金) 13:34
テトリ
569166に加勢:2001/04/13(金) 16:02
テ…ト…
570166応援団:2001/04/13(金) 16:34
かゆ..うま...
571166探索隊:2001/04/13(金) 18:45

□□
  □
  □
572166応援団:2001/04/13(金) 20:22
□■■
□□■
 □■
 □
573166:2001/04/13(金) 22:24
574デフォルトの名無しさん:2001/04/13(金) 22:29
相変わらず166はネタにされてるのか。
煽っている奴が虚しいね・・・。
575>568-573:2001/04/13(金) 22:35
死ね
576565:2001/04/13(金) 23:11
う〜……誰か教えてください…。
577デフォルトの名無しさん:2001/04/13(金) 23:26
>>574
必死な166(藁)
578デフォルトの名無しさん:2001/04/13(金) 23:56
>>576
変数など補完してくれるようになった。
よりNT寄りになった。
ここはもうネタスレになった。
579デフォルトの名無しさん:2001/04/13(金) 23:58
>>565
色々違う。
詳しくはメーカーのサイトでも行って調べろ。
なんで今頃5.0?ワレザーか?
580デフォルトの名無しさん:2001/04/14(土) 00:12
>>577
必死な166を煽ってる奴(藁)
相手にされてないからってひがむなよ(藁)
581デフォルトの名無しさん:2001/04/14(土) 00:28
Cの単語帳みたいなページありませんか?
たとえば、
\n ... 改行
みたいな感じ。
582デフォルトの名無しさん:2001/04/14(土) 00:33
>>581
C言語辞典という本ならあるけど
Webページがいいなら検索しろ
583565:2001/04/14(土) 02:14
>>578-579
ありがとうございます。
ちなみにワレザーじゃないですよ。
CGIやってたからVCは5.0以来放置してるだけです。
584>>565:2001/04/14(土) 03:00
警告が増えた。
グローバルオプティマイザのバグが増えた。
585デフォルトの名無しさん:2001/04/14(土) 09:26
VC始めてようやくメッセージループとかの仕組みが
わかってきたのですが、基本的にファイル入出力とか
ウインドウへの描画とか、そういったものはMFCを
使った方が良いのでしょうか?
あと、MFCってVCで組む際にはMFC40.DLLとか
要求されないですよね??
586 :2001/04/14(土) 09:34
これは、いったい何が駄目なのでしょう???

void CTest4View::Ellipser(CDC *hDC)
{
CPen MyPen,*OLD_Pen;
MyPen.CreatePen (PS_SOLID,10,RGB(0,0,256));

OLD_Pen=hDC->SelectObject(&MyPen);
hDC->Rectangle (0,0,300,300);
hDC->SelectObject (OLD_Pen);
}
587586:2001/04/14(土) 09:51
あ、できた。
コピペした文字コードが合わなかったらしい。そんなことが起こるのかっ
588デフォルトの名無しさん:2001/04/14(土) 10:03
>>585
言ってる意味がわからんが、MFC使えばMFCxx.DLL要求されるぞ。
スタティックリンクすれば別だけどな
589デフォルトの名無しさん:2001/04/14(土) 10:39
デバイスコンテキストの取り方どうするんでしたっけ?
もしくは、そういう基本的な事が一覧になってるページあったら
教えてくださいです。
590589:2001/04/14(土) 10:46
やっとみつけた。疲れた

CDC* pDC = GetDC();
591デフォルトの名無しさん:2001/04/14(土) 18:51
で、結局166は口だけだったって事?
592589:2001/04/14(土) 18:55
すみません、整数配列の受け渡しをしたいです。教えてください
void Kansu(int **)

int A[2][2];
Kansu(&A);

Kansu(int **AA){

}

じゃだめですね。うーむむむ
593この業界から逃げ出した男:2001/04/14(土) 19:04
>>592
僕もよく知らないのですが。

Kan( int * A[2] ){}
とかなら出来るかも。

本当は、

int A[2*2];
Kan( int * A , int Len ){ A[Len*Y+X] }
の方がいいかも。
594589:2001/04/14(土) 19:14
>>593
それだと1次元ですよね、少なくとも2次元欲しいんです。
おしえてください
595589:2001/04/14(土) 19:15
>>593
あ、下の方は1次元を2次元に直してるのか。
それがいいのかなぁ。CArrayっていうのもあるみたいだけど
596デフォルトの名無しさん:2001/04/14(土) 19:28
>>592
void Kansu(int (*A)[2][2])

int A[2][2];

Kansu(&A);

Kansu(int (*A)[2][2]){

}

でも構造体にした方がいいぞ。
597589:2001/04/14(土) 20:07
>>596 ありがとうございます。構造体もやってみます。
598589:2001/04/14(土) 20:18
Viewクラスが消えてしまいました。。。。
これはいったいどういう現象なのでしょう。いったい何処へ。。。。
599589:2001/04/14(土) 20:21
なぜかグローバルのtheAppになっとる、なんじゃこりゃぁぁ
600この業界から逃げ出した男:2001/04/14(土) 20:29
>>594
いや、
Kan( int * A[2] ){
 A[1][0] = 3;
}
と、出来るはずだよ。
問題点は、引数の宣言が
int A[2][10];
とか、左側の数が決まってる事です。

昔の C コンパイラーだと通らないかも。

たしかに、構造体を使った方がいいですね。
601デフォルトの名無しさん:2001/04/14(土) 20:40
>>600
いや
Kan(int A[2}[2})
{
 A[1][0]=3;
}

Kan (A);

で逝けないか?
602デフォルトの名無しさん:2001/04/14(土) 21:12
>600
ポインタの場合配列はあろうがなかろうが同じだから
Kan(int *A)
じゃだめなのか?
多次元配列って、Cには無いはずだ。
603デフォルトの名無しさん:2001/04/14(土) 21:43
>多次元配列って、Cには無いはずだ。

何寝ぼけてるんだ?
604602じゃないけど:2001/04/14(土) 21:47
>>603
厳密な意味でいう多次元配列はCにはない。
「配列の配列」をCでは多次元配列と呼び習わしているだけ。
605デフォルトの名無しさん:2001/04/14(土) 21:51
そうなのか。
606デフォルトの名無しさん:2001/04/14(土) 21:56
厳密な意味の多次元配列の定義を述べよ。
607この業界から逃げ出した男:2001/04/14(土) 21:57
>>601
それって、実体のコピーを渡してないですか?
いや、コピー渡して参照するだけならそれで良いんですが。

そもそも、俺が間違っていた?
608デフォルトの名無しさん:2001/04/14(土) 22:01
>>607
渡してない。1次元の時と一緒
609デフォルトの名無しさん:2001/04/14(土) 22:03
Cに配列の値渡しは無いよ。
値渡ししたい時は、構造体に入れるしか無い。
610デフォルトの名無しさん:2001/04/14(土) 22:05
VC++初心者じゃなくて、C初心者スレになってるな・・・
611デフォルトの名無しさん:2001/04/14(土) 22:27
>>610
まぁ人間初心者スレになるよりは(w
612デフォルトの名無しさん:2001/04/15(日) 00:45
>610
レス付けてる方も初心者かも。
何人かは嘘を教えてるぞ。

613デフォルトの名無しさん:2001/04/15(日) 17:55
ビットマップリソースの一部を切り取ったCBitmapオブジェクトを作るには
どうしたらいいんですか?
614613:2001/04/15(日) 17:57
age忘れた
615この業界から逃げ出した男:2001/04/15(日) 18:08
>>609
僕が書いた奴は、一応 ポインターだから、
実体を渡したからそれを書き換えられるはず
とか、まあ、どうでもいいか。

sage
616デフォルトの名無しさん:2001/04/15(日) 23:43
>>615
ポインター渡し = 参照渡し
実体渡し = 値渡し

617デフォルトの名無しさん:2001/04/16(月) 00:39
>>616
ポインタで実体にアクセス出来るから(それに対するプロテクションも
ないので:まぁこれは実装系の話か)ポインタ渡し=実体渡しでいいだろ

実体を渡さないのは、実体をまるまるコピーして渡すやり方
(ちゃんとしたオブジェクト指向言語ならそうするんだが)

というか、コピーして渡したら、変更が反映されないから、
事実上の参照渡し(write protectっツー意味での)じゃない?
618>617:2001/04/16(月) 00:42
もっと短く書け。
関数の引数は値渡し
意味的には参照渡し
619617:2001/04/16(月) 03:28
>>618
>関数の引数は値渡し
これって処理系によるんじゃない?
620>619:2001/04/16(月) 03:34
ここはなんのスレだ?
621デフォルトの名無しさん:2001/04/16(月) 06:40
166を晒すスレ
622デフォルトの名無しさん:2001/04/16(月) 06:53
>>621
お前、裏ニュースで「っつーか」って名乗ってたやつだろ?
623デフォルトの名無しさん:2001/04/16(月) 08:44
>>620
VC++のスレだからって、適当な事を人に教えていいのとは
わけが違うだろ。君の会社ではそうかもしらんけど。

つーか、君みたいな教え方なら、教えてないのと同じじゃない?
教えるってのは他人に分かるように正しい事を伝える事だぜ?
って思うけど、どうよ?
624デフォルトの名無しさん:2001/04/16(月) 09:24
Cでは、実体へのポインタを渡す事を参照渡しという。
(C++にはそれとは別に参照型がある。内部的にはやってる事は一緒)
実体のコピーを渡す事を値渡しという。
実体を書き換えられるのは、参照渡し。

実体渡しは、普通は値渡しの事を言う。
コピーだから実体じゃないじゃん、って言う話もあるが、
呼び出し側では実体を指定して渡すから、実体渡しと言うのだろう。
紛らわしいから、あまり使わない方がいいかもしれない。
625デフォルトの名無しさん:2001/04/16(月) 09:37
おっと使わない方がいいってのは「実体渡し」という言葉をね。
あと、あくまでもC/C++での日本語表記の話。
626あほ:2001/04/16(月) 10:59
将棋をつくろうと思って
子windowに将棋盤を書こうと思い
Rectangle()を使っているのですが、
書けません。
メインwindowには描画できるのですが・・・
どうやったら描けるのでしょうか?

自分としてはhdc,hwnd,creatwindow()の辺り
の知識がほとんどないので、
その辺に問題があるのかなとおもっていますが・・・
627デフォルトの名無しさん:2001/04/16(月) 11:20
基本情報処理に出た問題をそのままコピーして、VC++でビルドしたのですが、出来ません。
どうしてでしょう?
void MoveTo(int sx,int sy);
void LineTo(int ex,int,ey);
int CmpLine(int xs,int ys,int xe,int ye,int len);

void DrawCurve(int sx, int,sy,int x1,int y1,int x2,int y2,int ex,int ey,int len)
{
int p1x,p1y,p2x,p2y,p3x,p3y;
int p4x,p4y,p5x,p5y,p6x,p6y;

if(CmpLine(sx,sy,x1,y1,len)&&
CmpLine(x1,y1,x2,y2,len)&&
CmpLine(x2,y2,ex,ey,len)){
MoveTo(sx,sy);LineTo(x1,y1);
LineTo(x2,y2);LineTo(ex,ey);
return;
}
p1x=sx+x1)/2;p1y=(sy+y1)/2;
p2x=(x1+x2)/2;p2y=(y1+y2)/2;
p3x=(x2+ex)/2;p3y=(y2+ey)/2;
p4x=(p1x+p2x)/2;p4y=(p1y+p2y)/2;
p5x=(p2x+p3x)/2;p5y=(p2y+p3y)/2;
p6x=(p4x+p5x)/2;p6y=(p4y+p5y)/2;

DrawCurve(sx,sy,p1x,p1y,p4x,p4y,p6x,p6y,len);
DrawCurve(p6x,p6y,p5x,p5y,p3x,3y,ex,ey,len);
return;
}
int CmpLine(int xs,int ys,int xe, int ye,int len)
{
int len1=xe-xs;
int len2=ye-ys;

if(len1<0)len1=-len1;
if(len2<0)len2=-len2;

if((len1<len)&&(len2<len))
return 1;
return 0;
}
628デフォルトの名無しさん:2001/04/16(月) 11:43
WM_PAINTの外から描こうとしてるとか。
UpdateWindow()してないとか。
629デフォルトの名無しさん:2001/04/16(月) 11:45
>>627
せめて何が出来ねえとかこんなエラーが出るとか書けヤ
630627:2001/04/16(月) 13:30
.c(3) : error C2081: 'ey' : 仮引数リストで構文が不正です。
.c(6) : error C2081: 'sy' : 仮引数リストで構文が不正です。
.c(7) : error C2055: 関数定義内で仮引数リスト以外が使われていました。
.c(14) : error C2198: 'LineTo' : 実引数が少なすぎます。
.c(15) : error C2198: 'LineTo' : 実引数が少なすぎます。
.c(15) : error C2198: 'LineTo' : 実引数が少なすぎます。
.c(18) : error C2059: 構文エラー : ')'
.c(25) : error C2198: 'DrawCurve' : 実引数が少なすぎます。
.c(26) : error C2059: 構文エラー : 'サフィックスが無効です。'
.c(26) : error C2146: 構文エラー : ')' が、識別子 'y' の前に必要です。
.c(26) : error C2198: 'DrawCurve' : 実引数が少なすぎます。
.c(26) : error C2059: 構文エラー : ')'
cl.exe の実行エラー

と言うエラーです。
631デフォルトの名無しさん:2001/04/16(月) 13:41
>>630
void MoveTo(int sx,int sy);
void LineTo(int ex,int,ey);←int と ey の間に','が入ってる
int CmpLine(int xs,int ys,int xe,int ye,int len);

void DrawCurve(int sx, int,sy,int x1,int y1,int x2,int y2,int ex,int ey,int len)
これも同じ。int と sy の間に','が入ってる。
(中略)
p1x=sx+x1)/2;p1y=(sy+y1)/2;←sx の前の'('が抜けてる。

この3つを直してビルドし直してみ。
632627:2001/04/16(月) 13:53
>>631 さん解答ありがとうございます。
エラーの数が4つになりました。
.c(26) : error C2059: 構文エラー : 'サフィックスが無効です。'
.c(26) : error C2146: 構文エラー : ')' が、識別子 'y' の前に必要です。
.c(26) : error C2198: 'DrawCurve' : 実引数が少なすぎます。
.c(26) : error C2059: 構文エラー : ')'
633631:2001/04/16(月) 13:58
まだエラーが残ってたか…。

DrawCurve(p6x,p6y,p5x,p5y,p3x,3y,ex,ey,len);
ここの6番目の引数 3y っておかしいよな…。
p3y ではないかと思われ
634627:2001/04/16(月) 14:58
.obj : error LNK2001: 外部シンボル "_LineTo" は未解決です
.obj : error LNK2001: 外部シンボル "_MoveTo" は未解決です
LIBCD.lib(crt0.obj) : error LNK2001: 外部シンボル "_main" は未解決です
Debug/基本情報処理テスト.exe : fatal error LNK1120: 外部参照 3 が未解決です。
link.exe の実行エラー

と出ました。うーん、よろしくお願いします。
635デフォルトの名無しさん:2001/04/16(月) 14:58
627,630,632はVC++のコンパイラ自体からの投稿だったりして。
636デフォルトの名無しさん:2001/04/16(月) 15:00
で、631はどこかのマシンの知識データベースエンジンだったりして。
637デフォルトの名無しさん:2001/04/16(月) 15:14
とりあえず、Win32になってから
MoveTo -> MoveToEx に変ってるはずだよ。
たしか。

Win32APIならね。
本を買って調べましょう。
>> 635
同意。
コンパイラに3カノッサ
638デフォルトの名無しさん:2001/04/16(月) 15:46
>>634
cl xxx.cpp gdi32.lib /link /subsystem:windows
どうだ?
639デフォルトの名無しさん:2001/04/16(月) 18:31
WindowsNTのソースを
WindowsCEで使えるようにしています。
そこで
char pBuff[100];
lstrlen( pBuff )
が'wcslen' : cannot convert parameter 1 from 'char [100]' to 'const unsigned short *'
というエラーで引っかかってきます。
どのように対処すればいいのか、教えてください。
640デフォルトの名無しさん:2001/04/16(月) 18:51
>>639
short pBuff[100];
lstrlen(pBuff);
641デフォルトの名無しさん:2001/04/16(月) 18:52
unsigned short pBuff[100];
だw
642デフォルトの名無しさん:2001/04/16(月) 18:52
TCHAR pBuff[100];
643639:2001/04/16(月) 19:07
>>640
>>641
>>642
ありがとうございました。
unsigned short pBuff[100]または
Tchar pBuff[100]
だと
他の所で
'sprintf' : cannot convert parameter 1 from 'unsigned short [100]' to 'char *'
となってしまいます。
これは、どうすればいいですか?
こういう場合は、
該当する所を
char pBuff[100];
lstrlen((unsigned short)pBuff);
って
こまめに型をあわせるしかないのですか?
644639:2001/04/16(月) 19:09
>>643
間違えた。
lstrlen((unsigned short*)pBuff);
でした。
645てんさいぷろぐらむぁ(偽):2001/04/16(月) 19:39
>>639
それは多分UNICODE関係で引っかかってるんじゃないの?
WinCEはUNICODEしかないんだよね、たしか?
だからTCHAR(wchar_t)を使うのが一番まともだと思われ
つーかその辺あんまり詳しくないので話半分で聞いてね(^^;)

lstrlenの部分とかは勝手に#ifdefとかでそれ用のに切り替わるはずなので
大丈夫なはず。
ただし、元のソースが「文字数」を必要としているのか「バイト数」を
必要としているのかを見極める必要があると思われ

つーか言ってることわかる?
646デフォルトの名無しさん:2001/04/16(月) 20:04
MSDNライブラリの汎用テキストのマッピングのあたりを読むと良かろう。

http://www.microsoft.com/japan/developer/library/vccore/_crt_generic.2d.text_mappings.htm

でもlstrlenだけでエラーが出るなら、
単にstrlenに替えりゃ済むのかもな。
その辺はpBuff[]を何に使うのかによる。
647613:2001/04/16(月) 21:19
誰か教えてください…
648デフォルトの名無しさん:2001/04/16(月) 23:08
>>643

>'sprintf' : cannot convert parameter 1 from 'unsigned short [100]' to 'char *'
>となってしまいます。
>これは、どうすればいいですか?

特に不具合がなければwsprintfを使用すればよいかと。
649639:2001/04/17(火) 10:30
>>648
ありがとうございました。
また質問ですが、
DWORD drive ; //検出ドライブ
drive = GetLogicalDrives();
を使用すると、
error C2065: 'GetLogicalDrives' : undeclared identifier
となってしまうのですが、
どのように対処すべき名のでしょう?
650デフォルトの名無しさん:2001/04/17(火) 13:50
>>649
イー加減ネタのような気がしてきたよ。
#include <windows.h>
やってみろ
651639:2001/04/17(火) 14:00
>>650
ネタじゃないです。
本当に困ってます。
#include <windows.h>
したけど変わりません。
GetPrivateProfileIntとかも同じようなエラーが帰ってきます。
他に思い付く事があったらお願いします。
652デフォルトの名無しさん:2001/04/17(火) 15:04
>>651
winbase.h だよ。
ちゃんとMSDNくらい見てくれ…。
653デフォルトの名無しさん:2001/04/17(火) 15:20
>>651
つーか、WinCE には
GetLogicalDrives や GetPrivateProfileInt というAPIが無いんでは?
WinNT用のソースをそのままWinCE用にビルドするのが間違い
654デフォルトの名無しさん:2001/04/17(火) 16:58
>>653
PrivateProfile
って、確かになかったと思う。
655デフォルトの名無しさん:2001/04/17(火) 17:53
>>652
winbase.hはwindows.hインクルードしたときにまとめてincludeされるぞ
656VCわからん:2001/04/17(火) 22:05
ずっと unix で開発していましたが、VC++ の仕事をしています。
ASP(Active Server Pages)から呼ばれる
COMコンポーネント(DLLファイル)を
作っているのですが、ASPに文字列を返したいのです。

そこで

STDMETHODIMP CHoge::GetHoge(BSTR in1,BSTR *retCode)
{
 char* strTest="test";

 *retCode=strcpy(*retCode, strTest);
 return S_OK;
}

こんなことをやると、コンパイル(ビルド)時に
1番目の引数を 'unsigned short *' から 'char *' に変換できません。
と言われます。
COMコンポーネントで文字列を返すようにするには
どうしたらいいのでしょうか?

あとBSTR型って文字列を入れるもの
(charと同じようなものだと思っている)
と思っているが、どうしてコンパイルエラー時に
'unsigned short *'が出てくるの?

Windows の世界はなかなかわからないのですが、ここで
つまづいているのでどうか教えてください。
657デフォルトの名無しさん:2001/04/17(火) 22:20
iniファイルの値を読み取るAPI、GetPrivateProfileString()を使って、
あるファイルのパスを取得したいのですが、その読み取る値に\マークが
入っているとそこまでしか取れないみたいなんです。
これってこのAPIの仕様なんでしょうか?
iniファイルに\マークを使ってる例なんて山ほどあるのに。
ちなみに""でくくってみたり、\\にしたりしてやってみましたがだめでした。
658>657:2001/04/17(火) 22:23
別の問題な気がする。自分の書いたソース読み直せ。
659657:2001/04/17(火) 22:43
解決しました。簡単に言うと、バッファのサイズが違っていたということです。
APIを関数でラップしてるのですが、そいつのI/Fがchar*で、
APIにわたすサイズをsizeof(char*)でやってたのでいつまでたっても
4文字分しかとれなかったというわけです。
660デフォルトの名無しさん:2001/04/17(火) 22:57
>>656
それはBSTRがchar*じゃ無いからだよ。
661:2001/04/17(火) 22:57
>>656
BSTRってUnicodeを入れなきゃなんないから、
VC++のcharでは足りない。ので、unsigned short。

扱いは、ATL の CComBSTR のソースとかを参考にするよろし。
662656:2001/04/17(火) 23:13
>>658 >>659
レスどうもありがとうございます。

>扱いは、ATL の CComBSTR のソースとかを参考にするよろし。
このソースと言うのは、どこを見ればのっているのでしょうか?
MSDN にサンプルとか含まれているのでしょうか?
とりあえず自分のマシンにはMSDNは入っているのですが...
やっぱ本を見たほうがいいのかな....
簡単でいいのでサンプルとか示していただけるとうれしいです。
あと、関数宣言の
STDMETHODIMP CHoge::GetHoge(BSTR in1,BSTR *retCode)
{
の BSTR *retCode という書き方はあっているのでしょうか?

>それはBSTRがchar*じゃ無いからだよ。

がまだよく理解できていませんが、BSTR形を
返却値ではなく引数として取るとき、

char *p = (LPSTR)OLE2T(in1);
見たいな書き方をしているので、このあたりがポイントかなと思い、
MSDNで検索すると、T2OLE という、逆にしているものを見つけましたが
かんけいあるのかな。
あと LPSTR 型ってなんじゃ?
663デフォルトの名無しさん:2001/04/17(火) 23:49
>>662
ヘッダ読め
664:2001/04/18(水) 00:00
>>662
> このソースと言うのは、どこを見ればのっているのでしょうか?
VCが入ってるディレクトリの中のATLフォルダのなかのIncludeフォルダ。
てゆうか、暇だったので掘ってきちゃった。

inline BSTR A2WBSTR(LPCSTR lp, int nLen = -1)
{
&nbsp;&nbsp;USES_CONVERSION;
&nbsp;&nbsp;BSTR str = NULL;
&nbsp;&nbsp;int nConvertedLen = MultiByteToWideChar(_acp, 0, lp, nLen, NULL, NULL)-1;
&nbsp;&nbsp;str = ::SysAllocStringLen(NULL, nConvertedLen);
&nbsp;&nbsp;if (str != NULL)
&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;MultiByteToWideChar(_acp, 0, lp, -1, str, nConvertedLen);
&nbsp;&nbsp;}
&nbsp;&nbsp;return str;
}

LPSTR は32bitなWindowsなら char* と同じ。LPCSTR は const char*。
BSTRは typedef OLECHAR *BSTR; だった。

>>663の言うとおり、わからない型が出てきたら windows.h 以下のヘッダを読むのが手っ取り早いと思う。
665656:2001/04/18(水) 01:03
>>663 >>664
レスどうもありがとうございます。
ファイル読めというのはunixもwindowsも一緒ですね...

いろいろ掘り起こしてくださってどうもありがとうございました。
こちらはWinNT4.0で開発しているので、LPSTRはchar*と
同じということですね。

うーん、何とかがんばって文字列を返すdllを
作ってみることにします...
どうにかして char から unicode にすればいいんだな。
666デフォルトの名無しさん:2001/04/18(水) 01:12
>>665
mbstowcs
667デフォルトの名無しさん:2001/04/18(水) 09:50
MSVCRTD.lib(crtexe.obj) : error LNK2001: 外部シンボル "_main" は未解決です
.exe : fatal error LNK1120: 外部参照 1 が未解決です。
link.exe の実行エラー

と言うエラーがでます。検索エンジンでほとんど調べたのですが、解決できません。
解決方法よろしくお願いします。
668デフォルトの名無しさん:2001/04/18(水) 11:08
>>667
ATLなら、コンパイルオプションか stdafx.h から_ATL_MIN_CRT を外せば?
(readme だかなんだかに出てたと思う。既知の問題点として)
669667:2001/04/18(水) 12:12
>>668
コンパイルオプションやstdafx.hがどこにあるか分かりません。すみません。
私の使っているコンパイラは、VC6.0++SEです。
670デフォルトの名無しさん:2001/04/18(水) 12:55
>>669

Alt+F7 でプロジェクトの設定を出して、
左側でプロジェクトを選択して、左上のコンボで「全ての構成」を選んで、
右の「C++」タブをクリックして、その下に出てくるコンボから「一般」を
選んで、下の「プリプロセッサの定義」のエディットボックスの中にある
アレコレがカンマで区切られて並んでるところから _ATL_MIN_CRT を
消して、「OK」ボタンで設定ダイアログを閉じる。
671667:2001/04/18(水) 14:04
>>670
お答えしていただきありがとうございます。
そこには、WIN32,_CONSOLE,_MBCSと書いてあって、 _ATL_MIN_CRTが見当たりません。
672デフォルトの名無しさん:2001/04/18(水) 14:12
>>671

では、どれでもいいからソース (.cpp とか .c で終わるファイル)
に、

int main(int argc, char* argv[])
{
return 0;
}

ってのを追加してください。
673デフォルトの名無しさん:2001/04/18(水) 15:22
>>672
可愛そうに
674656:2001/04/19(木) 20:20
>>666 さんレスどうもありがとうございます。
結局 A2BSTR() 一行 で解決しました。

おかげさまで BSTR 型を返す COM コンポーネントを
つくることができました。
675166:2001/04/19(木) 22:05
テトリスのソー
676デフォルトの名無しさん:2001/04/19(木) 22:19
CViewとかの派生クラスをつかうにはCDocumentも一緒に使わないと
駄目ですか?
SDIアプリ作ってるのですが、写真を表示させる小さなフレームを
メインのフレームとは別に作りたいのです。
Documentをわざわざ関連付けさせるほどじゃないけど、
CScrollViewを使いたい…
677デフォルトの名無しさん:2001/04/21(土) 14:25
■質問!

CWinApp::WriteProfileString
で書き込んだレジストリの内容をセクションごと削除するにはどうすればよいですか?

VBなら「DeleteSetting」って関数があるのに、VC++ではそれに該当する関数が見当たらないです。

おしえてくださーい
678デフォルトの名無しさん:2001/04/21(土) 18:22
>>676
メインフレームと関連付けられた内のCDocument派生クラス上に写真データが
あるのなら1Doc->2Viewで関連付けるのは合理的ではないの?
というかどうにでもできる話なんだけど。

679デフォルトの名無しさん:2001/04/25(水) 10:18
WindowsCEでリソースのVersionのProductNameを取得したい。
でも
GetFileVersionInfoSize()して
GetFileVersionInfo()して
VerQueryValue()して取得する。
という操作はCEでは、
GetFileVersionInfoSize()、
GetFileVersionInfo()、
VerQueryValue()の3つともサポートしていない
ので使えません。
どのようにして取得すればいいですか?
教えてください。
680デフォルトの名無しさん:2001/04/25(水) 13:41
#include <iostream>
using namespace std;

class sample {
 int x, y;
public:
 sample() { x=0; y=0; }
 sample(int i, int j) { x=i; y=j; }
 void get_xy(int &i, int &j) { i=x; j=y; }
 friend sample operator-(sample ob1, sample ob2);
};

sample operator -(sample ob1, sample ob2)
{
 sample temp;

 temp.x = ob1.x - ob2.x;
 temp.y = ob1.y - ob2.y;

 return temp;
}
これをコンパイルすると
friend sample operator-(sample ob1,sample ob2);の所で
fatal error C1001: 内部コンパイラ エラー になります。
一番上の2行を#include <iostream.h>のみにすると
エラーなしでコンパイルできます。
これは何故なのでしょうか?Win95&StandardEditionです。
681RIP_MAPIRO:2001/04/25(水) 14:21
>>680
それはコンパイラのバグです。
Service Pack によるバージョンアップを行ってください。

Win98 & VC++6.0 Pro Edt. (SP5) だと
エラーをはじきませんでした。
682680:2001/04/25(水) 23:47
>>681
ありがとうございます。
Service Pack でバージョンアップします。
683デフォルトの名無しさん:2001/04/26(木) 00:15
ここ2日、VC++をやり始めました。
すごい楽しいですね。

まだ、Whileとか、ifとかの世界ですが、すごい楽しいです。
Dos上できちんと動くようになりました。
がんばるぜ!

と早速厨房的質問いいですか??

普通のMSDosプロンプトで動かすとき、正常に動くのですが
いきなり終わってしまうのです。
これを入力待ちにしてなにか入力があったら、終了という形にはできないのでしょうか??

現在は
Whileでループさせて、ifで特定の入力があったときにbreakという形を取っています。

getcharで、できると思ったのですが、できません。
エラー、警告はでないんですが・・・。

いまのままだとちょっと面倒なので。
解決さく伝授してください!
よろしくおねがいします。
684デフォルトの名無しさん:2001/04/26(木) 02:50
getch
685デフォルトの名無しさん:2001/04/26(木) 04:12
マウスが画面上からはみ出たときに
OSから送られるハンドラってなに?
MouseOverみたいなのがあるといいんだけど・・
686デフォルトの名無しさん:2001/04/26(木) 04:23
ねーよ。

それから、マウスは画面はみでねーよ。
687デフォルトの名無しさん:2001/04/26(木) 04:35
>686
間違えたウインドウからはみ出たときだ。
MouseOverないの?JAVAではあったんだけどなあ・・・
困った。
688デフォルトの名無しさん:2001/04/26(木) 04:43
WM_MOUSEMOVEでがしがし見張る。
689デフォルトの名無しさん:2001/04/26(木) 05:38
>688
やはりそれしかないのですか。
ウインドウ上にマウスで絵を書くプログラムなんだけど、
MouseDragを検出するハンドラもないようなので
マウスボタンが押されたらフラグを立てて
フラグが立ってる間はMouseMoveにあわせて線をひき
マウスアップが検出されたらフラグを消すってやっているので、
マウスを押したままウインドウの外に出て
ウインドウの外でマウスボタンをはなして
またウインドウ内にカーソルを持ってくると、
フラグがたったままになってしまうんです。
せめてMouseDragでもあればなんとかなるんですが・・・
VisualCは難しい・・・
690厨房:2001/04/26(木) 05:46
>> 689
とりあえず、VCのSPY++ 使って、Windowメッセージを監視するといいよ
たしか、ノーアクティブマウスムーブとかがくるはずだから、
… たしか。
691デフォルトの名無しさん:2001/04/26(木) 06:01
>>689
WM_LBUTTONDOWN で SetCapture して、WM_MouseMove で GetCapture
して自分だったら (SetCapture中だったら) ドラッグ中とする。

WM_LBUTTONUP で ReleaseCapture して、WM_CAPTURECHANGED が来たら
ドラッグ終了、と。ここで手抜きして LBUTTONUP でドラッグ終了と
だけしてしまうと、ALT+TAB で他の AP に行ったときにドラッグ終了と
ならないので気をつけましょう(普通ドラッグは終了にしたいよね)。
692デフォルトの名無しさん:2001/04/26(木) 11:19
>>689
Win98以降でよければ、
TrackMouseEvent
Win95もターゲットなら、
_TrackMouseEvent
詳しくは
http://hp.vector.co.jp/authors/VA016117/hoverbtn2.html
を参照。
693デフォルトの名無しさん:2001/04/26(木) 16:04
こんにちは。唐突ですが、これだけは使える様になっとけって
プログラム言語あります?
694デフォルトの名無しさん:2001/04/26(木) 16:29
>>693
スレ違い。
695名無しさん :2001/04/26(木) 17:35
すいません。初心者なんですけれども、
Visual C++って家で出来るんですか??
学校の宿題で出たんですけれど。学校のPC室はいつも込んでいるんで
どなたか教えてください、おねがいします。
696デフォルトの名無しさん:2001/04/26(木) 17:40
>>695
家にソフトがないと無理。
あきらめて学校のPC室使いなさい。
というか学校の宿題ならVisual C++じゃないと
いけないなんてこたないかと。
多分他のコンパイラ落としてくればできるよ。
697名無しさん:2001/04/26(木) 17:58
>696さん
>多分他のコンパイラ落としてくればできるよ

それはどのようにやるのでしょうか?すみません初心者で。
698デフォルトの名無しさん:2001/04/26(木) 20:26
MFCってどうなちゃうんでしょう?C#の出現で自分的には
消えてなくなると思うんですけど。。。
699デフォルトの名無しさん:2001/04/26(木) 20:28
>689
SetCapture()やReleaseCapture()を使うのが定石だよ。

700デフォルトの名無しさん:2001/04/26(木) 20:51
>>699
そんな定石いやだ
GetAsyncKeyState(VK_LBUTTON)で片付けよう
去るカーソルは追わず
701デフォルトの名無しさん:2001/04/27(金) 02:00
>>699-700
だから、692がTrackMouseEventして、WM_MOUSELEAVEを拾えばいいって言ってるじゃねぇか
702689:2001/04/27(金) 02:47
>692
どうもです。できました。わーい。でもマウスで線を書いてから
画面を最小化したり、なんかのウインドウの下にいれて
もういちど出したりすると線が全部きえちゃいます。
書きながらデータを記録しておいて
OnPaint関数で書き直しを追加すればいい気がするんだけど
こういう場合はどうやって保存するのが基本ですか?
あーまた質問しちゃった。
これで最後にするんでお許しを。
703デフォルトの名無しさん:2001/04/27(金) 04:31
裏画面に描いて保存しておく。
やり方はダブルバッファリングとか調べれば一発でしょう。
704デフォルトの名無しさん:2001/04/27(金) 11:29
すいませんMPC7400のAltiVecを使用したFFT探してるんですが、どなたか知りませんか?
appleのHPにあったやつは512complexで16usecとかいって320msecもかかりやがるし、モトローラのやつはバグって動かないし
困ってます、やさしいお兄さん教えてください(タダじゃなくても良いです)
705デフォルトの名無しさん:2001/04/27(金) 11:52
>>704
その質問はVC++じゃないので、よそで聞いたほうが良い、と思われ。
新Mac板に行けば、MACオタが詳しく教えてくれるのでは、と思われ。
706デフォルトの名無しさん:2001/04/27(金) 12:14
>>701
ばからしい手法だね
707デフォルトの名無しさん:2001/04/27(金) 13:32
>>696
僕が出た学校は、VCで提出だった --;
その前は クイックCだった…
学校によっては色々あると言う事で
708デフォルトの名無しさん:2001/04/27(金) 14:09
#include <math.h>しても

M_PI  が無いんだけど・・・・・どこに行ったの?
709デフォルトの名無しさん:2001/04/27(金) 14:54
PIくらい自分で定義すれや…
710引用:2001/04/27(金) 15:13
           ______________
         /
━━━━━━| 3.14…………アヒャヒャヒャヒャヒャヒャヒャヒャ
            レ──────────────

 円周率
  ____
 .B■∧  /
━ (,, ゚∀゚) /━━━
   |   つ  ▽      ∧ ∧      ∧ ∧
   |  |  ┌┴┐    (゚Д゚;)     (゚Д゚;)
 \|  |  |□│   /⊂  ヽ     /⊂  ヽ
  ,,し'∪, │  │  √ ̄ (___ノ〜 √ ̄ (__,ノ〜
 ̄ ̄ ̄ ̄ ̄|   |   ||   ━┳┛  ||    ━┳┛
 ̄ ̄ ̄ ̄ ̄|   |==============
  _________∧______

| もしかしてその先が分からないのか?
\_____________        ∧
                    / ̄ ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
                    |  3.1415926535897932385だゴルァ
                    \________________

http://piza.2ch.net/test/read.cgi?bbs=mona&key=984296529&st=364&to=364
711708:2001/04/27(金) 15:54
なるほど、 math,hをインクルードしてるのに
#ifndef M_PI
#define M_PI 3.14159265358979323846
#endif
とかイチイチやってるのはVCの為だったのか・・・
712デフォルトの名無しさん:2001/04/27(金) 16:25
こんなふうに、
typedef struct {
void *next;
int size ;
short data[];
} buffer;
サイズゼロの配列を構造体内で指定すると VC++ではエラーになるんだけど、

VCではやっちゃマズイのかな?
713デフォルトの名無しさん:2001/04/29(日) 20:10
初心者です。今、本で勉強しているのですがタコなので教えてください。
WizardでHello Worldアプリをつくり、以下のコードを追加します。
//CShapeクラスの定義(基本クラス)
class CShape {
public:
HDC hDC;
long Color;
virtual void Draw() = 0;
virtual ~CShape() {};・・・・・・(1)
};

//CLineクラスの定義
class CLine:public CShape {
public:
void Draw();
};

//CTriangleクラスの定義
class CTriangle:public CShape {
public:
void Draw();
};

//CRectangleクラスの定義
class CRectangle:public CShape {
public:
void Draw();
};

void CLine::Draw() {
POINT pt;

//直線を描画します
MoveToEx(hDC,0,50,&pt);
LineTo(hDC,50,150);
}

void CTriangle::Draw() {
POINT pt;

//三角形を描画します
MoveToEx(hDC,150,50,&pt);
LineTo(hDC,200,150);
LineTo(hDC,100,150);
LineTo(hDC,150,50);
}

void CRectangle::Draw() {
//四角形を描画します
Rectangle(hDC,250,50,350,150);
}

***********WinProc************
case WM_CHAR:
//文字が入力されたときの処理
if ((wParam == 'L') || (wParam == 'l')) {
sp=&ln;
}
else if ((wParam == 'T') || (wParam == 't')) {
sp=&tr;
}
else if ((wParam == 'R') || (wParam == 'r')) {
sp=&rc;
}
else {
break;
}

//描画を行う
sp->hDC=GetDC(hWnd);//デバイスコンテキスト取得
sp->Draw();//描画
ReleaseDC(hWnd,sp->hDC);//デバイスコンテキスト開放
break;

***************************
ここで、(1)のデストラクタ~CShape() の後ろに {} を記述する意味がわかりません。
これを書かないと以下のようにおこられます。
Polymo.obj : error LNK2001: 外部シンボル ""public: virtual __thiscall CShape::~CShape(void)" (??1CShape@@UAE@XZ)" は未解決です
Debug/Polymo.exe : fatal error LNK1120: 外部参照 1 が未解決です。

エラーの意味も良くわからないのですが、どういうことでしょうか?
714厨房:2001/04/29(日) 22:47
>>713
エラーの意味は、~CShape() {};に実体がないって意味でしょ。
715RIP_MAPIRO:2001/04/29(日) 22:58
virtual ~CShape() {}; //デストラクタが”定義”されている。

virtual ~CShape(); //デストラクタが”宣言”されているだけ。
だからエラーは、
public: virtual __thiscall CShape::~CShape(void)
の中身が定義されていないからちゃんと定義しろ って言っている。

ちなみにクラス内で定義されていればインライン展開
されるはずなので外部定義するより若干処理が速い。
また”{}”のように一見なにもしないようでも実態の解放はされるので
空の{}でも定義する必要がある。
716713:2001/04/29(日) 23:08
>714,715
>また”{}”のように一見なにもしないようでも実態の解放はされるので
>空の{}でも定義する必要がある。
おお、そういうことですか。分かりました、大変助かりました。
717RIP_MAPIRO:2001/04/29(日) 23:14
訂正>>715
>ちなみにクラス内で定義されていればインライン展開
>されるはずなので外部定義するより若干処理が速い。
ただし、virtual アクセスメンバ関数は、クラス内で定義されても
インライン展開されません。
718デフォルトの名無しさん:2001/04/30(月) 10:53
こんなエラーが沢山出ます
nafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" はすでに LIBCMTD.lib(new.obj) で定義されています

たぶんMFCとcの標準ライブラリ(printf類)を両方使ってるからだと思うのですが、
何と何を一緒に使ってはダメなんでしょうか?
MSDNライブラリを探しても判りませんでした
719718:2001/04/30(月) 11:20
原因を調べる為にコメントアウトしていってみると

_beginthread を <process.h> をincludeして使うとそうなるようです。

これをMFCに置き換えないといけないのかな?
720718:2001/04/30(月) 11:45
ちなみに、_beginthreadで作成したスレッドでは
 使っているのはWinInetAPIだけで
 MFCは一切使っていません。

とりあえず、今から AfxBeginThread を調べてみます。 ああメンドクサイ
721デフォルトの名無しさん:2001/05/02(水) 09:19
SFXってシェアのバイナリエディター
みたいな見た目って、簡単に作れますか?
C++Builderしか使ったことないので
VC++でどうか教えて下さい。
722デフォルトの名無しさん:2001/05/02(水) 19:03
WindowsCEでストレージカードが刺さっている場合、
ストレージカードのあるフルパスを取得する方法って
ありますか?
723166:2001/05/02(水) 23:36
テトリ・・・・・・
724デフォルトの名無しさん:2001/05/02(水) 23:38
ス・・・・・・
725デフォルトの名無しさん:2001/05/03(木) 03:33
C始めたばっかりのド素人です。

C++使ってコンパイルして気になったのですがC言語って大文字小文字を区別するんですか?
自動的に書き換えてくれる設定、もしくは区別なしの設定などは無いでしょうか。

インデントもしてくれないし・・・
726デフォルトの名無しさん:2001/05/03(木) 03:51
>>725
Cは大文字小文字を区別します
エディタは探せばいろいろあると思いますので
使いやすいものを探してください
Cに対応したエディタもありますよ
727デフォルトの名無しさん:2001/05/03(木) 03:52
(゚Д゚)ハァ?
728デフォルトの名無しさん:2001/05/03(木) 05:14
#define SWAP(a,b) (w=a; a=b; b=w;)
#define f(X) ((x)*(x)-3.0)
すいません上の二つの文についてどういう意味なのか教えてください。
c言語を学び始めた素人童貞です。
おねがいします女王様。
729デフォルトの名無しさん:2001/05/03(木) 05:32
マクロ文>728
SWAPは変数の値の交換。
fはxを2乗してその値を3.0で引くって意味だと思う。
それよりwってなんだよ。まあ使い所を間違えなければいいけど。
おれはこっちの方が好きかな。
#define SWAP(type, a, b) \
do {type tmp = a; a = b; b = tmp;} while (0);
730デフォルトの名無しさん:2001/05/03(木) 11:12
>>729
do{ 〜 }while(0); となってるけど、
中カッコでくくるだけでは不可?
731デフォルトの名無しさん:2001/05/03(木) 11:36
ビットマップボタンのビットマップに、リソースの一部を切り取ったものを使うには
どうすればいいんでしょうか?
732729じゃないぞ:2001/05/03(木) 11:54
>>730
Cでそれってアリだっけ?
733デフォルトの名無しさん:2001/05/03(木) 13:06
#define  macro()  { ... }
の代わりに
#define  macro()  do { ... } while (0)
を使う理由
if (xx)
  macro(a, b);
else (xx)
  macro(c, d);

>>729は最後にセミコロンを付けているから不可
734730:2001/05/03(木) 13:43
おおー、なるほど。
勉強になります。
735デフォルトの名無しさん:2001/05/22(火) 00:13
VCでソースの行番号を表示させるには
どうすればいいのでしょうか?
736デフォルトの名無しさん:2001/05/22(火) 00:20
__LINE__じゃなかた?>735
737デフォルトの名無しさん:2001/05/22(火) 00:43
>>733
セミコロンは何個付いても問題ないと思うが。
ただの空文じゃん。
738735:2001/05/22(火) 00:44
早いレス、ありがとうございます。
マクロつかうのですね。
これだと、新規作成したソースファイルにも
表示させることできますか?
739デフォルトの名無しさん:2001/05/22(火) 00:47
#define SWAP(a,b) a^=b^=a^=b
740デフォルトの名無しさん:2001/05/22(火) 02:30
>>737
考えが浅いね。
741デフォルトの名無しさん:2001/05/22(火) 02:49
>>737
{ } が省略可能に注目せよ。
 
742デフォルトの名無しさん:2001/05/22(火) 06:15
VC++で素早くファイルサイズを取得する方法って他にありますか?
試したのは、適当なHDD内の1679ファイル(計104M)で実験したら
CFileFind::GetLengthが約14秒
CFile::GetStatus(オープンしない奴)でも14秒
_filelengthだと21秒(open有り)
::GetFileSizeの場合も21秒
_statだと15秒でした、、
キャッシュの影響?で1秒前後誤差がありますけど、、
後、ファイルを開かない奴は、ディスクに開始直後しかアクセスしてない
ようですけど、FATしか読んでないのでしょうか?、、

エクスプローラーの詳細表示を見るともっと早いのですが、
他に早くサイズを取得する方法って無いですか?、
743737:2001/05/22(火) 06:38
>>740-741
よくわからない(汗
説明きぼん。
744デフォルトの名無しさん:2001/05/22(火) 06:43
,
745132:2001/05/22(火) 09:49
>>729-730
>>737
あんたらさぁ、システムのヘッダ読んだことないの?
ま、読んでたとしても理由なんか考えてないんだろうけど(藁
746デフォルトの名無しさん:2001/05/22(火) 10:29
>>742
エクスプローラは見える範囲の情報しか取得しないから速い。
1679ファイルあっても、エクスプローラの詳細で1度に表示
できるのは、せいぜい100ぐらいでしょ。

>>743
マクロ展開ぐらい自分でやれ。
if (cond)
  { printf("foo"); };
else
  { printf("bar"); };
で、コンパイルとおるか?
747デフォルトの名無しさん:2001/05/22(火) 16:21
>>746
ではエクスプローラのステータスバーに表示されているサイズ数
(項目非選択時、フォルダ内の全ファイルの合計サイズ)は
どのように取得されているのか説明希望。
748デフォルトの名無しさん:2001/05/22(火) 17:24
どっかに計算結果が既にキャッシュされてるとか
749737:2001/05/23(水) 00:55
>>746
そうか、すんまそん。
逝って参ります。
750742です、:2001/05/23(水) 01:40
やっぱ、無理ですかね、、
iriaとかでも、ファイルサイズを取得するのでリストが1000行を超えると
読み込みに時間が掛かったりするのも同じ原因かなぁ、、
751デフォルトの名無しさん:2001/05/23(水) 03:28
>>742
CreateFileでディレクトリを開いて、そのディレクトリハンドルで
DeviceIoControlにFSCTL_QUERY_ALLOCATED_RANGESを指定。
じゃダメかな。
物理サイズしかとれないけど、エクスプローラのステータスバーの
表示も物理サイズだよねぇ。
752747:2001/05/23(水) 05:49
ファイルシステムに直接聞くってことか。
確かに速そうなんだが、これNTFSオンリー(しかもW2K以降)
にしか使えないよ〜。
DeviceIoControl自身はアーリーバージョンでもサポート
されてるんだが他のコントロールコードでなんとかならないか
今MSDN読んでる。
753デフォルトの名無しさん:2001/05/23(水) 13:38
なんか勘違いしてないか?
FindFirstFile()/FindNextFile()は十分速いぞ。
たかだか1000個程度で10秒も掛からん。
もしかして、リストビューにInsertItemしてないか?
754デフォルトの名無しさん:2001/05/23(水) 13:51
あとでしろってことね
755デフォルトの名無しさん:2001/05/23(水) 13:59
>>753
勘違いしてんのはお前の方。
目的はファイルの列挙じゃなくてファイルサイズの積算だ。
756デフォルトの名無しさん:2001/05/23(水) 14:24
>>755
列挙したら、同時にファイルサイズも取れるのだが。
それに、エクスプローラのステータスバーに表示されるのは、
ファイルサイズの合計であって、占有ディスクサイズじゃないよ。
757デフォルトの名無しさん:2001/05/23(水) 17:33
>>742に、
CFileFind::GetLengthが約14秒
って書いてあるじゃん。
758742です、:2001/05/24(木) 00:08
 なんか、もめてますね、、((((((^_^;)
 実験してたのは、ファイルのパスが書いてあるテキストを読みながら
それぞれのファイルのサイズを別のテキストに書き出してたんです、、
 今日別のリストを作って試してみたら、同じぐらいのファイル数でも
CFile::GetStatusで2〜3秒で完了してしまいました、、(^^ゞ
 多分最初の実験の時はディスクの底の方の小さいファイルで試してたからかも
しれません、、HDDもかなり古いやつで実験してたし、、
 エクスプローラの詳細表示って書いたのはそのまま読んで頂くと、
詳細表示した時もファイルのそれぞれのファイルサイズが表示されてるからで、
ステータスバーは関係ありません、、ステータスバーのサイズはGetStatusとかで
フォルダをチェックすれば取得できるのでは?、、、(未確認ですけど、、)
 って事で取りあえずセオリー通りGetStatus使ってみます、、(^^ゞ

あ、unzip32.dllを使って2バイト文字のパスを設定して解凍って出来るのでしょうか?
コマンドラインで-Pオプションで出来るかと思ったけど無理みたいだし、、、
759デフォルトの名無しさん:2001/05/24(木) 01:09
MDIアプリで
ダイアログを常に表示させておきたいのですが
(VC++のワークスペースウィンドウみたいに
どうすれば良いのでしょうか。

CMDIChildWndとCDialog
を多重継承すれば良いのですか?
ドッキングはしなくても良いんですが。
760デフォルトの名無しさん:2001/05/24(木) 02:01
>>759
やっぱりCDialogBarを使うのが簡単。
ドッキングはSetBarStyleで不可にできるし。
最近はモードレスダイアログみんなこれで作ってます。
Wizardで半分くらい出来上がっちゃうし。
761てんさいぷろぐらむぁ(偽):2001/05/24(木) 02:15
>>758

ファイルサイズの事なんですが・・・(ちょっとおそいけど)
MFCのソースをみると

BOOL CFile::GetStatus( CFileStatus& rStatus ) const;
オープン済みのファイルに対して
APIのGetFileSize実行
その他のCFileStatusの値取得にも「個別」にAPI呼んでます。

static BOOL PASCAL CFile::GetStatus( LPCTSTR lpszFileName, CFileStatus& rStatus );
未オープンのファイルに対してAPIのFindFirstFile実行。
一度に各種ステータス取れるので、取れた値をCFileStatusに代入&変換

DWORD CFileFind::GetLength( ) const;
基本的にAPIのFindFirstFile&FindNextFile実行後
取得済みメンバ変数からサイズをreturn

って感じになってます。

つまりサイズのみ取得で良いならば
CFile::GetFileSize(要オープン)を「単体」で呼ぶか
CFile::GetStatus(オープンなし)を使うか
CFindFile::GetLength(オープンなし、要FindFile FindNextFile)
のどれかが良いと思います。

より速さを求めるならオープンしない
CFile::GetStatusか
CFindFile::GetLengthが早いんじゃないかと。
(上記二つはやってる事ほとんど同じなので)

基本的にMFCはAPIのラッパーなのでソースをみませう。
でわ
 ニャフ-ン    オヤスミ-
  ___Λ Λ____
 |__(,,⌒ー⌒)/)゙__|
762759:2001/05/24(木) 02:49
>>760さん
CDialogBarで、やってみます
レス有難う御座いますぅ。
763デフォルトの名無しさん:2001/05/24(木) 10:38
CFindFileを使うと、毎回WIN32_FIND_DATAをnewすることになるので、
>>753 の言う通り生のAPIを叩くほうが速いですが、その差はほとんど
無いと思います。
764デフォルトの名無しさん:2001/05/24(木) 10:55
ビットマップをファイルから読み込んでリージョン作ろうとしているんですが,
下みたいにして読み込みました。(何枚かビットマップ読み込む予定なので
それらを管理するクラスをつくりました。Surfaceはそのクラスオブジェクトで
す)
Surface.hBitmap = (HBITMAP)::LoadImage(NULL,"myBmp.BMP",IMAGE_BITMAP,0,0,LR_LOADFROMFILE | LR_CREATEDIBSECTION );
これで描画させようとすると,上手く表示されません。そこでこの直後に
::LocalLock((void*) Surface1.hBitmap);
とすると,表示されました。HBITMAPなどのメモリ管理ってどうなっているんでしょうか?
LoadImageで確保されたメモリは一時的な物で,途中どこかで消滅してしまうのですか?
765759:2001/05/24(木) 23:54
CDialogBarにリストビュー貼りつけて
CListCtrlの初期化をOnCreateでしてるんですが、
CListCtrlのSetImageListを呼んだところでエラーがでます。
こういう時CListCtrlは、
どこで宣言してどこで初期化すれば良いのでしょうか?
766759:2001/05/26(土) 00:25
ageちゃうョ
767ななーし:2001/05/26(土) 12:02
>>765
えーっと、CDialogBarオブジェクトのCreateはCMainFormの
OnCreateでやるので、
dialogBar.Create( this, IDD_DIALOGBAR, CBRS_TOP, IDD_DIALOGBAR );
CListView* lv = (CListView*)dialogBar.GetDlgItem( IDC_LIST1 );
CListCtrl& lc = lv->GetListCtrl();
lc.SetBkColor( RGB(100,0,0) );
みたいにやったら操作できたよ。
まあSetImageListも同様に出来ると思うよ。
(CImageListはめんどくさいからやってないけど。)
768デフォルトの名無しさん :2001/05/26(土) 22:03
コンソール版で作ってたプログラムをGUI版に直しているのですが
今までcoutで表示させていたデバッグメッセージを
DOSプロンプトを呼び出して表示させたいのですが・・・。
そもそも、こういうことって出来るんでしょうか?
769デフォルトの名無しさん:2001/05/26(土) 22:48
>>768
素直にウィンドウかメッセージボックスに書く、ってのはダメ?
770768:2001/05/26(土) 23:11
>>769
それだとcoutで表示してるところを全部書き直さないといけないですよね。
それが面倒なんで何かいい方法ないなかあ、と思索中です。
771石本:2001/05/26(土) 23:52
ここで質問しても教えてくれないこともないんですが、
煽りや初心者を馬鹿にしたレスが多いので、
活動の盛んな普通のVC、VBプログラミングのQ&A掲示板の
URL教えてください。よろしくお願いします
772デフォルトの名無しさん:2001/05/27(日) 00:27
>>770
ostreamを継承してDOSプロンプトに出力するオブジェクトを作って
エディタで一括痴漢。
または、CWinApp::InitInstance時にコンソールを作って標準出力を
そのコンソールに繋げば、coutはそのまま。
773768:2001/05/27(日) 00:32
>>772
ありがとうございます!
774デフォルトの名無しさん:2001/05/27(日) 03:56
>>668
どうせ、デバッグメッセージなんだから、
デバッグ版は、main使って、リンカオプションに、subsystem:consoleをつける。
リリース版は、WinMain使って、リンカオプションに、subsystem:windowsをつける
別にstreamを継承する必要はない。
MFCとかなら、デバッグ時のmainに工夫が要るかもね
775デフォルトの名無しさん:2001/06/02(土) 13:59
Windows用のフリー/シェアソフト開発を行おうかと思ってるんですが、
世間にはVC++のものが多く出回っているようなので
波に流されて、はじめようかと思っています。

当方、C、Java、Perlは使ったことありますが、
C++はほとんど知らず、VC++は全然です。
短期間である程度できるようになるんでしょうか。
同じような経緯の方の体験談をお聞きしたいです。

Javaやオブジェクト指向を知ってるなら
MFCは大丈夫と、友人は言いますが…
776776:2001/06/02(土) 14:39
Visual C++でプログラミングを始めた者です。

coutで指数表記を使う場合、3.1536e+004のように指数部が3桁で表示されてしまいます。
これを指数部が2桁(例えば 3.1536e+04)になるように書式設定することは可能でしょうか?
ご存知の方はお教え願います。
777デフォルトの名無しさん:2001/06/02(土) 14:59
>>775
ある程度がどのくらいかにもよる
ぐだぐだ考える前にまず本を買って読んでみるべし
778>>776:2001/06/02(土) 18:33
printf() でいいじゃねえか。
細かい書式指定はできないのと違いますか。自分でちまちま文字列作成すれば別だけど。
779sageる:2001/06/03(日) 18:47
>>776
プログラミング言語C++ 第三版 21.4章
7802:2001/06/11(月) 11:17
2だけど、あれから少し勉強して今改めて4を見たら殺したくなってきた。
781デフォルトの名無しさん:2001/06/11(月) 12:01
>>780
気付くのが遅い。
782デフォルトの名無しさん:2001/06/11(月) 18:34
質問です。よく雑誌付録のsampleのワークスペースを開くと"外部依存関係"
というフォルダが画面右の枠の中にできているのですが、これはどうやって
作るのでしょうか?同じ名前のフォルダを作成しようとすると予約されてる
からエラーと怒られてしまいます。
よろしくお願いします。
783:2001/06/11(月) 18:37
>>780
あんだとー
殺してみーやー
784デフォルトの名無しさん:2001/06/13(水) 16:58
>>782
"外部依存関係" というフォルダは外部依存関係があるときに表示されます。
というかヤバいよ、その質問。
785デフォルトの名無しさん:2001/06/13(水) 20:40
LIBCD.lib(crt0.obj) : error LNK2001: 外部シンボル "_main" は未解決です

↑のエラーについて教えてください!
786デフォルトの名無しさん:2001/06/13(水) 20:44
ヘルプ読め
787デフォルトの名無しさん:2001/06/13(水) 20:47
ヘルプってなーに?
788デフォルトの名無しさん:2001/06/13(水) 23:02
>>784
そういう答え方しかしないなら、答えないほうがまだまし。
というかヤバイよ、その返答。
789デフォルトの名無しさん:2001/06/14(木) 04:09
Cで2進数は使えますか?
10進数と8進数と16進数の使い方はわかったんですが、2進数はわかりませんでした。
教えてください。
790デフォルトの名無しさん:2001/06/14(木) 04:17
winsock2っていうのが使いたいんですけど
初心者でもわかる日本語のところおしえてください
791デフォルトの名無しさん:2001/06/14(木) 04:22
>>785
mainが未解決だとおもいます
792デフォルトの名無しさん:2001/06/14(木) 04:23
>>789
2進数は使えません仕様です
793デフォルトの名無しさん:2001/06/14(木) 12:06
>>768
OutputDebugString() 使え
794デフォルトの名無しさん:2001/06/14(木) 12:08
>>739
a と b が同値の場合はどうするんだ?
>>768
OutputDebugString() 使え
795デフォルトの名無しさん:2001/06/14(木) 13:57
>>789
 2進数を10進数か16進数かに自分で変換しなはれ。
16進数に変換するのが一般的、かつ楽。
796デフォルトの名無しさん:2001/06/14(木) 15:12
RS232Cの通信ソフト作ってます。
受信時について質問します。
port=0x3f8
buf=_inp(port)
とやって、受信データを
とりたいのですが、できません。
通信相手は温度センサで温度をAD変換して
温度をPCで拾いたいです。
受信ポートは0x03f8、
_inp使ってバイト単位でデータを
とってもよろしいのでしょうか?
どうかよろしくお願いします。
797デフォルトの名無しさん:2001/06/14(木) 15:18
そう言う方法(in,outの発行)はWin9Xなら、dllではOK。
NT系なら、ドライバ作れやゴルァって事になるはず。
つーか、COM1とかをCreateFileしたらいかんのか?
798デフォルトの名無しさん:2001/06/14(木) 15:45
プリント中キーを押しても受け付けなくなるのですが
なにか解決策はありませんか?
799796:2001/06/14(木) 16:23
>>797
ありがとうございます。
Win98なのですが、
Dllにしないとだめですか?

CreateFileためしてみます。
800デフォルトの名無しさん:2001/06/14(木) 17:10
MFCで、ビューに乗っかったスクロールバーを使っています。
真中のつまみの長さを変えるにはどうしたらいいのですか。

レンジと値を指定すれば勝手にやってくれると思っていましたが、
つまみが小さいままなので動きがカクカクします。
実害はないんですが。
801デフォルトの名無しさん:2001/06/14(木) 17:34
>>797
相手がCOMポートだから、ドライバが入っているならIOアクセスは
VxDに邪魔されるはず。
行儀良くCreateFileするが吉。
802デフォルトの名無しさん:2001/06/14(木) 17:48
MFC超初心者です。
MFCのキー入力はわかるのですが、ウェイトの設定方法がよくわからないです。
どなたかスロットゲームのソースを頂けないでしょうか?
スロットゲームのソースを見れば本当によく理解でき、勉強できると思うんです。
本当にめんどくさいこと書いて恐縮なのですが、どうかよろしくお願いします。
803デフォルトの名無しさん:2001/06/15(金) 07:52
>>785に便乗質問です。
たとえば、
http://www.asahi-net.or.jp/~yf8k-kbys/vcpp5.html
のコードをそのままコピペしても、
"_main" は未解決です
のエラーがリンク時に出るのですが、
これはなぜなんでしょうか?
804デフォルトの名無しさん:2001/06/15(金) 08:22
>>803
[ファイル] - [新規作成] - [プロジェクト] から MFC AppWizard 選べ。
805デフォルトの名無しさん:2001/06/15(金) 08:52
>>803
MFCプログラムの一部だからです。
MFCがわからないときはMFCによるWindowsプログラミング等の
本を読んで勉強してください。
806デフォルトの名無しさん:2001/06/16(土) 04:53
>>798
別スレッドでAbortダイアログを作ってちょうだい。
807デフォルトの名無しさん:2001/06/22(金) 11:34
aとbが等しいときのa==bの返り血は1で保証されてるのですか?
808デフォルトの名無しさん:2001/06/22(金) 12:09
>>807
保証されてないんじゃないの?
809デフォルトの名無しさん:2001/06/22(金) 12:14
>>807 はネタくさいな。
「返り血」というあたりに残虐性を感じる。
810デフォルトの名無しさん:2001/06/22(金) 12:15
>>807
a = 3;b = 4;
a == b
が0ってのは保証されてるけど
811807:2001/06/22(金) 12:25
されてないんですか…
if(((hoge1==0)+(hoge2==0)+(hoge3==0)+(hoge4==0))==3){...}
とかやりたかったんですが。
めんどくせえ。
812デフォルトの名無しさん:2001/06/22(金) 12:41
>>811
if((hoge1==0)&&(hoge2==0)&&(hoge3==0)&&(hoge4==0)){...}

とかにすれば?
813デフォルトの名無しさん:2001/06/22(金) 12:44
>>812
「4つある条件のうちの一つだけが適合しないとき」ってことでそ?
814813:2001/06/22(金) 12:47
if (3 ==
  ((hoge1 == 0) ? 1 : 0) +
  ((hoge2 == 0) ? 1 : 0) +
  ((hoge3 == 0) ? 1 : 0) +
  ((hoge4 == 0) ? 1 : 0))
{
  〜〜〜
}

でどう?
815デフォルトの名無しさん:2001/06/22(金) 13:04
>>809
ANSI の規格で必ず1が返るのが保証されています。

なので、
>>814
if (3 ==
  (hoge1 == 0) +
  (hoge2 == 0) +
  (hoge3 == 0) +
  (hoge4 == 0))
が可能

if (3 == ((!hoge1) + (!hoge2) + (!hoge3) + (!hoge4)))
も可能
816815:2001/06/22(金) 13:06
↑809 は
>>807
の間違い

あとは、コンパイラが ANSI 必ず守ってるかどうかはよく知らないす
817デフォルトの名無しさん:2001/06/22(金) 13:28
比較演算子が0or1返す前提で作られたプログラムなんて
いくらでもあるぞ。それに今までにこの規格に準拠しない
C/C++コンパイラなんか見た事ない。
818デフォルトの名無しさん:2001/06/22(金) 13:57
>>812の言うとおり、素直に&&でつなげるのいいと思う。

論理演算の結果を足す方式って読みやすくなるわけじゃないし、特にメリットが無いような気がするんだけど。
(環境によっては速くなったりするのかなぁ?)
819デフォルトの名無しさん:2001/06/22(金) 15:30
-0.000287528
-0.003976394
0.004936444
-0.017730057
-0.071510957
0.004752722

こういうデータをVC上に読み込みその際上から順にline[1] , line[2] ・・・ という感で
利用したいのですが、

char line[1000];
double test;
int a;

fp = fopen( "a.txt","r");

fgets(line,sizeof(line),fp);
  sscanf(line, "%g" , &test);

fclose(fp);

}

とやると

line[1] -
line[2] 0
line[3] 0

という感じなって一文字づつ取っていってしまいます。
これはどう解決したらよいのでしょうか?
820デフォルトの名無しさん:2001/06/22(金) 15:40
>>819
何をやりたいのかもうちっと詳しく書け。

>こういうデータをVC上に読み込みその際上から順にline[1] , line[2] ・・・ という感で
>利用したいのですが、

データを文字列として利用したいのか?doubleとして利用したいのか?
821デフォルトの名無しさん:2001/06/22(金) 15:48
すいません。

doubleで利用したいです。入出力関係で色々探したけど
数値として扱う関数なかったので・・・
822デフォルトの名無しさん:2001/06/22(金) 15:49
>>819
二次元配列
文字と文字列の違い

について勉強し直せ。
823デフォルトの名無しさん:2001/06/22(金) 15:51
了解です。どうもありがとうッス
824デフォルトの名無しさん:2001/06/22(金) 15:59
> doubleで利用したいです。
だったら
> char line[1000];
ではダメだろう。
825デフォルトの名無しさん:2001/06/22(金) 16:00
>>819
こういう感じでいいんかな。

char line[1000];
double data[1024];
int count;

fp = fopen( "a.txt","r");

count = 0;
while( fgets(line,sizeof(line),fp) != NULL ) {
  sscanf(line, "%g" , &data[count]);
  count++;
}

fclose(fp);
826関係ないけど:2001/06/22(金) 16:17
一列ごと、ごっそと変数にいれてくれる関数ないの?
827デフォルトの名無しさん:2001/06/22(金) 16:23
>>826
質問の意味が分からん。
828デフォルトの名無しさん:2001/06/22(金) 16:49
たとえばhoge1,hoge2,hoge3,hoge4,hoge5,hoge6のうちちょうど3個が0になる条件が欲しい場合。

&&と||で書くと
if(
((hoge1==0)&&(hoge2==0)&&(hoge3==0)&&(hoge4!=0)&&(hoge5!=0)&&(hoge6!=0))||
((hoge1==0)&&(hoge2==0)&&(hoge3!=0)&&(hoge4==0)&&(hoge5!=0)&&(hoge6!=0))||
((hoge1==0)&&(hoge2==0)&&(hoge3!=0)&&(hoge4!=0)&&(hoge5==0)&&(hoge6!=0))||
((hoge1==0)&&(hoge2==0)&&(hoge3!=0)&&(hoge4!=0)&&(hoge5!=0)&&(hoge6==0))||
((hoge1==0)&&(hoge2!=0)&&(hoge3==0)&&(hoge4==0)&&(hoge5!=0)&&(hoge6!=0))||
((hoge1==0)&&(hoge2!=0)&&(hoge3==0)&&(hoge4!=0)&&(hoge5==0)&&(hoge6!=0))||
((hoge1==0)&&(hoge2!=0)&&(hoge3==0)&&(hoge4!=0)&&(hoge5!=0)&&(hoge6==0))||
((hoge1==0)&&(hoge2!=0)&&(hoge3!=0)&&(hoge4==0)&&(hoge5==0)&&(hoge6!=0))||
((hoge1==0)&&(hoge2!=0)&&(hoge3!=0)&&(hoge4==0)&&(hoge5!=0)&&(hoge6==0))||
((hoge1==0)&&(hoge2!=0)&&(hoge3!=0)&&(hoge4!=0)&&(hoge5==0)&&(hoge6==0))||
((hoge1!=0)&&(hoge2==0)&&(hoge3==0)&&(hoge4==0)&&(hoge5!=0)&&(hoge6!=0))||
((hoge1!=0)&&(hoge2==0)&&(hoge3==0)&&(hoge4!=0)&&(hoge5==0)&&(hoge6!=0))||
((hoge1!=0)&&(hoge2==0)&&(hoge3==0)&&(hoge4!=0)&&(hoge5!=0)&&(hoge6==0))||
((hoge1!=0)&&(hoge2==0)&&(hoge3!=0)&&(hoge4==0)&&(hoge5==0)&&(hoge6!=0))||
((hoge1!=0)&&(hoge2==0)&&(hoge3!=0)&&(hoge4==0)&&(hoge5!=0)&&(hoge6==0))||
((hoge1!=0)&&(hoge2==0)&&(hoge3!=0)&&(hoge4!=0)&&(hoge5==0)&&(hoge6==0))||
((hoge1!=0)&&(hoge2!=0)&&(hoge3==0)&&(hoge4==0)&&(hoge5==0)&&(hoge6!=0))||
((hoge1!=0)&&(hoge2!=0)&&(hoge3==0)&&(hoge4==0)&&(hoge5!=0)&&(hoge6==0))||
((hoge1!=0)&&(hoge2!=0)&&(hoge3==0)&&(hoge4!=0)&&(hoge5==0)&&(hoge6==0))||
((hoge1!=0)&&(hoge2!=0)&&(hoge3!=0)&&(hoge4==0)&&(hoge5==0)&&(hoge6==0))){...}

+を使うと
if(((hoge1==0)+(hoge2==0)+(hoge3==0)+(hoge4==0)+(hoge5==0)+(hoge6==0))==3){...}

明らかに後者の方がわかりやすいし速いと思うのだがどうよ。
829デフォルトの名無しさん:2001/06/22(金) 16:49
↑は>>818へのレスね。
830デフォルトの名無しさん:2001/06/22(金) 16:54
論理演算の返り値の型って何?
キャストとかしなくていいの?加算していいの?
831デフォルトの名無しさん:2001/06/22(金) 17:00
>>828
そういうことね。
わかりました。

後者の書き方も、ちと技巧に走りすぎてる気がするけど、
まぁ、好みの問題ってことですかね。
832デフォルトの名無しさん:2001/06/22(金) 17:01
>>830
Cでは論理演算の結果は整数型です。
833ななしさん:2001/06/22(金) 17:19
整数から論理値への変換

a = !(a == 0);
834!=:2001/06/22(金) 17:22
俺って人気ないの?
835デフォルトの名無しさん:2001/06/22(金) 17:22
>>831
>>828って普通だと思うけど。
836デフォルトの名無しさん:2001/06/22(金) 17:30
問題があるとすれば、
将来 真==1 でない言語に移植をすることになったときだろう。
BASICだと-1だから、ありえない話ではない。

趣味でやるものに関してはいいけど、
仕事でやるものだと避けた方が無難かもね。
まぁ、苦労するのは後任者だけどね(藁
837デフォルトの名無しさん:2001/06/22(金) 17:36
>>836
それはコメントに残しておけば十分じゃないか?
838デフォルトの名無しさん:2001/06/22(金) 17:38
if((hoge1==0?1:0)+
 (hoge2==0?1:0)+
 (hoge3==0?1:0)+
 (hoge4==0?1:0)+
 (hoge5==0?1:0)+
 (hoge6==0?1:0)==3){...}
型をちゃんとしたいなら↑と書くのがいいと思われ。
839デフォルトの名無しさん:2001/06/22(金) 17:40
>>836
論理値が1か0かってのは言語仕様だから、アーキテクチャが変化しても
関係ないよ。
840デフォルトの名無しさん:2001/06/22(金) 17:44
>>839
だから>>836はその言語仕様が違うものに移植する場合って言っているんじゃ……
841デフォルトの名無しさん:2001/06/22(金) 17:45
ifの条件にあんまり複雑な式を入れるのは好きじゃないんで
俺ならこう書く。

count=0;
if(hoge1==0) ++count;
if(hoge2==0) ++count;
if(hoge3==0) ++count;
if(hoge4==0) ++count;
if(hoge5==0) ++count;
if(count==3) {}
842デフォルトの名無しさん:2001/06/22(金) 18:01
俺も841派
またはそれぞれの条件結果をビット列に変換する。
843815:2001/06/22(金) 18:18
>>841
まあ、正論ですね。
俺が上司で、この中で仕事任すとしたら 814 さんかな。
844デフォルトの名無しさん:2001/06/22(金) 20:45
>>843
今回のけんは814じゃだめじゃん
845デフォルトの名無しさん:2001/06/23(土) 01:29
VCって、微妙にANSI準拠じゃないって聞いたよ?
どこら辺までANSI準拠なんだろ。

>>844
へ?なんで?
846デフォルトの名無しさん:2001/06/23(土) 01:47
>>845
ANSI準拠してないのはC++。Cに関しては完全準拠だよ。
847デフォルトの名無しさん:2001/06/23(土) 02:45
>>845
hoge5が無いから
848デフォルトの名無しさん:2001/06/23(土) 02:45
訂正。
5以降が無いから
849デフォルトの名無しさん:2001/06/23(土) 04:26
>>847
811 を見てから物を言え
811 を見てから物を言え
850デフォルトの名無しさん:2001/06/23(土) 04:29
明日の「教えてクン」を目指す、若き戦士達に以下の文章を捧げる。
日々精進し、パソコンヲタクどもの親切を蹂躙してやれ。

1.努力を放棄すること
  いやしくも「教えてクン」たるもの、努力をしてはならない。
 過去ログを読んだり、検索してはいけない。
 「英語は苦手なので、分かりません。」は、高く評価できる。
 辞書片手にマニュアルやReadMeを読むなど、決してしてはならない。
 他力本願と言われようと、自分で調べたり試行錯誤したりせず、
 他人の努力の結果を搾取するのが、正しい「教えてクン」である。
 また、「もう何が悪いのかサッパリ分かりません。」と言って
 ふてくされるのも有効である。「サッパリ」という単語が
 「やる気の無さ」を効果的に表現している。
 「原因を特定するには、何をすべきでしょうか?」と訊いてしまうと
 自己の積極性が現れてしまうので、「教えてクン」失格である。

2.情報を開示しないこと
  使用OSや、機器構成などの必須の情報を知らせてはならない。
 マザーボード名やBIOSのバージョンも同様だ。
 具体的なアプリ名やバージョンも隠蔽すべきだ。
 「DVD再生ソフト」のように曖昧に表記しておけばよい。
 反対に「前から欲しいと思っていた○○」とか「安売りされていた
 ○○」 等の「どうでもいい情報」は、どんどん書いてやれ。
  トラブルの場合は、状況を正確に記述してはならない。
 「なんだかうまく動きません。」とか「エラーが出ます。」等と
 具体的なことは何も書かないことが重要である。
 また、自分の試してみた事も具体的に書いてはいけない。
 考えられる組合せのマトリックスを作成し、状況を整理するなど
 もってのほかである。最悪の場合、それだけで問題が解決してしまう
 こともあるのだ。
 「いろいろやってみたけど、動きません。」が理想的だ。

3.答える人間のことを考えないこと
「教えてクン」は、孤高の戦士である。相手のことを考えるようでは
 教えてクン失格というものだ。
 以下のような行動が、望ましい。
  初心者であることを高らかに宣言し、初心者向けの丁寧で
 分かりやすい説明を強要する。専門用語の使用を禁じておくと
 さらに効果的である。簡潔な説明を禁じられたヲタクどもは、
 同じ内容を説明するのに、何倍もの労力を強いられる。
 自分は努力せず、相手には多大な努力をさせることこそが
 「教えてクン」の真骨頂である。
  マルチポストも有効である。そのBBSを信用していないことを
 明確に示せる。「どうせ、お前らじゃ分からんだろう。」という
 意志表示として高く評価できる。もちろんマルチポストの非礼を
 あらかじめ詫びてはならない。それでは、単なる「急いでいる人」
 になってしまう。それは、教えてクンではない。
  質問のタイトルは、「教えてください。」で良い。
 タイトルを読んだだけでは「何に関する質問」か全く分からない。
 そういう努力は、答える人間にさせれば良いのだ。
 とにかく、答える人間が答えやすいように気を使って質問しては
 ならない。傲慢で不遜な態度が必須である。
 「聞きたいことがあります。」など、プロの仕事であろう。
851デフォルトの名無しさん:2001/06/23(土) 04:36
コピペ。

URLは失念したけど、水野スレにURLが貼ってあった。
852デフォルトの名無しさん:2001/06/23(土) 07:28
>>850
これはこれで面白い冗談だが、笑えることに実際にそれ級の奴が実在した。
一緒に仕事していたが、とても使える奴じゃなかった。
853教えて君:2001/06/23(土) 08:09
static char *p = "ABC";
static char muki = 'D';
p = &muki; //★
wsprintf( str, "%s", p );

この場合の表示結果はDとなります。
僕が分からないのはp("ABC")に'D'を接続したいのです。
//★の部分を色々いじったのですがうまくいきません。
オセーテ。
854デフォルトの名無しさん:2001/06/23(土) 08:18
接続ってのがよくわかんないけど、ABCDってしたいってことかな。
p = &muki;だと、単に'D'の文字が書いてあるアドレスを
pに代入しているだけだから、そうはなりません。

多分根本的にポインタがわかってないと思うんで、
今月のCマガを買って読むのが良いと思います。
ポインタ特集なんで。

p = &muki;の行を取り払って、
wsprintf(str,"%s%c",p,muki);
で動くとは思うけどね。
理由は自分で調べてくらっさい。頑張れ。
855教えて君:2001/06/23(土) 09:46
しつこいのは承知…

static char *p = "A";
static char muki = 'B';
p = &muki; //★
wsprintf( str, "%s", p );

この結果Bだけが表示されるのはpの先頭アドレスにAが入っていて、
そこにBを代入した結果というのは分かるのです。

つまりpにA、Bを代入し、表示結果ABとするためには
pの先頭アドレスにA、その次のアドレスにBを代入する必要がありますね。

しかし、★の部分でそのAの次のアドレスを指定する方法が分からないのです。
(試してみた例)
@ p[1] = &muki; //アドレスを配列状に意識したつもり
A p ++; p = &muki; //アドレスを進めてみたつもり

とりあえず、僕がポインタの機能をよく理解していないのですが(ネットで検索中)、
今、作りかけの関数だけ作ってしまいたいので上の例@、Aではダメな理由、
または正解を教えていただけないでしょうか?

あとCマガとやらも近くの書店で漁ってみます。
856デフォルトの名無しさん:2001/06/23(土) 10:06
>>855
君、根本的なところで理解できてないよ。
その問題の解決策を教えたところで根本的な解決にはならないから教えるのは嫌だ。
ちゃんと本を読んで出直してきてください。
857デフォルトの名無しさん:2001/06/23(土) 10:12
>>855
領域を確保しないと、アドレスはつかえません。
「場所」が無ければ住所もない、というようなことです。
p は 'A', '\0' という文字2個分の領域の先頭アドレスを指しています。
そこにさらに一文字つなげるための領域は存在しませんから、
つなげることは出来ません。

ポインタについてもう少し理解してもらわないと、話が通じないので
これ以上の説明はできません。
858教えて君:2001/06/23(土) 10:24
>857
メモリ確保ですね。
先程、ネットでチラッと見てました。
その一言で十分です。
アリガタウ。
859デフォルトの名無しさん:2001/06/23(土) 12:10
>>858
ネットでさがすより入門書買えよ
ネットの情報よりはるかにわかりやすくて、
すくなくともネットの情報より正確に書いてあるぞ。
860デフォルトの名無しさん:2001/06/23(土) 13:26
>>857
ネット上の情報は脱初心者以上になってから役立つものだよ。
もし初心者ページがあったとしてもそれは
ド初心者が自分の勉強結果を書いてるようなページばっかだから
何の役にも立たないよ(うそ、おおげさ、まぎらわしいのが多くて)

初心者を抜け出たらどんどんネットを活用するべきだが・・・
861デフォルトの名無しさん:2001/06/23(土) 14:19
そうそう。自分で情報の真贋を見極められないうちはネットに頼るのは危険。
役に立つ情報の数倍の有害な情報が溢れているからね。
862857:2001/06/23(土) 14:21
>>860
おれ?
863デフォルトの名無しさん:2001/06/23(土) 14:22
static LOGFONT NEAR m_lfDefPrintFont;

クラスのなかで宣言されていたのですが
NEARって何ですか?MSDNのキーワードにはいってなかったんですが
864860:2001/06/23(土) 14:52
>>862
ゴメソ
>>858
865デフォルトの名無しさん:2001/06/23(土) 15:06
>>863
昔のアーキテクチャーを引きずった残滓なんで気にするな。
866863:2001/06/23(土) 16:26
>>865
宣言に加えても意味はないと考えていいのでしょうか?
867VC初心者:2001/06/23(土) 16:28
自分のパソコン上のプロジェクトファイルは、当然VCで開けますが、
ネットワーク上のプロジェクトファイルを開こうとすると、
「パスが見つかりません」とかでて、開けないんですね。
なんだか、オバカですね。

VCはじめたばかりの自分がファイルを開くプログラム作ったんだけど
どこのファイルでも開けたのに。。。。
VCってなんなんでしょうか?
868デフォルトの名無しさん:2001/06/23(土) 16:32
>>867
ファイルシステムのレイヤーについてもっと勉強すれば理由はわかるよ。
869デフォルトの名無しさん:2001/06/23(土) 16:38
>>846
トライグラフに関して、ANSI仕様を厳密に満たしていたっけ?
うかつに完全とかいわない方がいいよ。
870デフォルトの名無しさん:2001/06/23(土) 18:30
>>863
WinDef.h
を覗いてみてにょ。
空宣言されていうんだにょ。
871863:2001/06/23(土) 19:11
>>870
情報ありがとうございます。
覗いてみてみます。
872867:2001/06/24(日) 01:56
私が得をする情報をタダでください。
それによって私は大変な恩恵に預かりますが、あなたには何の
メリットもありません。
でも、いいじゃないですか? どうせ情報なんてタダでしょ?

とても困っているので、情報を知っている人は私を助けなければ
いけません。これは義務です。
初心者にも分かるように説明してください。
私は、ごく普通の人間なので、パソコンのわけの分からない知識は
ありません。勉強するつもりもありません。時間の無駄です。
検索するなんて面倒です。どうしてそんな面倒な事するの?
知ってる人に聞けばいいじゃん。どうせタダだし。

マルチとか質問スレというのはヲタクのルールです。
私は普通の人間なのでヲタクのルールなど知ったこっちゃありません。
早く教えてください!
早く教えろ!
早く!
これだけ言ってもまだ教えねーのか?!
873デフォルトの名無しさん:2001/06/24(日) 02:52
>>867
>VCってなんなんでしょうか?
MS製品のC++コンパイラ
874デフォルトの名無しさん:2001/06/24(日) 03:52
>>872
ただの基地外か。
875デフォルトの名無しさん:2001/06/24(日) 07:20
性格
無気力、無定見、無感動の三拍子が揃ったタイプです。救いようが無い性格とも云えますし、
深い悩みも苦労も無い、幸せな人と云う事も出来ます。
山谷や釜ヶ崎に屯(たむろ)する浮浪者の平均的タイプと云えるかも知れません。
こうなった原因は、知恵遅れや生まれつきの異常性格者の場合も有りましょうし、
アル中、ギャンブル狂い、色狂いなど自業自得の躓づきに、
失恋、離婚、失業、倒産、裏切り、犯罪などが絡んで来て自棄になり、無為無策の日々を過ごす内に、
性格の荒癈が徐々に進んで来た結果と云う場合の有りましょう。とにかく生きる目的が何も無く、
その日、その日、三度の飯に在り付ければ、周りで人が死んで行こうが、世の中がどうなって行こうが、
余り神経を動かされる事の無いタイプと云う事が出来ます。

恋愛・結婚
日常の意識の中で、
一花咲かせて見ようと云う気になるか
プライドが復活するか
競争心が目覚めて来るか
しなければ現在の状態では、恋愛も結婚も無縁でしょう。

職業適性
真剣に働く気が出て来てからの話でしょう。

対人関係
動物的行動による刹那、刹那の対人関係が殆どだと思います。
衝動的に、人に危害を加えたり、加えられたりしない用心が必要でしょうし、
一日も早く、禽獣的心境から脱する事も必要でしょう。
876コンボボックスについて:2001/06/24(日) 11:41
コンボボックスの使い方について教えてください。

CString name[] = {
"a", "b", "c", "d"
};

int i;
m_combo.ResetContent(); // 全項目削除
for(i = 0; i < 4; i++){ // コンボボックスに文字列を挿入
m_combo.InsertString(-1, name[i]);
}

※m_comboは、コンボボックスのメンバ変数です。

このようにして、コンボボックスにリストを表示させることはできました。

例えばコンボボックスのリストにある「a」を選択しボタンを押すと、「a'」というメッセージを表示させたいとします。
質問は、『「a」を選択したとき』の部分をどのようにプログラムを組めばいいのでしょうか?
教えてください。
よろしくお願いします。
877デフォルトの名無しさん:2001/06/24(日) 11:55
通常使うプリンタを切り替えるにはどうしたらいいですか?
878デフォルトの名無しさん:2001/06/24(日) 12:41
CEditViewクラスで一行に入力できる文字数を設定することは
できるのでしょうか?
879デフォルトの名無しさん:2001/06/24(日) 13:03
>>876
CBM_SELENDOK
880kkIP1A0019.hkd.mesh.ad.jp:2001/06/26(火) 01:32
main()
{

}
881デフォルトの名無しさん:2001/06/26(火) 19:08
画像処理での、「輪郭線(境界線)追跡」を行うプログラムが書けません。
誰か教えて下さい。お願いします。
882デフォルトの名無しさん:2001/06/26(火) 23:05
上司にごめんなさい僕できないです会社やめます
といっておけ。

マルチポストするな。
883デフォルトの名無しさん:2001/06/27(水) 06:44
つまーん無いこと聞いていい?
VK_1とかのKeyEventってなんかインクルードしないといけないの?
定義されてないって怒られちゃうんだけど。
VK_LEFTとかは大丈夫なのにさー。
884デフォルトの名無しさん:2001/06/27(水) 08:28
>>883
VK_NUMPAD1 ぢゃないの?ハズしてたらスマソ。
885デフォルトの名無しさん:2001/06/27(水) 11:33
お勧めの参考書ってあります?
886883:2001/06/27(水) 11:51
>>884
ほんとだ、それでテンキーの数字キー取れるね。けどさ、VCのヘルプの
「KeyEvent クラスのメンバ」ってページにVK_1書かれてるんだけど、
実装するとエラーになっちゃうんだよ。同様にVK_Aとかも。
だれか使ってる人いたら情報ください。

>>885
ここいいよ。C++ここで3日で覚えた。Cが出来ればって前提だけどね。
http://users-web1.iac.ne.jp/~yasutaka/c_lang/
参考書はオライリーがお勧めだよ。C++のは見たこと無いんだけど。
887デフォルトの名無しさん:2001/06/27(水) 14:20
>>883
よくわからんが、KeyEvent クラスってのはJAVAの話でないの?
888デフォルトの名無しさん:2001/06/27(水) 14:23
>>886
VK_Aとかの定義をヘッダファイルで見てみたら、それが定義されてなくても
なんかいい感じにソースが書けることがわかるから見てみれ。
889デフォルトの名無しさん:2001/06/27(水) 14:24
>>886
だから猫のC++はやめとけっての…
890デフォルトの名無しさん:2001/06/27(水) 16:45
>>881
くるくる回すんだよ。
891名無し募集中。。。:2001/06/27(水) 22:48
VC++にはスタンダード、プロフェッショナル、エンタープライズの3エディション
が有りますが、スタンダードとプロフェッショナルとどちらがお勧めでしょうか?

当方、まだ素人でサンデープログラマを目指すものです。作るにしても
デスクトップアクセサリー程度と考えています。
892デフォルトの名無しさん:2001/06/28(木) 00:42
>>891
どんな目的だろうと、スタンダードを選択してもいいことはあまり無いよ。
893883:2001/06/28(木) 10:29
>>888
おお!バッチリだ。
スマソ、最初にヘダー見るべきだった。初心者だ。
894デフォルトの名無しさん:2001/06/28(木) 10:42
>>892
安い
895デフォルトの名無しさん:2001/06/28(木) 10:52
MFCをつかわずにウインドウズのプログラムは作れるんでしょうか?
作れないですよね?
896デフォルトの名無しさん:2001/06/28(木) 11:42
>>895その伝だとボーランドはどうなるんだ?
897デフォルトの名無しさん:2001/06/28(木) 12:10
>>894
ああ、プロフェッショナルよりは安いよ。
買っても何もできないけど。

>>895
それは嘘。
898デフォルトの名無しさん:2001/06/28(木) 12:16
クラスライブラリ使わなくてもウィンドウぐらい出せる。
899デフォルトの名無しさん:2001/06/28(木) 12:42
>>897
何もできないってのも嘘だとおもうよ。
普通の人にとってのメリットって最適化と
プロファイリングぐらいだと思うけど。
プロファイリングにしたって普通の人は
あまり使わないけど。
900デフォルトの名無しさん:2001/06/28(木) 12:51
>>899
スタティックリンクと再配布もできなかったはず。
901デフォルトの名無しさん:2001/06/28(木) 13:56
再配布もだめだっけ?
あと、WTLのAppWizardって組み込めますか?
902899:2001/06/28(木) 14:33
>>900
再配布はオッケーになったはずだよ(VC6.0で)
スタティックリンクはできなかったと思うけど、それほど
問題だとも思えない。どうせ今買っても、すぐに新しいバージョン
がでるんだし、それまでの勉強用と思えば。
903デフォルトの名無しさん:2001/06/28(木) 14:42
すんません、
VC++再インストールしたら何故か
[ビルド]の[プロファイル]がDisableになってて
使えなくなってしまいました。
/profileオプション付けても
そもそも項目が選択できないので無駄な様子

何処かに設定ってあるんでしょうか?
今まで特になにも考えんずとも使えたので
設定方法がさっぱり分かりません、
MSDN引いてもそんな症状に付いて書いてある項目見つからなかった

復活の方法をどなたかご存知でしたら教えて下さい。
904903 :2001/06/28(木) 14:45
バージョン書き忘れてました、Ver6です。
スタンダードだから使えないってオチではありません。
905891:2001/06/28(木) 15:50
いろいろご意見ありがとうございます。
近く新バージョンがでるとのことで、待ってみるのも手かなと。
それにしても、なにもできないんじゃあスタンダードを選ぶ意味はないですね。
私にとっては価格の問題が一番大きいので、バージョン落ちのジャンク等も探してみます。
906デフォルトの名無しさん:2001/06/28(木) 17:20
>>905
だから何もできないなんてうそだって。
個人で使っている人でプロフェッショナルエディションの機能を
使い切っている人なんていないと思うけど。まして素人なら。
でもとりあえず、BorlandC++でがんばってみたら。タダだし。
907デフォルトの名無しさん:2001/06/28(木) 17:25

BorlandC++って今ただなの
どこから
落とすのか教えて下せ-
908デフォルトの名無しさん:2001/06/28(木) 17:41
Cマガに付いてるYO!
買うしかないYO!!
909891:2001/06/28(木) 21:04
>>906
ご教授ありがとうございます。基礎学習のためBorlandC++
を使ってみます。DLはボーランドから出来そうですね。
910デフォルトの名無しさん:2001/06/28(木) 23:28
スレ違い、板違いかもしれませんが。
MSDN onlineを全部ダウンロードしておいて
オフラインの時に見たいのですけどどうしたらいいでしょうか?
911デフォルトの名無しさん:2001/06/29(金) 00:12
ファイル→名前を付けて保存
912デフォルトの名無しさん:2001/06/29(金) 19:30
->って何?
913デフォルトの名無しさん:2001/06/29(金) 19:40
>>912
演算子。
914デフォルトの名無しさん:2001/06/29(金) 21:29
>>911
保存できないのがあるよ。ソースも見れないの。
CWndのところとか。
915デフォルトの名無しさん:2001/06/29(金) 22:57
void C***View::OnContextMenu(CWnd* pWnd, CPoint point)
{
CMenu menu;
menu.LoadMenu(IDR_POPPU_MAIN);
CMenu *pMenu=menu.GetSubMenu(1);
pMenu->TrackPopupMenu(TPM_CENTERALIGN,point.x,point.y,AfxGetMainWnd());


}
なしてこれで動かない?
916デフォルトの名無しさん:2001/06/29(金) 22:57
↑動く事は動くんだけど、
右クリックすると不正な処理d。
917デフォルトの名無しさん:2001/06/29(金) 23:20
>>915
1)IDR_POPPU_MAINが無い
2)IDR_POPPU_MAINに2番目の項目が無い(GetSubMenu(1))
3)IDR_POPPU_MAINの2番目の項目がポップアップでない
どれか
918デフォルトの名無しさん:2001/06/29(金) 23:25
ぽっぷぷ〜
919eij:2001/07/02(月) 08:46
お世話になります。WIN98 VC6 MFC で組んでおります。

仮想画面にビットマップを転送しておいて、(再)描画時
に仮想画面から通常画面に転送するといったことを
しております。
ここで、"PatBlt"を使った直後、残メモリがちょうど画像の
サイズ分減少します。"PatBlt"をコメントで抜いた場合は
"BitBlt"の直後に同じように残メモリが減少します。
最初の表示時だけで、再描画の際には起こりません。
画像のサイズには関係なく起こる症状です。
何が原因でこのような症状になるのかご教示いただければ幸いです。

なお、残メモリは、"GlobalMemoryStatus"api関数で調べております。

以上よろしくお願いいたします。
920デフォルトの名無しさん:2001/07/02(月) 15:09
>>919

初期:PatBlt→仮想画面
描画時:仮想画面→BitBlt
で残メモリが減少し続けるってこと? PatBlt のコメントアウトとかの意味がよーワカラン。
921eij:2001/07/03(火) 08:35
>>920

初期:PatBlt→仮想画面、さらにBitBlt→仮想画面としてるんだけど。
で、再描画時:仮想画面→BitBltとしてます。

このときPatBltで起こります。PatBltを行わなかったらBitBltで起きます。
つまり仮想画面に何かデータを転送した時点で起こります。

VC++相談室3の方にも振ってみようと思います。
922デフォルトの名無しさん:2001/07/03(火) 09:38
>>921
コメントで抜くって意味がわかんないんだってバ。
それにメモリが減るって具体的にどのくらい減ったの?
923eij:2001/07/03(火) 10:49
>922 スマソ。コメントで抜くってのは、単なるコメントアウト。
PatBltはなくてもいい処理ということで。
メモリに関しては、画像のサイズ分。CreateDIBitmapを使ってる
んだけど、このときに減った量と同じ量がPatBlt(or BitBlt)で
減る。
924eij:2001/07/03(火) 13:21
>>919-923 の件ですが、以降VC++相談室3でお願いします。
すんません。あっちの方が人が多そうなので。

VC++相談室3
http://piza.2ch.net/test/read.cgi?bbs=tech&key=993186053
925デフォルトの名無しさん:2001/07/03(火) 21:06
□□□VC 初心者質問スレ 2□□□
http://piza.2ch.net/test/read.cgi?bbs=tech&key=994129650

----------------------------------------------------------------------
----------------------------------------------------------------------
----------------------------------------------------------------------
----------------------------------------------------------------------
926超初心者:2001/07/04(水) 10:20
どうか教えて下さい。
VC++6.0SP5でODBCからデータ拾って印刷するというプログラムなんですが、
ビルドして実行すると「Debug Assertion Failed!」というメッセージが出てしまいます。
"strex.cpp"がどうたらとか書いてあるんですが意味が全くわからないのです。

再現不可能なエラーかもしれないんで申し訳ないんですけど、
どなたかご存知の方、ご教授願います。

ちなみに関係ないかもしれませんが、OSはWinNT4.0SP6です。
927デフォルトの名無しさん:2001/07/04(水) 10:33
>>926
CString関係で何かの扱い方を間違えてる。
文字列の長さだとか、インデックス値とかチェックしてみるべし
928926:2001/07/04(水) 10:34
>>927
ありがとうございます!
調べてみます。
929デフォルトの名無しさん:2001/07/04(水) 12:14
>>928
ちゅ〜か、デバッガの使い方覚えてくださいね。
停止した部分から判断できるから
930デフォルトの名無しさん:2001/07/04(水) 12:24
>>926-929
ちゅ〜か、新スレ立ってんだからそっち逝けよ
□□□VC 初心者質問スレ 2□□□
http://piza.2ch.net/test/read.cgi?bbs=tech&key=994129650
931デフォルトの名無しさん:2001/07/04(水) 12:30
>>930
誰も書いてなくて寂しいんだもん(ぉ
932デフォルトの名無しさん:2001/07/04(水) 14:58
心のやさしい方、お願いします。

CViewをWS_CLIPCHILDRENでつくって、
そのビューにアイコンを貼り付けます。
で、そのときはアイコンの透明個所は透明になっているんだけど、
ビューをBitBltとかで書き換えたときは、アイコンの個所が
BitBltされないので、下が透けているようになりません。

何か良い方法はないでしょうか?
933デフォルトの名無しさん:2001/07/04(水) 15:29
VCではActiveXって作れないんですよね。VBで作るしかないの?
934トイレから暇つぶし:2001/07/04(水) 15:31
そろそろいっぱいになってきたのであたらしいスレをたてました。
以後はそちらで質問してください。

□□□VC 初心者質問スレ 2□□□
http://www.2ch.net/2ch.html
935デフォルトの名無しさん:2001/07/04(水) 15:33
936デフォルトの名無しさん:2001/07/04(水) 15:34
>>934 リンク先
おいおい
937デフォルトの名無しさん:2001/07/04(水) 15:38
938935:2001/07/04(水) 15:42
2分違いで重複スレ立てられちってたな
939935:2001/07/04(水) 15:51
□□□VC 初心者質問スレ 2□□□
□□□VC++初心者質問スレ□□□
□□VC++初心者質問スレ2□□

誰かテキトーにまとめといて、ワシャもう知らん
940デフォルトの名無しさん
昨日からあるこっちが本スレ。続きはこちらで。

□□□VC 初心者質問スレ 2□□□
http://piza.2ch.net/test/read.cgi?bbs=tech&key=994129650