( ゚Д゚)ノ ギコ猫のプログラム相談室part5
- 1 :新米ギコ@開店休業 :2001/01/26(金) 23:59
- ギコ猫相談室 for プログラム技術板
∧∧
¶( ゚Д゚) <、、、ここで聞いてからでも遅くないんだな
ゝ|し |┐
(_|./ |┘
U U
前スレ http://piza.2ch.net/test/read.cgi?bbs=tech&key=971446820
- 2 :hage :2001/01/27(土) 00:29
- madayattetanone
- 3 :優しい名無しさん :2001/01/27(土) 22:09
- NEC PC-98のハードウェア的なことで質問なんです。
NEC PC-98, Win95でWin32 APIプログラミングをしています。
「カナ」キーのWM_KEYUP(押していたキーを離した)メッセージを拾おうとしているのですが、うまくいきません。
「カナ」キーを押し始めるとWM_KEYDOWNと一緒にWM_KEYUPも飛んできます。
実際に「カナ」キーを離したときは、何のメッセージも飛んできません。
またGetKeyState()のようなキーの押下状態を調べる関数もうまく動きませんでした。
PC-98で「カナ」キーを離したタイミングを調べることは無理なんでしょうか?
- 4 :デフォルトの名無しさん :2001/01/28(日) 00:08
- また、一部のNEC PC-98キーボードでは、DIK_CAPSLOCKおよび
DIK_KANAキーは、トグルボタンでありプッシュボタンではない
ことに注意すること。これらのキーは、最初に押されたときに
ダウンイベントを生成し、2回目に押されたときにアップイベン
トを生成する。
MSDNライブラリより。たぶん無理なのでは。
- 5 :デフォルトの名無しさん :2001/01/28(日) 00:17
- ちょい補足。つまり2さんの使ってるキーボードが上記の一部のNEC PC-98
キーボードで、「カナ」キーは一度目に押されたときにダウンイベントを
発生し、2回目に押されたときにアップイベントを発生する。3回目以
降は1回目に戻るという仕様のキーボードなのでは?
「カナ」キーがトグルボタンでない98で一度プログラムをテストされてみては
どうでしょうか。
- 6 :MSME :2001/01/28(日) 00:22
- プログラミングをしていて
一番役にたった知識を教えてください
ソートアルゴリズム、コンパイラ理論、
微積分、古典物理、漢字検定、などなど・・・
- 7 :デフォルトの名無しさん :2001/01/28(日) 00:24
- UNIXの passwd のような対話形式のコマンドでプロンプトに
文字を入力させたいのですが、
==================================
system("/usr/bin/passwd user1");
fputs("OLDPASSWD", stdin);
fputs("NEWPASSWD", stdin);
fputs("NEWPASSWD", stdin);
==================================
としても、初めの変更前のパスワードを入力するプロンプトで
止まってしまい、うまく逝きません。
どなたか些細なことでもいいのでお知恵をお貸しください!
- 8 :MSME :2001/01/28(日) 00:24
- できれば具体的にどのような場面で役にたったかも
おねがいします
- 9 :デフォルトの名無しさん :2001/01/28(日) 00:58
- >>7
何でstdinにfputsだ?
- 10 :7 :2001/01/28(日) 01:18
- >9
system関数で実行されたコマンドの入出力は標準入出力でいいんですよね?
- 11 :デフォルトの名無しさん :2001/01/28(日) 01:42
- >>10
stdout
- 12 :デフォルトの名無しさん :2001/01/28(日) 01:46
system 関数は実行されたコマンドが
終了するまで戻りません。
あと、標準入出力に関しても誤解があります。
- 13 :いつでもどこでも名無しさん :2001/01/28(日) 02:36
- WINAPI32でマウスカーソルの動きを常に捉えるにはどうしたらいいですか?
普通にメッセージをフックしてWM_MOUCEMOVEではウィンドウ内の動きしか捉えられません。
使用言語はC++Builder5です。
最近やっとこの辺が判りかけてきた者ですが、よろしくおねがいします。
- 14 :3 :2001/01/28(日) 04:25
- >>4,5
レスどうも。
>>キーボードで、「カナ」キーは一度目に押されたときにダウンイベントを
>>発生し、2回目に押されたときにアップイベントを発生する。3回目以
>>降は1回目に戻るという仕様のキーボードなのでは?
いろいろ試してみたのですが、↑の可能性は大です。
キーボードの仕様がそうなら、ソフトウェアでKEYUPを捉えるのは無理ですね。
とても参考になりました。
ありがとうございました。
- 15 :デフォルトの名無しさん :2001/01/28(日) 04:48
- >>13
・ドラッグしながらウィンドウの外にマウスが出るようなときは、マウスキャプチャー(SetCapture())。
・マウスの座標が知りたければGetCursorPos()。この関数と一緒に無限ループやタイマーを使えば、動的にマウスの動きを捉えることができる。
・マウスに関する全てのメッセージを捉えたければ、システムフック(SetWindowsHookEx())。一番便利だけど、DLLを作る必要がある。
猫でも〜
http://hp.vector.co.jp/authors/VA010523/sdk2/sdk_162.htm
- 16 :デフォルトの名無しさん :2001/01/28(日) 07:16
- >>13
動き(座標)を取得するだけならタイマーの方が楽だよ。
SetTimer(hwnd , ID , ms , NULL);
を使えば ms 後に hwnd に
WM_TIMER
が送られてくる。
そうしたら GetCursorPos(LPPOINT) を使って座標をとる。
- 17 :16 :2001/01/28(日) 07:18
- よく読んだら15にタイマーのこと書いてあった。
寝起きでボケてるのでゴメン。
- 18 :17 :2001/01/28(日) 07:43
- レスを全部読む 最新レス100 レス1−100 掲示板のトップへ リロード
- 19 :>18 :2001/01/28(日) 07:49
- ってやれよ!
その書き方じゃ俺が18書いたみたいじゃん。
18は17じゃないよ。
- 20 :13 :2001/01/28(日) 10:52
- >>15,>>13
ありがとうございました。
何を作りたかったのかというと、デスクトップ上でマウスが特定の領域に行ったらポップアップする常駐型のアプリを作りたかったんです。
方法としては、システムをフックするしかないようですね。
難しいですが、ちょっとがんばってみます。
- 21 :7 :2001/01/28(日) 12:23
- 勉強不足でした。
出直してきます。
- 22 :デフォルトの名無しさん :2001/01/28(日) 15:20
- >>7
プログラムに対して入力を流し込むだけなら普通はpopen(3)が
一番簡単で、
fp = popen("/usr/bin/more", "w");
とすると、fpとmoreの標準入力が結合されて、fpへ書き込んだ
データはmoreに渡されることになる。
ただし、passwdプログラムの場合は、ユーザ入力を標準入力から
読んでいないので、こんなやり方では駄目。
大抵のUNIX実装ではAT&Tの第7版の時代から存在するgetpass(3)という
ライブラリ関数が使われていると思われるが、これは自分で
/dev/ttyをopenし、端末をNOECHOに設定してユーザ入力を読み込むので、
標準入力にデータを流し込んでも意味がないのです。
- 23 :7 :2001/01/28(日) 16:15
- >22
ありがとうございます。
非常に参考になります。
どうしても passwd をプログラムから実行させたいのでがんばってみます。
- 24 :24 :2001/01/28(日) 23:46
- 文字列の変数名の前によくつける
lpsz
って何の略なのでしょうか?
- 25 :デフォルトの名無しさん :2001/01/28(日) 23:58
- long pointer string zero
- 26 :24 :2001/01/29(月) 00:05
- >>25
ありがとうございます
ところで
long pointer string
はよしとして、なぜ
zero
なのでしょうか?
- 27 :デフォルトの名無しさん :2001/01/29(月) 00:07
- null terminated 〜 は何でしたっけ?
- 28 :デフォルトの名無しさん :2001/01/29(月) 01:56
- >>26
null文字(=zero)で終わるから
- 29 :デフォルトの名無しさん :2001/01/29(月) 01:57
- >23
無理だと思いますが。
- 30 :デフォルトの名無しさん :2001/01/29(月) 02:18
- C++を使ってプログラミングをする時にお勧めのエディタって
どんなものが有りますか?
- 31 :>30 :2001/01/29(月) 02:28
- Visual Studio(Visual C++の開発環境)がいいんじゃない。
利点はエディタがC++を「知って」いるので、
関数の引数リストを表示したり、コードを保管したりしてくれること。
これはVC以外のコンパイラを使ってるときにも、それなりに機能する。
あと、WZのアウトライン機能が便利。
ソースの構造クラス・関数などの構造をツリー表示してくれるので。
- 32 :デフォルトの名無しさん :2001/01/29(月) 23:33
- ニセでもかまわんから、ギコで答えてくれ。頼む…。
- 33 :デフォルトの名無しさん :2001/01/30(火) 00:11
- ∧∧
¶( ゚Д゚) <呼んだか?
ゝ|し |┐
(_|./ |┘
U U
- 34 :新米ギコ@島流し中 :2001/01/30(火) 01:03
- ∧∧ *
¶( ゚Д゚) / < >>6 コンパイラのことはことが少しはわかっているとコンパイルエラー
ゝ| つ●) で躓くことも少なくなるぞ!
(.| | #つーか、CS関係のことなら知ってて損は無いぞ
U U
∧∧ *
¶( ゚Д゚) / < >>30 notepadでガリガリ書け!
ゝ| つ●)
(.| |
U U
∧∧ *
¶( ゚Д゚) / < >>32 モナー板にはたくさんギコとかいるぞ
ゝ| つ●)
(.| |
U U
- 35 :デフォルトの名無しさん :2001/01/30(火) 03:04
- >>30
edlinでガリガリ書け!
- 36 :デフォルトの名無しさん :2001/01/30(火) 03:07
- type con > とか。
- 37 :デフォルトの名無しさん :2001/01/30(火) 03:07
- >>30
type conでガリガリ書け!
100%の正確さで入力できるぞ。
- 38 :デフォルトの名無しさん :2001/01/30(火) 03:08
- すごい!かぶった!!
- 39 :デフォルトの名無しさん :2001/01/30(火) 12:27
- C/S三階層ってなに?
- 40 :デフォルトの名無しさん :2001/01/30(火) 23:03
- VC++6.0を使用してますが、全角文字ってどうやって扱えばいいんでしょうか。
具体的には、*s="あいうえお"、みたいな文字列があったとして、
*(s+3)で’う’になる、という感じのことをやりたいです。
ヘルプを見たけど、Unicodeがどうたらこうたらとかばかりでさっぱりわかりませんでした。
- 41 :デフォルトの名無しさん :2001/01/30(火) 23:19
- > *s = "あいうえお";
って s はなんだー?、char *sか???
その代入式を見る限り、char**sのようだが、それで*(s+3)で'う'?
よくわからんが、wchar_t*s; s = "あいうえお"L; で
*(s+3)=='う'L だな。これで本当に意図しているものかは40しかしらないだろう。
- 42 :デフォルトの名無しさん :2001/01/30(火) 23:33
- しーえす・さんかいそう【C/S 三階層】
システム開発を要求するクライアントとシステムを供給(サーブ)するプログラマ。
および文字には現れない間に入る営業の三つの階層によって構成される最下層のプログラマをいじめる仕組み。
ものすごい大雑把な希望的システム要求を「ほいほいできますよ〜」と安請け合いする営業。それを唯一実現不能と知っているプログラマが泣く泣くクライアントに実現可能な範囲の仕様をもってお詫びに行く。理解あるクライアントはここでわかってくれるが、契約を元にガンと引かない、さらには営業経由で怒なりにくる困ったクライアントもいるため、最下層プログラマの胃はガストールでも治療不能になる。
- 43 :デフォルトの名無しさん :2001/01/31(水) 01:56
- >42
ご愁傷様です。
明日もガストールで頑張ってください。
- 44 :デフォルトの名無しさん :2001/01/31(水) 02:11
- >40
全角文字しかないのであればキャスト変換(WORD*)でできる。
半角が混ざるなら自分で文字の判定するか専用の文字列クラスを使うか。
専用文字列クラスはないから自作する。(Unicode環境ならCstringが使える)
- 45 :デフォルトの名無しさん :2001/01/31(水) 16:40
- ちょっと、質問させてください
Unix Cで
dbopen()
関数を使いたいのですが
ライブラリは何を含めれば良いのでしょう?
ヘッダファイル定義は下の通りにしたのですが
コンパイラ(cc)に関数が見つからないと怒られてしまうので・・・
環境:Tru64Unix(チューンナップされている可能性あり)
#include <sys/types.h>
#include <limits.h>
#include <db.h>
#include <fcntl.h>
#include <sys/stat.h>
- 46 :デフォルトの名無しさん :2001/01/31(水) 16:55
- >>45
なんか初めて見た>Tru64Unix。
企業?大学?
なんかしらんがカックイイ。
- 47 :40 :2001/01/31(水) 19:13
- >>41 >>44
説明が下手ですいませんでした。
とりあえず文字列の前にLをつけて、直接L"あいうえお"と代入してみたらいけました。
Lをつけないといけなかったんですね。
次はファイルから全角文字列を入力したいんですが、fgetwsでやったらうまく出来ませんでした。
fgetsでchar型でなら普通に入力できたので、これをwchar_t型に変換すればいいかともおもったのですが
この方法もだめでした。キャストをいろいろやってみたんですがどうも上手くいかないです。
- 48 :DigitalUNIX 4.0 だけど :2001/01/31(水) 19:21
- /usr/lib/libdb.a とゆーモロなファイルがありますが...
% nm /usr/lib/libdb.a | grep dbopen
0000000000000000 T dbopen
%
- 49 :デフォルトの名無しさん :2001/01/31(水) 20:04
- Z80-SIOとPC間の通信なんですけど、
Z80からスペースを送り、PCでZ80のBaund Rateを
自動的に検出するにはどうしたらよいでしょうか?
受信したら次の受信が有るまでカウント。
で、時間を表示。を繰り返す、だと誤差が大きくなりそうな気がするんですが?
- 50 :デフォルトの名無しさん :2001/01/31(水) 21:02
- とりあえず、調歩同期ということでいいですか?
スペースって、ASCIIコード0x20のスペース?
それとも信号レベルのスペース?
まあ、どちらでも、正しく受信できるまでbit rate変えながら受信するというのはどうよ?
信号スペースなら高いレートからだんだん下げて、
ストップビットが正しく検出できるまで
すなわちフレーミングエラーが出なくなるまで下げればいいと、漠然に思う。
それと調歩同期だと、キャラクタ間隔は任意なので受信して次の受信までをカウントって
意味がないと思います。
最後に、Z80-SIOとPC間の通信でbaud rateは無いと思うぞ。
bit rateだろ。(変調していないのに変調速度のbaudを使うのは変)
- 51 :49 :2001/01/31(水) 21:22
- >>50
>Z80-SIOとPC間の通信でbaud rateは無いと思うぞ。
そうなんですか!?もらったテキストにはそう書いてあったので・・・。
しかもBaudとBitの違いは今調べてる所だったりする(汗
スペースはASCIIコード0x20のスペースです。
間隔はZ80にロードさせるプログラムで制御できるから〜みたいなことを言われたのですが、
伝送速度=1200*n[Baud]
と書いてあるからにはプログラムで決まる物ではなさそうな気がしてきたし・・・
シリアル通信についてわかりやすく書いてあるHPや書籍などあったら教えてくださいm(__)m
- 52 :デフォルトの名無しさん :2001/01/31(水) 21:58
- そういや、モデムが"AT"で自動的に合せてくれるってのは
どうやってるんだろ。
- 53 :40 :2001/01/31(水) 22:50
- >>47
すいません、自分で解決しました。
- 54 :デフォルトの名無しさん :2001/02/01(木) 11:55
- >>51
わー、懐かしい・・・
Z80はロボコンの時に使ったっきりだなー
ロムライターまで買ってきたのに・・・
シリアル通信の本じゃないけど
「Z80のすべて」だったかな
(すみません、しばらく見てないんで題名が怪しいです、帰って確認したら題名と出版社書きにきますんで・・・)
良い本です
水色で、正方形の本です
- 55 :49 :2001/02/02(金) 01:30
- >>54
ありがとうございます!探してみますね。
そして実験室の装置はきっと10年前から変わっていないのです(^^;)
- 56 :デフォルトの名無しさん :2001/02/02(金) 09:35
- >>52
ATはそのコード 41 54 に秘密があるのだ〜
と聞いたことがあるけど、どんな秘密かは聞いていない。
- 57 :54 :2001/02/03(土) 08:55
- 遅れました
「図解 Z80 マシン語制御のすべて」 東京電機大学出版局
です
- 58 :新米ギコ@国内某所 :2001/02/06(火) 00:00
- 彡 ∧ ∧ ハッ / ̄ ̄ ̄ ̄ ̄
(;゚Д゚) < 気分転換!
.=| |===U=U===| |= \_____
| | 〜ノ ノ | |
| | ι J′ ||
| | ||
~~~~~~~~~~~~~~~~~
- 59 :教えてください。 :2001/02/07(水) 16:59
- VC++初心者です。
ソースも書き込みますからそれについて教えてもらえるでしょうか?
とりあえず、大丈夫かどうかのレスをつくことを待ってみます。
願いsage
- 60 :デフォルトの名無しさん :2001/02/07(水) 18:03
- とりあえず書いてみそ。
重要なのは、「読み手が見やすいソース」と
「どこがわからないかはっきりさせる(ように努力する)」
- 61 :教えてください :2001/02/07(水) 18:16
- >>60
ありがとうございます!
VC++何ですが、とりあえず面倒くさい条件のうえ、ソースも
かなり間違ってると思いますがお願いします。
5人分の氏名、試験3種類の点数を文字列及び2次元配列に格納し
1)一覧表の表示
2)各種類別の最高点とその氏名の表示
3)各々の3種類の平均の表示
#include<stdio.h>
void main()
{
char cname[5][10];
int i,k,r,gten;
for(i=0;i<5;i++)
{
printf("%d番目の人の名前を入力して下さい:",i+1);
scanf("%s",&cname[i][0]);
}
for(i=0;i<5;i++)
{
printf("%s",&cname[0]);
}
int gten[2][3] = {{40,92,85},{48,96,79}};
for ( r = 0;r<3;r++)
{
gten = gten[0][r] + gten[1][r];
}
}
読み手が見易いソースなんてものからは程遠いうえ、わからなくて
途中で止まっている最悪な状態ですが、かなり困ってるので
3つの条件の一つだけでも結構ですので教えてください。
よろしくお願いします。
- 62 :ちょうてきとー :2001/02/07(水) 19:31
- void input(int data[][科目数], cname[][10])
{
for (人でループ) {
printf("%d人目:", 人 + 1);
scanf(名前の入力, cname[人]); //%9s
for (科目でループ) {
printf("科目 %d:", 科目 + 1);
scanf(&data[人][科目]);
}
}
}
void printall(int data[][科目数], char name[][10])
{
printf(タイトル)
for (人でループ) {
printf(名前, name[人]);
for (科目でループ) {
printf(・・・, data[人][科目]);
}
}
}
int highscore(int data[][科目数], int number)
{
int max = data[0][number];
int maxnum = 0;
for (人でループ) {
if (max < data[人][number]) {
maxnum = 人;
}
}
return maxnum;
}
int average(int data[])
{
int all = 0;
for (科目でループ) {
all += data[科目];
}
return all / 科目数;
}
int main()
{
char cname[人数][10];
int gten[人数][科目数];
input(gten);
処理を選択する();
switch (処理) {
case 1:
printall();
break;
case 2:
for (科目でループ) {
int num = highscore(gten, 科目);
printf(○○の最高点);
printf(なまえ, cname[num]);
printf(点数, gten[num][科目]);
}
break;
case 3:
for (人でループ) {
int avg = average(data[人]);
printf(平均点, cname[人], avg);
}
break;
}
return 0;
}
- 63 :62 :2001/02/07(水) 22:50
- よく見たら、3)の解釈間違えてるっぽい。
それに、そのままコードに落としても、何箇所もバグってる。
見つけて直してね。
- 64 :新米ギコ@ダメな見本 :2001/02/08(木) 01:53
- ∧∧
(,゚д゚) < 手元にBeIDEしかないなんて、、、鬱だ氏のう
ヽ/つ且~~
(__ _)
^
#include <iostream>
int main(){
char name[5][256];
int ten[5][3];
for(int i=0;i<5;i++){
cout << "name:";
cin >> name[i];
cout << "ten1 ten2 ten3" <<endl;
cin >> ten[i][0] >> ten[i][1] >> ten[i][2];
}
cout << "name / ten1 /ten2 /ten3" << endl;
for(int i = 0;i<5;i++){
cout << name[i] <<"/" <<ten[i][0] <<"/" << ten[i][1] <<"/"<< ten[i][2] << endl;
}
int max[3];
for(int i = 0;i < 3;i++){
int maxten = ten[i][0];
max[i] = 0;
for(int j=1;j<5;j++){
if(maxten>ten[i][j]){
max[i] = j;
}
}
}
for(int i = 0;i < 3;i++){
cout << "ten" << i <<"name:" << name[max[i]] << "/ten:" << ten[max[i]][i] << endl;
}
double av[3];
for(int i = 0;i<5;i++){
av[i] = ten[i][0];
for(int j=1;j<3;j++){
av[i] += ten[i][j];
}
av[i] /= 3;
}
for(int i = 0;i<5;i++){
cout << "name:" << name[i] << "/av:" << av[i] << endl;
}
return 0;
}
- 65 :デフォルトの名無しさん :2001/02/08(木) 13:07
- Excelファイルのフォーマットって
どこかで公開されてる?
- 66 :デフォルトの名無しさん :2001/02/08(木) 17:49
- VC++のListViewに文字列をセットして一覧表示させるのはできるのだけど、
選択された(複数選択の場合は、一番上)行の文字列を取得することが
できない!
検索エンジンで色々調べたけど、出てないみたいだし、あってもJAVA。
みんな、ListViewには表示しかしてないの?
そこから値をとってる人がいたら、コード教えて下さい!
- 67 :SAGE猫 :2001/02/08(木) 18:32
- >>66
LVM_GETITEMTEXT とかじゃなくて?
- 68 :デフォルトの名無しさん :2001/02/09(金) 13:26
- SendMessageで
CB_??
でやってく方法がある
- 69 :デフォルトの名無しさん :2001/02/09(金) 13:53
- const char a ;
static char b ;
static const char c ;
const static char d ;
a,b,c,d は、違いますか?それとも同じですか?
#sageでもカウントするよーになったんだね。
- 70 :デフォルトの名無しさん :2001/02/09(金) 14:09
- COMポート(COM1)を使って相手の機器に整数値を送信するやり方は
以下の方法でいいのですか?
HANDLE handle;
DWORD dwNumber;
BOOL bRetW;
BOOL bRetC;
CString strErr;
int iData = 1; //とりあえず整数値の1を送る
// 送り先のクリエート
handle = CreateFile("COM1", GENERIC_WRITE, FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
if(handle == INVALID_HANDLE_VALUE){
MessageBox("クリエート時エラー", "エラー", MB_ICONERROR | MB_OK);
}
// 送り先へデータの送信
bRetW = WriteFile(handle, &iData, sizeof(iData), &dwNumber, NULL);
if(bRetW == 0){
MessageBox("データ書き込み時エラー", "エラー", MB_ICONERROR | MB_OK);
}
// ハンドルのクローズ
bRetC = CloseHandle(handle);
if(bRetC == 0){
MessageBox("ハンドルクローズ時エラー", "エラー", MB_ICONERROR | MB_OK);
return;
}
- 71 :デフォルトの名無しさん :2001/02/09(金) 15:56
- >>69
初期化無しconstに何の意味があるだろうか、いや、ありはしない(反語)
- 72 :デフォルトの名無しさん :2001/02/09(金) 16:06
- >>71
staticの場合初期化していなくとも暗黙に初期化されているので
多少は意味がありそうだ
- 73 :デフォルトの名無しさん :2001/02/09(金) 16:28
- >>70
それは文字としての1じゃなくて
0x01,0x00,0x00,0x00 という4バイトを送ろうとしてるけど、それでいんだね?
即座に閉じてるから普通は最初の1バイトしか送られないかもしれないけど
為に何バイトか気まぐれに送られるかもしれないけど、それもそれでいいんだね?
- 74 :デフォルトの名無しさん :2001/02/09(金) 19:49
- >>73
良くないでーす!
教えて下さーい。
- 75 :何も知らない人 :2001/02/09(金) 20:01
- すいません、JAVA、VB、VC、DELPHIとかいろいろ言語ありますよね。
それぞれの言語はどういった物を作るのに向いてるのですか?
- 76 :デフォルトの名無しさん :2001/02/09(金) 20:06
- >>75
ソフトウェアという物
- 77 :デフォルトの名無しさん :2001/02/09(金) 21:31
- >>70 >>73
intが4バイトだから4バイト?
Intel(互換CPU)搭載機では0x00,0x01,0x00,0x00じゃなくて?
- 78 :デフォルトの名無しさん :2001/02/09(金) 21:34
- 言語 作成されるもの
Java 言語オタク
VC 混乱した人
Delphi クラスを使うことがオブジェクト指向だと勘違いする人
VB 厨房
- 79 :デフォルトの名無しさん :2001/02/09(金) 21:43
- >>78
文句ばかりだねぇ〜。
悪い事ばかり考える人って
かわいそう...
何処でそんなにひねくれちゃったの?
- 80 :デフォルトの名無しさん :2001/02/09(金) 21:51
- こどもがたいまでつかまったから
- 81 :デフォルトの名無しさん :2001/02/09(金) 23:26
- >>77
なんじゃその妙なバイトオーダーは?
- 82 :デフォルトのゲイツさん :2001/02/10(土) 00:09
- Java なんとなく
VC 仕事で無理やり
Delphi MS嫌い
VB 叩かれるのが好きなマゾ
- 83 :新米ギコ :2001/02/10(土) 01:34
- ∧∧ プハー
¶( ゚Д゚) =3 >>65 M$の飯のタネであるところのword,excelのフォーマットは
ゝ| つ日~~ 原則非公開! 誰かhackしてるかもしれないけどね
(,|/ )
U U
∧∧ プハー
¶( ゚Д゚) =3 >>69 C++だとconstは定数だ!変数に付けるstaticをconstに
ゝ| つ日~~ 付けるのは無意味だ!
(,|/ )
U U
∧∧ プハー
¶( ゚Д゚) =3 >>try&errorだ!ここで聞く前にチャレンヂだ!
ゝ| つ日~~
(,|/ )
U U
- 84 :MSのやろうヘルプ日本語化しろよゴルァ!! :2001/02/10(土) 18:38
- 当方、Windowsプログラミングの勉強をはじめたばかりのものなのですが、
ATLやらMFCやらWin32APIをどういうふうに使い分けたらいいかわかりません。
それぞれどういうときに使ったらよろしいのでしょうか?
また、2chではMFCはクソといわれているようですがなぜでしょうか?
ギコ様教えてください。
- 85 :デフォルトの名無しさん :2001/02/10(土) 19:28
- 勉強はじめたばかりの人が使い分ける必要はありません。
どれか1つに集中しなさい。というかVCLにしなさい。
- 86 ::MSのやろうヘルプ日本語化しろよゴルァ!! :2001/02/10(土) 19:51
- >>85
VCLって確かBCBについてくるやつですよね。
すでにVC6買っちゃったものでそれは選択できないんですよ。
- 87 :デフォルトの名無しさん :2001/02/10(土) 19:57
- >>86
じゃ、好きにしなさい。
- 88 ::MSのやろうヘルプ日本語化しろよゴルァ!! :2001/02/10(土) 20:07
- >>87
そ、そんな〜
ギコねこ〜〜〜〜
たすけてーー!
- 89 :デフォルトの名無しさん :2001/02/10(土) 20:19
- atl も mfc も はだかの win32api もつかえるようにしなはれ。
- 90 :名無しさん || die :2001/02/10(土) 20:24
- >>65
これのソースを読めば多少は分かるかも。 http://www.xlhtml.org/
ついでにWordならこっち。 http://www.wvware.com/
- 91 :デフォルトの名無しさん :2001/02/10(土) 21:12
- Win32api でプログラミングをはじめたんですが、
よくこの板で「SDK」と呼ばれているものがよくわかりません。
Win32 用の SDK があるんですか?
- 92 :91 :2001/02/10(土) 21:13
- さげて書いてしまったのであげ。
- 93 :SAGE :2001/02/10(土) 21:41
- >>91
ほりゃ。
http://www.microsoft.com/msdownload/platformsdk/setuplauncher.htm
というか、別に落としてこないでもキミのPCには
既に入っててしかも既に使っているだろうから心配するな。
- 94 :91 :2001/02/10(土) 22:25
- どうも。 >>93
するとプラットフォーム SDK つうのは、
UN*X における /usr/include と /usr/lib 一式である、
という理解でよろしいでしょうか?
つまりぼくが VC++ をインストールしたときにこれらは
一緒にインストールされていた、ということですね。
それで、「SDK を使ったプログラミング」とゆーのは、
Win32API を (or も) 使ったプログラミング、という意味なんで
しょうか?
- 95 :デフォルトの名無しさん :2001/02/11(日) 00:04
- そうともいう
- 96 :STL厨房 :2001/02/11(日) 00:32
- listのイテレータをポインタに直すには、
&(*i)でいいんですか?
コンパイルは通ったけど、なんか気持ち悪い。
- 97 :クロネコ :2001/02/11(日) 06:40
- > 96
最初からポインタで監理するものではないのか?
そうすりゃ(*ite)ですむじゃん。
普通コンテナには実体をつっこまないと思うんだけど。
つっこむとしたら、やっぱり&(*ite)でいいとおもうしあんまし変でもないし。
- 98 :STL厨房 :2001/02/11(日) 14:35
- どーもです。
構造体のメンバは(*ite).memberなのに、
ループ内で関数にポインタを渡すときはf(&(*ite))みたいな
変幻自在かげんが不思議だったもので。
厨房らしくvector使うことにします。
- 99 :デフォルトの名無しさん :2001/02/12(月) 04:06
- (´Д`;)VC++に正規表現ライブラリが付いてないのは何故ですか?
- 100 :デフォルトの名無しさん :2001/02/12(月) 04:27
- ttp://www.hi-ho.ne.jp/babaq/bregexp.html
これ使えば
- 101 :デフォルトの名無しさん :2001/02/12(月) 04:57
- >>100
情報どうもありがとう。
やぱーりWinでもregex使うんですね
- 102 :デフォルトの名無しさん :2001/02/14(水) 12:51
- age
- 103 :デフォルトの名無しさん :2001/02/14(水) 14:36
- DOSのFCやWinDiffのように二つの文字列の差分を取るアルゴリズム
の解説ってネットのどこかにないでしょうか?
Googleで探してみたんですが、これだ!というのがありません。
- 104 :デフォルトの名無しさん :2001/02/14(水) 16:27
- >> 103
テキスト形式で1行ずつ読み込んで比較して、
違ってたらn行先読みして再び一致するまで比較の繰り返しじゃないの?
n行先読みで一致しなかったら「違いすぎて同期できません」
- 105 :103 :2001/02/14(水) 16:40
- >>104
いえ、実は文字単位で比較して差分を取り出したいんですが…
下のページを見てみたんですが、計算が終わったエディットグラフ
をどう使うのかよくわからず。
http://hp.vector.co.jp/authors/VA007799/viviProg/doc5.htm
- 106 :103 :2001/02/14(水) 16:48
- 自己レスです。
Eugene博士の英語の論文を読んでみたら、グラフの意味がわかりました。
これでコードに落せそうです。
- 107 :デフォルトの名無しさん :2001/02/14(水) 20:12
- 入力したアカウントが
アドミニ権限を持っているかどうか
知りたいのですが
どのように作り込めばいいですか?
教えて下さい。
- 108 :デフォルトの名無しさん :2001/02/14(水) 23:32
- >>106
ちょっと教えてほしいんだけど、O(ND)やO(NP)を使ったときに
エディトグラフのLCSとなる経路を保存するにはどうするの?
幅優先探索に似てると思って、幅優先探索同様の保存法を
使ったら案の定データ量が爆発して氏んだ。
ああ、頭悪いな折れって…
- 109 :106 :2001/02/15(木) 07:13
- Eugene博士の論文だと二次元じゃなくて一次元の配列を使ってます。
E. Myers, "An O(ND) Difference Algorithm and Its Variations,'' Algorithmica 1, 2 (1986), 251-266.
http://www.cs.arizona.edu/people/gene/PAPERS/diff.ps
ちょっと引用。
Constant MAX ∈[0, M+N]
Var V: Array [-MAX...MAX] of Integer
MとNは比較される二つの文字列の長さです。
これだと必要な要素数は(M+N)*2になるので爆発しないようです。
で、他の資料も調べてみたのですが、そっちはだいたい[M, N]の
二次元配列を使ってました。
アルゴリズム自体はよく理解してないので、なぜそうなるのかは
わかりません(汗
- 110 :106 :2001/02/15(木) 07:16
- >>108
ここにタイム/スペーストレードオフの解説が色々ありました。
http://www.ics.uci.edu/~eppstein/161/960229.html
- 111 :デフォルトの名無しさん :2001/02/16(金) 04:54
- dosでエディターを作りたいんですが、
簡単に作れるフレームワークみたいなものはないでしょうか。
固定長ファイルや、Btrieveファイルを編集したいのです。
- 112 :おかいものさん :2001/02/20(火) 21:33
- お願いします!フォートランで助けてください。
超初心者なのでつまんない質問かもしれませんが…
「音声波形x(i),i=1,2,…,naの絶対値の最大値xmaxを求める」
こんなヤツです。
絶対値の言語が分からないです。
助けて…氏にそう。
- 113 :デフォルトの名無しさん :2001/02/20(火) 21:38
- 組込み関数 ABS
- 114 :おかいものさん :2001/02/20(火) 21:54
- ああ、即レス!アリガトウございます。
でもどこに組み込めばいいんですか?
xmaxをだしてから?
abs=xみたいに使うんですか?
ごめんなさい、本当に初心者なんです…
- 115 :デフォルトの名無しさん :2001/02/20(火) 21:56
- あのね、BorlandC++5.0JってWindows98で使えるの?
別のスレにも書いたんだけど、レスないんだよね。
実は、Borland C++ Suiteを注文しちゃったんだ。
http://store.inprise.co.jp/bcsuite/index.html (ここにあるんだけど)
だめなら、解約しないといけないんだよね・・・(面倒だけど)
お願い、誰か教えてください。
- 116 :デフォルトの名無しさん :2001/02/20(火) 22:03
- >>114
100件データがあるとして、
XMAX = 0.0
DO 1000 I=1,100
XABS = ABS(X(I))
IF (XABS.GT.XMAX) THEN
XMAX = XABS
END IF
1000 CONTINUE
こんなかんじでどう?
- 117 :116 :2001/02/20(火) 22:04
- げっ、ずれてる。
スマソ
- 118 :おかいものさん :2001/02/20(火) 22:22
- >>116さん
あぁ、またも即レス!!ありがと〜!!
明日学校で走らせてみます!!
大スキ☆ちゅっ!
- 119 :しー :2001/02/20(火) 22:48
バンワ。
∧ ∧__
/(*゚ー゚) /\
/| ̄∪∪ ̄|\/
| しぃ |/
 ̄ ̄ ̄ ̄
- 120 :新米ギコ :2001/02/21(水) 00:58
- ∧∧ プハー
¶( ゚Д゚) =3 >>115 オレはwin95でborland C++4.0使ってたから平気だ!
ゝ| つ日~~
(,|/ )
U U
- 121 :デフォルトの名無しさん :2001/02/22(木) 00:16
- #include <stdio.h>
#include <math.h>
main()
{
double x;
double y;
scanf("%f",&x);
y=tan(x);
printf("%f\n%f\n",x,y);
}
実行すると結果は0になります。(x、y両方とも)
どこがいけないんでしょか?
- 122 :デフォルトの名無しさん :2001/02/22(木) 00:24
- >printf("%f\n%f\n",x,y);
printf("%lf\n%lf\n",x,y);
%f だと float 型のデータとみなされる。
%lf だと double
多分ね。
- 123 :121 :2001/02/22(木) 00:26
- レスありがとうございます。
書式なんとかが原因ってことですか?
- 124 :121 :2001/02/22(木) 00:33
- レスを参考に
scanf("%f",&x); を
scanf("%lf",&x); にしてみたら上手くいきました。
ありがとうございました。
- 125 :新米ギコ@ご飯大好き :2001/02/28(水) 00:49
- ∧ ∧
( ゚Д゚) <意味もなくage
.=| |==U=U==| |=
| | | | .| |
| | ノU U | |
| | | |
~~~~~~~~~~~~~~~~
- 126 :デフォルトの名無しさん :2001/03/02(金) 10:57
- C/Sによるアプリケーションシステム
C/Sで検索してもC/Sの事を説明しているところは見あたらないです。
検索へたですんません。
- 127 :126 :2001/03/02(金) 10:58
- ごめんなさい。質問しわすれ・・・。
C/Sによるアプリケーションシステムって何ですか?
- 128 :126 :2001/03/03(土) 11:04
- あげさせて・・・
- 129 :デフォルトの名無しさん :2001/03/03(土) 11:42
- C = くらいあんと
S = さーばー
- 130 :デフォルトの名無しさん :2001/03/03(土) 12:21
- >>127
http://store.nikkeibp.co.jp/item/main/148222807720.html
- 131 :126 :2001/03/03(土) 14:31
- ありがとう。
- 132 :デフォルトの名無しさん :2001/03/03(土) 16:05
- アルゴリズム解析の際、みなさんはorderをどのように決定していますか。
- 133 :迷える子羊 :2001/03/06(火) 12:14
- Win32 SDKでスプラッシュウィンドウを表示させるにはどうしたらいいのでしょうか?
教えて下さい
- 134 :クロネコ :2001/03/08(木) 02:29
- 素直にbitmap表示すれ。
- 135 :デフォルトの名無しさん :2001/03/08(木) 13:19
- MacのREALbasicで辞書を作ろうと思っているのですが、
さっぱりわからなくなっている初心者です。
辞書的なソフトを作ったことある方、どういう風に
作られましたか?
要領の得ない質問で、すみません。
- 136 :1 :2001/03/10(土) 01:23
- 関数ポインタをつかって、他のクラスのメンバ関数を呼ぶ事ってできますか?
たとえば、
classA a;
classB b;
a.set_func(b.func_1);
a.exec_func_ptr;//b.func_1()が実行される。
メリットがあるのかわかりませんが、おしえてください。
- 137 :136 :2001/03/10(土) 01:29
- ごめんなさい。136は1ではありません。
あと、言語はC++でお願いします。
以下に、試したコードを書きます。今のところコンパイラをとおりません。
class C_parent;
class C_child{
private:
int state;
public:
void (*func_ptr[3])(void);
// void (C_parent::*func_ptr[3])(void);
void set_func(int n, void (*proc)(void)){
// void set_func(int n, void (C_parent::*proc)(void)){
func_ptr[n]=proc;
};
void set_state(int s){
state=s;
};
void func(){
(*(this->func_ptr)[state])();
}
};
class C_parent{
private:
C_child child;
public:
void init(){
child.set_func(0, func0);
child.set_func(1, func1);
child.set_func(2, func2);
child.set_state(0);
};
void func0(void){};
void func1(void){};
void func2(void){};
void exec_child(){
child.func();
};
};
int main(int argc, char* argv[])
{
C_parent* parent;
parent=new C_parent;
parent->init();
parent->exec_child();
return 0;
}
- 138 :デフォルトの名無しさん :2001/03/10(土) 06:50
- >>137
「メンバ関数へのポインタ」がわかってないんじゃない?
あっちのスレの2も書いてるけど "->*" を使うのよ。
とりあえずコンパイラに通るようにしてみた。
class C_parent;
class C_child {
private:
int state;
public:
void (C_parent::*func_ptr[3])(void);
void set_func(int n, void (C_parent::*proc)(void)){
func_ptr[n]=proc;
};
void set_state(int s){
state=s;
};
void func(C_parent *p){
(p->*func_ptr[state])();
}
};
class C_parent{
private:
C_child child;
public:
void init(){
child.set_func(0, func0);
child.set_func(1, func1);
child.set_func(2, func2);
child.set_state(0);
};
void func0(void){};
void func1(void){};
void func2(void){};
void exec_child(){
child.func(this);
};
};
int main(int argc, char* argv[])
{
C_parent* parent;
parent=new C_parent;
parent->init();
parent->exec_child();
return 0;
}
- 139 :デフォルトの名無しさん :2001/03/11(日) 00:55
- テンプレート関数のアドレスってとることできないんですかねー
具体的には下を見てもらうとして。
あと、これを実行すると、うちのパソコンでは
f<int>がoperator stringに飛んじゃいます。
これはなぜ?
ちなみに環境はVC6.0SP4ですけど・・・
ギコ猫教えて〜
#include<iostream>
#include<windows.h>
#include<string>
using namespace std;
class CustomString
{
string m_s;
public:
CustomString(const char* s)
:m_s(s){}
operator int() const { return atoi(m_s.c_str()); }
operator long() const { return atol(m_s.c_str()); }
operator float() const { return atof(m_s.c_str()); }
operator string() const { return m_s; }
};
template<class T>
void f(void* pv, const CustomString& s)
{
*(T*)pv = s;
}
typedef void (*FuncPtr)(void*, const CustomString&);
void main()
{
// FuncPtr p[] = { f<int>, f<float>, f<string> }; <コンパイルエラーになる!
int i;
f<int>(&i, "10");
float fl;
f<float>(&fl, "1.15");
string s;
f<string>(&s, "abco0438");
cout << i << endl;
cout << fl << endl;
cout << s << endl;
}
- 140 :新米ギコ@風邪引きました :2001/03/11(日) 01:57
- ∧∧
¶( ゚Д゚) < >>139 関数の定義だけして宣言をしていないからだと思うんだな
ゝ|し |┐
(_|./ |┘
U U
- 141 :デフォルトの名無しさん :2001/03/11(日) 05:07
- 配列への代入ってどうするんですか?
int a[10]={ 1,2, ... };
みたいな初期化は成功するんだけど
a[]={ 1,2, ... }
は無理っぽいし、
a[0]=1;a[1]=2; ...
なんてダサい構文使うわけにも行かんし。さてどうしたものか。
- 142 :デフォルトの名無しさん :2001/03/11(日) 05:23
- >a[]={ 1,2, ... }
>は無理っぽいし
( ゚Д゚)ハァ?
- 143 :141 :2001/03/11(日) 05:52
- >>142
ご、ごめんよう。俺が悪かったよう。
a[0]=1,2,3,4,5 ...;でコンパイルは通ったんだけど、
考えてみたら左の値以外捨てられてるだけだね…撃つだ氏のう。
- 144 :デフォルトの名無しさん :2001/03/11(日) 09:10
- >a[]={ 1,2, ... }
おしりにセミコロンが抜けてる( ^∇^)σ
- 145 :SAGE :2001/03/11(日) 09:26
- memcpy( a, "\x1\x2\x3\x4\x5", 5 );
くらいしかないんでないの?一文で書くなら。
- 146 :デフォルトの名無しさん :2001/03/11(日) 17:08
- >145
char配列ならそれでいいな
- 147 :145 :2001/03/11(日) 20:07
- >>146
はぅ。そういえば確かにintだ。鬱氏。
# しゃーないから sizeof(int) とエンディアンに合わせて \0 並べといて(^^;
- 148 :141 :2001/03/12(月) 00:37
- >>144
あ、タイプミス。まあ気にするな。
>>145
それくらいしかないのかねえ、やはり。
目的としてはクラス内で宣言した配列をコンストラクタで初期化したいんです。
そういえば構造体も struct x a; a={ 1, 2, "abc" };
みたいな書き方できないんだっけ?
今試したらエラー出るんですが。
- 149 :デフォルトの名無しさん :2001/03/12(月) 00:47
- >>148 の下の方
それだと代入になっちまう。
宣言時初期化は可能なはずだが。
- 150 :148 :2001/03/12(月) 01:01
- >>141
つうかあんた、代入と宣言時初期化は
別モノだってこと知らないんだな。
本でもみて調べてみそ。
- 151 :デフォルトの名無しさん :2001/03/12(月) 01:40
- 141はPerl使いに1票
- 152 :141 :2001/03/12(月) 02:34
- >>151
いえ全然。C++しか知りません。あとバッチファイル。
>>149
>つうかあんた、代入と宣言時初期化は
>別モノだってこと知らないんだな。
まあ違うことくらいは知ってるけど、詳しくないです。スマソ
結論としてはmemcpyでやれor宣言時に初期化しろってことですか?
配列をコンストラクタで初期化するような場合ってどうするんですかね。
コンストラクタにテンポラリ配列を作って代入とか?こんな具合に
class A{
int array[5];
A();
}
A(){
int tmp[5]={0,1,2,3,4};
for(int i=0;i<5;i++) array[i]=tmp[i];
}
- 153 :デフォルトの名無しさん :2001/03/12(月) 13:07
- >>152
配列だけ含むクラスを作っちゃうのはどうですか?
class array_class {
public:
int d[5];
};
array_class initdata = { 0,1,2,3,4 };
class A {
public:
array_class array;
A() { array = initdata; }
};
ただしこれだとarrayをアクセスするとき、
array[i]じゃなくてarray.d[i]と書かないといかん。
- 154 :139 :2001/03/12(月) 14:54
- まえでの者ですけど、
宣言してもコンパイルとおりません。
宣言って,
template<class T>
void f(void* pv, const CustomString& s);
こういう宣言?
それとも、
void f<int>(void*, const CustomString&);
void f<float>(void*, const CustomString&);
void f<string>(void*, const CustomString&);
こっち?
どっちにしてもこんどはリンクエラーがでるよ。
関数fが未解決だって・・・
それとも、もっと違う宣言?
わからんよー、教えてー、ギコ猫ー!
- 155 :デフォルトの名無しさん :2001/03/12(月) 15:25
- template<class T>
void f(T *tp, const CustomString &s) {
*tp = s;
}
- 156 :デフォルトの名無しさん :2001/03/12(月) 15:29
- class A {
int array[5];
A() {
for (int i = 0; i < sizeof array / sizeof *array; i++) array[i] = i;
}
}
これでは、ご不満か?
- 157 :デフォルトの名無しさん :2001/03/12(月) 15:37
- 呼び出し方は、 f((int *)pv, s); f((float *)pv, s); など。
- 158 :デフォルトの名無しさん :2001/03/12(月) 15:51
- array_classの[]演算子を再定義してみるのはどうよ?
- 159 :139 :2001/03/12(月) 16:49
- >155
>157
>template<class T>
>void f(T *tp, const CustomString &s) {
>*tp = s;
>}
これにしたときって、
typedef void (*FuncPtr)(void*, const CustomString&);
をどう書けばいいんですか?
typedef template<class T>
void (*FuncPtr)(T*, const CustomString&);
こう書くとコンパイルエラーがでるし・・・
配列として使えないと意味ないし・・・
すいません、厨房で・・・
- 160 :デフォルトの名無しさん :2001/03/12(月) 19:11
- >159
テンプレート関数では無理。マクロでも使っておいたら?
#define F(T) void f##_##T(void *pv, const CustomString &s) { *(T*)pv = s; }
F(int)
F(float)
F(long)
typedef void (*FuncPtr)(void*, const CustomString&);
FuncPtr[3] = { f_int, f_float, f_long };
- 161 :160 :2001/03/12(月) 19:16
- 最後の行を間違えた。けど、分かるよな?
- 162 :159 :2001/03/12(月) 20:53
- >テンプレート関数では無理。マクロでも使っておいたら?
>#define F(T) void f##_##T(void *pv, const CustomString &s) { *(T*)pv = s; }
>F(int)
>F(float)
>F(long)
>
>typedef void (*FuncPtr)(void*, const CustomString&);
>FuncPtr[3] = { f_int, f_float, f_long };
どうも、ありがとうございます。
やっぱ、無理か・・・
>最後の行を間違えた。けど、分かるよな?
型名に代入・・・
- 163 :デフォルトの名無しさん :2001/03/13(火) 04:17
- 2つ質問です。
1. 『独習C++』で学習しているのですが、3章の熟達スキルチェックの問4が分かりません。
問題と答は次のようなものです。
Q. オブジェクトのアドレスを、引数として関数に渡すことができるか考えなさい。
A. できません。
これってそうなのでしょうか? class sample; というクラス型で
sample obj; を宣言して、sample型のオブジェクトへのポインタを引数にとる関数
void func(sample *ptr); に対して func(&obj) でオブジェクトのアドレスを渡せ
ると思うのです。実際にテストプログラムでも正常に動作しましたし。
私自身が問題を誤解しているのか、それとも答が間違っているのか、どちらなの
でしょうか?
2. 配列の宣言について。
int a[4][2];
という配列は a[2] が4つという意味ですよね。
#int (a[2])[4]; という宣言は許されるのかな?
Cを学習した時から思っていたのですが、[] が左から評価されるのであれば、
a[4] の配列が2つと考えるのが自然じゃないんですか? この辺り、熟練の
方々はどのように理解されているのでしょうか?
以上2点です。よろしくお願いします。
- 164 :>162 :2001/03/13(火) 07:13
- テンプレート関数は、実体のない関数で、テンプレート関数呼び出しの際の引数を見て、
その引数に適合する関数を実体化する、というようなメカニズムなので、
テンプレート引数で指定している型(たとえばclass T)を引数の中でつかっていないと、
テンプレート関数の呼び出しは成立しないし、class Tに実際の型をあてはめるのも、
引数の型を見て行われるので、君のやろうとしていることは成立しない。
1:テンプレート引数の型(class T)を、関数引数の中で使っていないので、
君の宣言しようとしているテンプレート関数は、そもそもがテンプレート関数として間違い。
155のように、引数の中にclass Tを使って、157のように渡す引数の型で、仮の型である
class Tの型を実際に指定する。テンプレートクラスのように、f<int>みたいな構文で
テンプレート関数を実体化することは、出来なかったはず。
2:テンプレート関数は実体がないので、テンプレート関数へのポインタは成立しない。
また、テンプレート関数は、関数呼び出しの構文の中で実体化されるので、
実体化されたテンプレート関数へのポインタも、取り出し様がない。
- 165 :>163 :2001/03/13(火) 07:35
- 2.
その変数が利用されるときの使われ方に出来るだけ似たような形で宣言する、
という方針らしいとか言う話を聞いたことがある気がする。
この場合で言えば、a を 「int[2] が4つ」な配列として宣言したなら、
後で使うときは a[0], a[1], a[2], a[3] はそれぞれがサイズ2の配列扱いになるわけで。
ここで更に a[0] の 2番目の要素にアクセスするときは a[0][1] っつう書き方になる。
要するに、 「int[2] が4つ」を使うときは a[0-3][0-1] って記法になるんで、
宣言の方もそれにあわせて int a[4][2] らしい。
- 166 :>163 :2001/03/13(火) 07:45
- その本を持っていないので、詳しくは分かりませんが。
オブジェクトというのは、いろんな意味で使われる。
オブジェクトをインスタンスの意味でとらえたら、
あなたの考えるとおり、答えのほうが間違えている。
オブジェクトをクラス(インスタンスの型)の意味でとらえたら、
答えは正しい。ということではないですか?自信はないですが。
配列やポインタの宣言では、実際の変数で演算子を使う位置に、[]や*を書く、
というのが、Cの考え方です。
int a[2][4]; だと、a[i][j] で配列の中身を参照するときに、iは0〜1でjは0〜3で、
配列の中身を参照するわけで、宣言での位置と実際の変数での位置が一致している。
int *a[2];(ポインタの配列)と int (*a)[2]; (配列へのポインタ)の違いも、
前者は実際に *a[i]で中身を参照するし、後者は (*a)[i] で中身を参照するという風に、
実際の使い方と位置が一致しているので、見分ける事が可能。ということです。
あと、int (a[2])[4]; みたいに、余分なカッコはOK。
- 167 :デフォルトの名無しさん :2001/03/13(火) 07:59
- 参考書は疑い半分で読み進めたほうが良いよ。
原典(Reference of ISO C++) 以外の参考書は多くの Reviewer の
洗礼にさらされていないことが多いから内容がわかりづらかったり
極端な場合誤っていることもある。
多くの本を読んで見る目を養っていけ。
蛇足だがプログラム方法論を語る書籍は
とりわけ独り善がりな本が多いので
良書かどうか見極めることが先になる。
悪い本に時間を費やすのは大馬鹿だからな。
- 168 :デフォルトの名無しさん :2001/03/14(水) 02:00
- >>165-167
ありがとうございました。
配列に関しては、よく分かりました。
一つ質問なのですがインスタンスってどういう意味ですか?
直訳は実例とかそういう意味ですけど、C++においては、何を
指すのでしょうか?
- 169 :デフォルトの名無しさん :2001/03/14(水) 02:20
- そういえば・・
>>167
多くの本を読むのが理想だとは思うんですが、なんせ
この関係の本はどれも高価で・・(^-^;
あんまりバカスカ買う余裕ないっす。
- 170 :>168 :2001/03/14(水) 02:59
- インスタンスとは、ありていに言えば変数のこと。
実体化したものという意味合いで、クラスが実体化したもの、つまり変数。
- 171 :デフォルトの名無しさん :2001/03/14(水) 03:01
- >>170
なるほど。納得です。
ありがとうございます。
- 172 :デフォルトの名無しさん :2001/03/14(水) 05:04
- >>170
それは違いすぎる!
いいかげんなことゆーなよ。
- 173 :デフォルトの名無しさん :2001/03/14(水) 07:08
- >>172 君のマターリ解説キボン
- 174 :仕様書無しさん :2001/03/14(水) 11:25
- ネーミングで悩んでます。
Object C を持つことができる Object B があって、B.isEmpty()で C を持ってるかどうかわかります。
B の2次元配列(仮名map)を持つ Object Aで、map[x][y].isEmpty()を返すインターフェイスが欲しいのですが、
よい名前が思いつきません。
当初、haveBAt(x,y)にしたのですが、this.have など見てると鬱になります。
何か良い名前か一般的な名前とかあったらおしえてください。
あそびで作ってるので、命名規約はありません。J(ava)Scriptです。
- 175 :仕様書無しさん :2001/03/14(水) 11:26
- ネーミングで悩んでます。
Object C を持つことができる Object B があって、B.isEmpty()で C を持ってるかどうかわかります。
B の2次元配列(仮名map)を持つ Object Aで、map[x][y].isEmpty()を返すインターフェイスが欲しいのですが、
よい名前が思いつきません。
当初、haveBAt(x,y)にしたのですが、this.have など見てると鬱になります。
何か良い名前とか一般的な名前があったらおしえてください。
あそびで作ってるので、命名規約はありません。J(ava)Scriptです。
- 176 :デフォルトの名無しさん :2001/03/14(水) 11:33
- win32 SDKを勉強中のものですが
ツリービューコントロールで選択した
テキストを取得したい場合、どのようにやればいいのでしょうか
TreeView_GetItem(***)あたりを使ってみたんですが
うまくいきません。どうかアドバイスお願いします
- 177 :174 :2001/03/14(水) 13:00
- ありゃ、2重カキコごめんなさい
- 178 :デフォルトの名無しさん :2001/03/14(水) 15:08
- >>174
JScriptって A.isEmpty(x,y) みたいにメソッド名のオーバライド
できないんだっけ? なら A.isMapEmpty(x, y) かなあ? 俺の場合。
- 179 :デフォルトの名無しさん :2001/03/14(水) 16:04
- JCPにあがっている100あまりのJSRって、
何時ごろ誰がどういう形で実現するのでしょうか?
JSR-1 RTSJ(リアルタイムJava)とか
JSR-14 GenericType導入とか、欲しいなあ。
JSR一覧はこちら
ttp://java.sun.com/aboutJava/communityprocess/search.html
JSR-5 XMLPerseなんてのは
IBMにあるやつそのまま使うでだめなのかな?
- 180 :デフォルトの名無しさん :2001/03/15(木) 09:23
- >>175
isCellEmpty()
二次元配列なら表計算チックに Cell(セル)ってのはどーよ
- 181 :174 :2001/03/15(木) 10:32
- >>178
>>180
レスありがとうごさいます。
is〜Emptyはいいですね。
いつも命名には苦労してます。これもセンスなんですかね。
- 182 :デフォルトの名無しさん :2001/03/15(木) 21:35
- C/C++で動くHTMLパーサを探してるんですけどいいのが見つかりません.
なにか使えそうな物が有れば教えてください.
以下のものを検討したんですが・・・
■Libwww
ドキュメントが見つからない
■IEコンポーネント
遅い, Windows依存になってしまう.
- 183 :名無しさん :2001/03/15(木) 21:40
- すばらしいデザインを提案すれば誰かがアップしてくれる
かもしれないねー。私もちょっと考えてみるよん。
- 184 :141 :2001/03/16(金) 04:51
- 返事遅れてスマソ。皆さんありがとう。頑張ります。
- 185 :デフォルトの名無しさん :2001/03/26(月) 11:31
- age
- 186 :デフォルトの名無しさん :2001/03/26(月) 12:12
- >>176
HTREEITEM hItem;
TVITEM tv;
char str[256];
hItem = TreeView_GetSelection( hTree );
tv.hItem = hItem;
tv.mask = TVIF_HANDLE | TVIF_TEXT;
tv.pszText = str;
tv.cchTextMax = 255;
TreeView_GetItem( hTree, &tv );
これで出来ないかな?
strに選択されているアイテムのテキストが入る
- 187 :デフォルトの名無しさん :2001/03/26(月) 16:30
- CDOでoutlookのデータ(例えば連絡先や仕事)
を取得することは出来るのでしょうか?
もし出来るならそのやり方はどうやるのでしょうか?
- 188 :デフォルトの名無しさん :2001/03/27(火) 04:46
- アプリのアイコンに直接フォルダをドロップして起動させようとすると
「〜へのアクセスは拒否されました」のダイアログが出て起動すらしません。
ファイルをドロップした時はファイルを開いて起動するのですが、
フォルダだと駄目なのです。
原因らしきもので、シリアライズ中のCArchiveでファイルを開いた状態で
渡してくれるので、フォルダはファイルとして開けないから、
警告が出てるのかなーと、でも回避方法はわかりません。
どなたか、ご存知ないですか〜
- 189 :デフォルトの名無しさん :2001/03/27(火) 15:45
- Cで、やたら#include たくさんしているときに、例えばある構造体が実際にどのように
定義されているか手っ取り早く調べる方法はありますかいな?
- 190 :デフォルトの名無しさん :2001/03/27(火) 16:00
- >>189
gcc -P でcppだけ実行させる。
これで見にくい#ifdefや、ややこしいマクロ
多段typedefなんかを楽に調べられる。
VC++? そんなもん知らん。gccマンセー
- 191 :デフォルトの名無しさん :2001/03/27(火) 16:38
- VC++ なら カーソルを 該当個所に乗せて F12
楽ジャン!
- 192 :デフォルトの名無しさん :2001/03/27(火) 18:50
- main(){
struct hostent a;
a=gethostbyname("www.asahi.com");
printf("%s",inet_ntoa(a->h_addr));
}
とかすると、Solarisでは動くのですがLinuxでは動きません。
アホなのはわかってるのですが、どこが悪いんでしょうか?
- 193 :デフォルトの名無しさん :2001/03/27(火) 18:51
- >>192
失礼、
struct hostent a;
ではなく
struct hostent *a;
でした。あと、#include は省略してあります。
- 194 :>192 :2001/03/27(火) 19:21
- エラーコード調べた?
- 195 :デフォルトの名無しさん :2001/03/27(火) 20:01
- >>192
ポインタ宣言だとしたら、まだメモリの確保を行っていないのでは?
ってか、動く方がダメなような気が
- 196 :デフォルトの名無しさん :2001/03/27(火) 22:33
- >>194
エラーはでない、でも値がおかしい。
>>195
そおなんです、実は
inet_ntoa(struct in_addr in)
だから、ポインタ渡すのはおかしい。でも、Solarisで動いちゃうからおかしい。
多分、僕がわかったつもりでいる「構造体」について完全に勘違いしているのでは?
- 197 :デフォルトの名無しさん :2001/03/28(水) 01:08
- >>196
aがポインタでも、a->h_addrはポインタとは限らないぞ。
ああ、今日もまたくだらないレス返してしまった。
- 198 :デフォルトの名無しさん :2001/03/28(水) 12:36
- >>196
俺はMSに漬かっている井の中の蛙だけど。
MSDNを見たら h_add は h_addr_list[0]のマクロって
記述がある。
inet_ntoa(*(in_addr*)a->h_addr);
inet_ntoa(*(in_addr*)a->h_addr_list[0]);
じゃだめ?
- 199 :デフォルトの名無しさん :2001/03/28(水) 13:35
- >>195
socket関係はこんなもんです。
Cでいろんな種類のソケットアドレスを総称しようと
していて、そのリストを返すから、in_addr->h_addrはchar**になってる。
void*もなかった時代の名残ですな。
結論としては>>198が正解。
- 200 :198 :2001/03/28(水) 14:49
- >>199
void*はchar**よりも歴史が浅いことを初めて知ったよ。
勉強になった。これだけでも良い収穫っす。
- 201 :192です :2001/03/28(水) 18:58
- >>198,199
どうもありがとうです。
(まだ試していないけど)
h_addrはh_addr_list[0]のマクロだけど、
マクロを使うのと使わないのとでは動作が違うということでしょうか?
マクロは単なる書き換えに過ぎないと思っていたのだがけど・・
実際にメモリの内部を覗いてみたい・・・
デバッグ関係のお勧めの本とかありませんか?
- 202 :198 :2001/03/28(水) 19:28
- >>201
>h_addrはh_addr_list[0]のマクロだけど、
>マクロを使うのと使わないのとでは動作が違うということでしょうか?
>マクロは単なる書き換えに過ぎないと思っていたのだがけど・・
俺はVC++デベロッパーで、あなたの開発環境は知らない。
OSも違うみたいだし。socket周りもカジッタ程度なんで、
ヘッダを知らなければ憶測の域を出ないという訳。
h_addrでOKならそれで良いでしょう。どっちかって言うと
h_addr_list[0]が環境依存なのかな?
>デバッグ関係のお勧めの本
知らない。
VC++なら、ブレイクポイント、デバッグウインドウ、
プロセスアタッチ等を使いこなせれば良いような。
- 203 :デフォルトの名無しさん :2001/03/28(水) 19:57
- すいません、コーディングシートて何なんでしょう?
意味は調べたけど色々あるみたいで、ごく単純な計算をする
だけのプログラムのコーディングシートをつくれとか課題だされ
て困っています。
- 204 :デフォルトの名無しさん :2001/03/28(水) 20:07
- コード書くための用紙。
- 205 :203 :2001/03/28(水) 20:11
- フロッピーで提出しろと書かれています。まじで何のことだかわかりません。
単純な計算だけのプログラムなのでデータコーディングシートのことでも
ないし、何かほかにコーディングシートと呼ばれるものがあるんでしょうか?
- 206 :デフォルトの名無しさん :2001/03/28(水) 20:13
- FDを分解して折りたたんだコーディングシートを格納して提出すればOK
- 207 :デフォルトの名無しさん :2001/03/28(水) 20:15
- >>203
課題を出した先生に聞け
それが一番安全、確実
- 208 :デフォルトの名無しさん :2001/03/28(水) 22:35
- >>206
どあははははははははははははははははははははははははは。
- 209 :デフォルトの名無しさん :2001/03/28(水) 23:30
- >>208
そこまで面白く無いところにワラタ
- 210 :デフォルトの名無しさん :2001/03/29(木) 00:45
- >>205
元はドクター中松の発明品だ、覚えとけ
- 211 :デフォルトの名無しさん :2001/03/29(木) 10:59
- >>210
全然別物。
ただ、FD作ったIBMが特許訴訟を起こされるのを嫌って、
やばそうな特許を買い漁ったのの1つにDr中松のがあっただけのこと。
当時のIBMは金が余ってたのねぇ。
- 212 :208 :2001/03/29(木) 14:16
- >>209
マジワライ っした。
疲れすぎて精神的にまいってたのかも。
鬱だ
- 213 :デフォルトの名無しさん :2001/03/29(木) 22:21
- ドクター中松が作ったのは印刷した厚紙に磁性体塗ったもの。
語学とかの教材用でデジタルでもない。紙が固定でヘッドのほうが動く。
フロッピーとの共通点は磁気トラックが円を描いてるとこだけ。
- 214 :デフォルトの名無しさん :2001/04/01(日) 23:50
- >>213
うわぁ懐かしい、俺それもってたよ。
リコーが出してたやつでゲームばっかだったけどな。
- 215 :デフォルトの名無しさん :2001/04/02(月) 15:24
- デバッグ用に変数の変化をリアルタイムで表示したいんですけど、
速度低下があると困る用途なので、printfでコンソールに出力したいんですが
Win32のプロジェクトから、コンソールって開けるんでしょうか??
なんかいい方法ないですか〜
- 216 :デフォルトの名無しさん :2001/04/02(月) 15:35
- >>215
>なんかいい方法ないですか〜
って、素直にコンソール開けよ。
(でも、速度低下は当然あるよ。)
- 217 :デフォルトの名無しさん :2001/04/02(月) 15:41
- コンソールの開き方教えて君
- 218 :デフォルトの名無しさん :2001/04/02(月) 16:26
- >>215
OutputDebugString
じゃだめ?
- 219 :デフォルトの名無しさん :2001/04/02(月) 16:30
- >>215
特定の値のときだけ出力するとか、値が変化したときだけ出力せい
- 220 :デフォルトの名無しさん :2001/04/02(月) 16:52
- 値変化しまくり〜の秒間100回更新なのでOutputDebugStringじゃつらいっす
- 221 :デフォルトの名無しさん :2001/04/02(月) 17:34
- >>220
> 値変化しまくり〜の秒間100回更新
それで速度低下が発生しないログの取り方があったら俺も知りたい
- 222 :デフォルトの名無しさん :2001/04/02(月) 18:06
- >>220
共有メモリ上に値をダンプし、専用ツールを作って見る
メモリ量さえ十分ならテスト可能なはず
- 223 :デフォルトの名無しさん :2001/04/02(月) 18:21
- ごめん寝ぼけてたから馬鹿な事書いちゃった。逝ってよし
秒100回のログなんか作ったって 人間が見てられないって
表示の更新は1秒おきっす。
秒間100回ループで回ってるような速度最重視な処理なので、パフォーマンスの低下は最小限
にしたいってことです。一番軽いのがprintfかなぁと思って
- 224 :デフォルトの名無しさん :2001/04/02(月) 18:37
- >>223
一番軽いのは>>222メモリに書きこむだけだから最軽量
- 225 :名無しさん :2001/04/02(月) 18:41
- 普通はそういうとき、
変数のブレークポイントに条件式つけるよ。
break if (x > 100)とか。
VisualStudioにそんな機能あるか知らんけど。
- 226 :デフォルトの名無しさん :2001/04/02(月) 18:49
- >>225
過去ログくらい読め
- 227 :デフォルトの名無しさん :2001/04/02(月) 19:06
- 画像のリソースがどうにも重いので「PngだPngしかねぇ」とLibpng
落として組み込んで見たのですが…画像ロードするだけなのに実行
ファイルが140KB増えてしまいました。画像圧縮分とトントンでしょんぼり。
で、質問なんですが…こんなもんなのですか?
何かライブラリの使い方、間違ってる気がしてならないんです。
- 228 :デフォルトの名無しさん :2001/04/02(月) 19:24
- スタティックリンクしていると思われ。
- 229 :>227 :2001/04/02(月) 19:55
- そんなもんだろ。嫌なら自力で書くべし。
- 230 :227 :2001/04/02(月) 23:41
- レスサンクスです
>>228
そうなんです。Windowsにpng読むためのDLLでも
標準で入ってればなぁ無いですよねぇ、普通。
>>229
そんなもんスか。ある意味安心しました。自力……は、う〜ん。
- 231 :デフォルトの名無しさん :2001/04/03(火) 00:35
- >>227
PNGにこだわってないなら、MAGとかでもいいんでないの?
- 232 :>231 :2001/04/03(火) 00:38
- 懐かしいね。
でもMAGって16色じゃなかった?
- 233 :デフォルトの名無しさん :2001/04/03(火) 00:59
- コンソールの開き方誰か教えて
MAGは256は対応してた。X68なPICな作者はどうしたかな。PICの後継作ってなかったっけ?
つかJpeg2000ってまだ?
- 234 :>223 :2001/04/03(火) 02:00
- AllocConsoleとか?
- 235 :デフォルトの名無しさん :2001/04/03(火) 03:12
- >>227
bmp+gzip(deflate) 使え。
zlibはうまく改造すると30KBくらいの実行サイズ増加で済む。
- 236 :デフォルトの名無しさん :2001/04/03(火) 09:36
- フルカラーMAGとかいう失敗作も一応あったような。
>>235
デコードだけなら12,3KBで済むぜよ。
- 237 :デフォルトの名無しさん :2001/04/03(火) 13:49
- ちょっとうざったい質問させてください。
class _child { list<_child *> friends; };
class _teacher { list<_child> children; };
_teacher teacher;
上のようなクラス、つまり先生(teacher)に子供(child)が
リスト構造でつながっていて、子供は友達(他の子供)への
ポインタのリストを持っているとします。
今、子供リスト(teacher.children)に入ってる子供の順番を
ランダムにソートしたいのですが、
void random_sort(_teacher &teacher){
_teacher teacher_tmp;
while(~teacher.children.empty()){
list<_child>::iterator i = teacher.children.begin();
advance(i, (int)(teacher.children.size()*RAND)); // RANDは0以上1未満の乱数
teacher_tmp.children.push_back(*i);
teacher.children.erase(i);
}
teacher.children = teacher_tmp.children;
}
という関数を作りました。でもこれを動かしたとき、
子供の友達関係が変わってしまっているようなのですが、
どこかおかしいでしょうか。教えてプリーズ。
- 238 :デフォルトの名無しさん :2001/04/03(火) 14:34
- ごめん。分かった気がした。
teacher.children.erase(i)した時点でアドレス変わってるね。
失礼こきました。
- 239 :227 :2001/04/03(火) 23:36
- >>231-236 センキューです
PNGにこだわるわけではないのですが、一応16bit以上
なのでMAGってのは厳しそう…。すいません。
bmp+gzip(deflate) 、良さそうですねぇ。早速探してきます。
なんかメガデモ作りたくなるぐらいw省スペースですね、コレ。
- 240 :デフォルトの名無しさん :2001/04/04(水) 16:18
- OutLookの受信フォルダの情報をC(VC)で取得するのは
MAPIでLogonして取得できるようなのですが、
OutLook ExpressになるとLogonができずに受信フォルダの
情報が取得できません。
OutLook ExpressにLogonはできないものなのでしょうか?
もしできないなら何か(MAPI)にかぎらず受信フォルダの情報を
取得できるやりかたは無いでしょうか?
- 241 :デフォルトの名無しさん :2001/04/04(水) 20:00
- 小学4年生でHTMLマスターし
小学5年生でJavaScriptをマスターし
小学6年生でC,C++をマスターし
中学1年生でPerlをマスターし
中学2年生でJavaをマスターしたおいらに何か質問ある?
- 242 :デフォルトの名無しさん :2001/04/04(水) 20:56
- >>241
それでは、>>240
の質問に答えてあげなはれ。
- 243 :241 :2001/04/05(木) 22:48
- 中学3粘性で痴呆にかかってすべて忘れたんだが?
- 244 :デフォルトの名無しさん :2001/04/06(金) 12:28
- 文章を↓こんなふうに変換できるソフトって開発できますかね〜。
http://corn.2ch.net/test/read.cgi?bbs=entrance&key=986309428
- 245 :デフォルトの名無しさん :2001/04/09(月) 20:29
- Win95,98のプリンタドライバとMeのもので、
大きく変わった個所を教えてください。
- 246 :デフォルトの名無しさん :2001/04/13(金) 14:33
- >>237でリストのランダムソート(C++&STL)に関して
質問をさせてもらった者です。質問は例えば
********************************
class _child { std::list<_child *> friends; };
class _teacher { std::list<_child> children; };
********************************
のようなリストついて、teacher.childrenに格納されている
子供の順番をランダムにソートしたいというものだったんですが、
その後以下のような実装にしました。
********************************
template<class type>
class _random_sort: public binary_function<type*, type*, bool>{
public:
_random_sort<type>(){}
bool operator()(const type &a, const type &b){
return RAND<0.5; // RANDは[0:1]の一様乱数
}
};
//こんな演算を定義して
teacher.children.sort(_random_sort());
//みたいに使ってます。
********************************
でもなんとなく無駄なことをしている気分が拭えません。
もう少しエレーガントな方法ないでしょうか。
- 247 :デフォルトの名無しさん :2001/04/13(金) 19:10
- ASPでEXCELをSQLで操作してるんだけど、データの追加がなぜかうまくいきません
下のASP(VBScript)でSQLにINSERT INTO dbName VALUES('値','値');
をセットして実行すると
エラー タイプ
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Excel Driver] 更新可能なクエリであることが必要です。
て言われちゃいます。誰か助けてくださいモナー
<%
set dbCnn = DBConnection()
set dbData = dbCnn.Execute(SQL)
dbData.Close
dbCnn.Close
%>
<% Function DBConnection()
DBSource = "Driver={Microsoft Excel Driver (*.xls)};DBQ= ****;"
set DBConnection = server.createObject("ADODB.connection")
DBConnection.Mode = adModeReadWrite
DBConnection.open DBSource
End Function %>
- 248 :デフォルトの名無しさん :2001/04/26(木) 04:16
- age
- 249 :デフォルトの名無しさん :2001/04/26(木) 22:38
- ( ゚Д゚)様、「WSH」を詳しく解説キボーン
- 250 :デフォルトの名無しさん :2001/05/03(木) 14:45
- >>1
くだらんスレ いくつも立てるな ボンクラ
削除依頼だ
- 251 :デフォルトの名無しさん :2001/05/03(木) 14:49
- 超初心者発見
- 252 :デフォルトの名無しさん :2001/05/03(木) 14:50
- ま、連休だから仕方無いか。
- 253 :デフォルトの名無しさん :2001/05/03(木) 15:00
- ヽ(`Д´)ノ ゴルァ!
- 254 :"削除"人 :2001/05/03(木) 15:06
- >>250
了解しました
重複スレに該当します
よってどちらかを削除します
- 255 :デフォルトの名無しさん :2001/05/03(木) 15:10
- 春だからね〜。
楽しいんだろうね。
- 256 :デフォルトの名無しさん :2001/05/03(木) 15:19
- 春?
- 257 :デフォルトの名無しさん :2001/05/03(木) 15:25
- キャップ知らんのね
- 258 :( ´D`) :2001/05/03(木) 17:18
- 例の白血病解析の「UD」の話なんだけど、
タスクバーに θ←こんな形のアイコン出ますよね。
このアイコンのグラフィックのリソースって実行ファイルのどこに書かれているかわかります?
UD.exe と us_101.exe と ud_102.dll を色々いじってみたけどよくわかりません。
とある理由でこのアイコンを透明にしたいのですが・・・
- 259 :新米ジェダイの騎士 :2001/05/03(木) 23:49
- 基本情報処理試験のc言語プログラムはどれくらいの知識があればよいの
でしょうか?チンパンジーでもわかる解説をしてもらえませんか?
お願いいたします。
- 260 :チンパンジーには無理!以上! :2001/05/04(金) 00:44
- >>259
少なくとも実際になにかカンタンなゲームやアプリの1つでも作れるようなら
ほとんど午後の勉強はしなくてもよし。
つーか実際しなかったんで逆に答えづらい(W
- 261 :デフォルトの名無しさん :2001/05/04(金) 00:46
- >>259 本屋でもいって問題集立ち読みでもしろ
- 262 :そう :2001/05/04(金) 01:37
- 初めまして、そうと言います。
C言語の勉強を始めたのですが、持ってる本だけでは分からないとこが
出てきてしまい、悩んでおります・・・。
#define SCREEN_CLEAR puts("\033[2J"];fflush(stdout)
#define END_OF_SCREEN puts("\033[35;1H");fflush(stdout)
まず、この2行なんですが、\033というのがescの文字コードだというのは
分かったんですけど、escというのはどんな役割があるのでしょうか?
あと、1行目にある [2J と、2行目にある [35 というのは一体何なんで
しょうか・・・?
持っている本によると、2行とも「ANSIエスケープシーケンスを使い
カーソル移動/画面制御を行う」と書いてあるのですが、上記の2行で
どうやって制御してるのかが分かりません・・・。
もう一つは、
void CountUpAndDisplay(char *pname,int xpos,int ypos)
{
int i;
for(i = 0 ; i < 5 ; ++i)
{
printf("\033[%d;%dH[%s] %05d",ypos,xpos,pname,i);
fflush(stdout);
sleep(1);
}
}
という関数があるんですが、実行すると
[pnameの内容]00000←一番右端の数字がカウントアップ
と出ます。
printfの中の \033[%d;%dH の部分は一体どんな役割なんでしょう・・・?
yposとxposの内容は何で表示されないのでしょうか?
また最後の部分の %dH のHは何のため・・・?
長々と書いてしまいましたが、どなたか分かる方がいらしたら
教えて下さい。よろしくお願いします。
- 263 :そう :2001/05/04(金) 01:40
- あ、上の投稿にミスががありました・・・。
#defineの2行目の [35 なんですが、 [25 でした。
それと、同じく2行目の 1H は一体何なんでしょう・・・?
よろしくお願いします。
- 264 :>263 :2001/05/04(金) 02:26
- エスケープシーケンスで検索してね。
- 265 :うし :2001/05/04(金) 14:00
- MS-DOSのPATCH.EXEに対応するDIFファイルって,どういう
フォーマットなんでしょうか?たとえば,次のようなとき。
00011456: 90 20
0001499D: 10 30
- 266 :デフォルトの名無しさん :2001/05/04(金) 14:58
- C言語でexternの使い方がよく分かりません。
//hoge.c
#include hoge.c
rtn1(); //宣言
rtn2();
rtn1(){ //定義
struct struct1 structure;
rtn2(); //こっからしか呼ばない
return structure;
}
rtn2(){ } //定義
/////////ここまでがhoge.c
//hoge.h
extern rtn1();
struct struct1 {
int hage;
int huge;
}
/////////ここまでがhoge.h
//main.c
#include hoge.h
main(){
rtn1();
}
- 267 :デフォルトの名無しさん :2001/05/04(金) 15:08
- main.cからはrtn2()を見えないようにして、rtn1()は見えるようにしたい場合は
>>266みたいに書けば良いんでしょうか?
取りあえず266の方法で動いてますが、戻り値に使う構造体の宣言する
場所が適切か? とhoge.c内のrtn1()の宣言を書く必要性があるか? が
分かりません。
includeを展開するとhoge.c内に
extern rtn1();
rtn1();
って宣言が二つになっちゃいますよね?
- 268 :デフォルトの名無しさん :2001/05/04(金) 15:09
- >>266の3行目あたりの
#include hoge.c
は
#include hoge.h
の間違いです。ゴメンなさい。
- 269 :そう :2001/05/04(金) 15:51
- >264さん
エスケープシーケンスで検索したら見つかりました。
やっと理解する事が出来ました。
どうもありがとうございました。
- 270 :デフォルトの名無しさん :2001/05/04(金) 16:46
- >>267
hoge.hに書いてあるので、hoge.c内のrtn1の宣言は不要。
ついでに、関数ではexternがデフォルトだから、別に要らない。
rtn2をmainから見えなくしたいなら、static使え。
Cでstruct使うなら、普通typedefしないか?
- 271 :デフォルトの名無しさん :2001/05/04(金) 17:10
- VC6でアプリを書いているのですが、設定を保存するのに、レジストリではなくて、そのアプリだけのiniファイルを作りたいのですが、それらしいAPIが見つからなくて困ってます。ひとつ教えていただけませんか?
よろしくお願いします。
- 272 :デフォルトの名無しさん :2001/05/04(金) 18:45
- CとかC++でプログラム書く時って、関数ごとに別のソースに分けますか?
それとも、メインソースにダラダラと書きますか?
Cのプログラム書いたことが無いので、よく分からなくて。
今、VisualC++で、Win32APIでプログラム書いているのですが
Main.cppに全ての関数がある状態です。
で、ちょっとこれマズイのかな?と思い始めまして。
でも、さすがに関数ごとにソース分けるのもおかしいかなとも思うし
その辺の基準みたいなもの聞かせてもらえたら嬉しいです。
- 273 :SAGE :2001/05/04(金) 18:58
- >>271
WritePrivateProfileなんちゃら
>>272
C++だったらクラス毎で C でも意味のまとまり毎、だなぁ俺は。
- 274 :デフォルトの名無しさん :2001/05/04(金) 19:06
- >>272
クラステンプレートで /class 毎に。
関数テンプレートで適当に。
クラスで/class 毎に 場合によってはinterfaceクラスはまとめて。
グローバル関数やら変数で適当に。
- 275 :デフォルトの名無しさん :2001/05/04(金) 19:23
- >>272
便乗質問良いですか?
VisualC++でプログラムを分割した場合、どうやってビルドしたら良いのですか?
メインのプログラムに、includeで取り込むのですか?
それとも、分割した*.cppをプロジェクトに組み込んでビルドすれば
勝手に統合してくれるのですか?
後者で試してみたのですが、どうも上手くいかないです。
- 276 :274 :2001/05/04(金) 21:37
- >メインのプログラムに、includeで取り込むのですか?
その場合
/////// Class_000.h ///////
#if !defined(Class_000_H__14D886A0_2F63_11d5_9527_00909909BFEC__INCLUDED_)
#define Class_000_H__14D886A0_2F63_11d5_9527_00909909BFEC__INCLUDED_
class Sample;
class Sample
{
public:
Sample(){
Num = 0;
}
~Sample(){}
int
Sample_Func000();
void
Sample_Func001(int);
private:
int Num;
};
#endif
/////// Class_000.cpp ///////
#include "Class_004.h"
int
Sample::Sample_Func000(){
return Num;
}
void
Sample::Sample_Func001(int out_Int){
Num = out_Int;
}
/////// Main.cpp ///////
#include "Class_000.h"
int
main(void)
{
Sample Hoge;
}
のように組む。
#if !defined(Class_000_H__14D886A0_2F63_11d5_9527_00909909BFEC__INCLUDED_)
#define Class_000_H__14D886A0_2F63_11d5_9527_00909909BFEC__INCLUDED_
//ここに宣言する
#endif
で2重宣言をしないようにする。
ちなみに ”14D886A0_2F63_11d5_9527_00909909BFEC” は GuidGen.exe を使って作った
GUID(グローバルユニーク識別子)である。
>後者で試してみたのですが、どうも上手くいかないです。
プロジェクト-->設定-->*.cppを選択反転-->一般-->このファイルをビルドしない のチェックを外す
で組み込めば、多重定義しなければいけるはず。
ただし前者が一般的。
VC++が用意するヘッダを見れば参考になる。
- 277 :274 :2001/05/04(金) 21:57
- oops!!
mainでreturn 0; が抜けてたぜ。
- 278 : :2001/05/04(金) 23:10
-
- 279 :デフォルトの名無しさん :2001/05/04(金) 23:14
- >>277
C++のmain()では、returnを省略すると0を返すことになってなかったっけ。
帰省中で資料にあたれないので、間違ってたらスマソ。
- 280 :272 :2001/05/04(金) 23:18
- >>273
>>274
やはり、そのような感じでやって行くのが良いみたいですね。参考にします。
長いソースは見にくいので、デバックの効率も悪くなりますしね。
>>275
上手くコンパイルできないのは、分割したソースそれぞれに必要なファイルがincludeされてないからでは?
全部のソースに、#include <stdio.h> みたいなヘッダは必要ですよ。
>>276
ソース分割したときって、includeで取り込むのが一般的なんですか?
私は、単純にソースを分割してるだけなんですが。
もちろん、上記のようにそれぞれにincludeが必要ですし、externなども場合によって必要になりますね。
includeすると、それぞれのファイルがヘッダファイルと言うことになって、なんかおかしな気もしますが。
- 281 :274 :2001/05/05(土) 00:26
- >>280
>ソース分割したときって、includeで取り込むのが一般的なんですか?
一つのプロジェクト内にて複数ファイルで多重に宣言子を参照する場合。
ありがたみが分かるはずです。
宣言子などを使う操作は、ランタイムライブラリ関数を使う感覚でヘッダを
インクルードするだけなので統一性があって良いと思いますが。
- 282 :272 :2001/05/05(土) 01:17
- >>281
そうなんですか。
でも、例えば100個の別ソースがあった場合、includeが100個も並ぶことになりますが・・・。
確かに、includeするのが便利なような気もします。
- 283 :>282 :2001/05/05(土) 01:20
- ふつーヘッダで階層化しない?
- 284 :デフォルトの名無しさん :2001/05/05(土) 02:25
- なんかこの板ハイレベルですねぇ・・・
こんな質問するのは少し恐縮なんですが。。。
「マウスの速さ」ってどうやって変えるんでしょうか?
やはり SystemParametersInfo (SPI_SETMOUSE, 〜) を使うんでしょうか。
今やってみたけどなんか駄目みたいです。
どなたかご存知の方がいらっしゃいましたらよろしくお願いします。
環境は VC++6.0、Win2000 を使っています。
- 285 :デフォルトの名無しさん :2001/05/05(土) 04:06
- http://www.aizz.com/download/crackaccess.zip
- 286 :デフォルトの名無しさん :2001/05/05(土) 15:13
- >>270
ありがとうございます。staticがデフォだと思ってました。。
1人で作ってるからスコープなんて気にしたこと無かったんで勘違いしてました。
typedefはあんまり使いません。。
structhogeみたいにtypedefするから、なんか意味無いような気がしちゃって
使いません。使った方が良いんでしょうかね?
- 287 :デフォルトの名無しさん :2001/05/05(土) 22:28
- スレ立てるまでもない質問スレはどこにありますか?
- 288 :デフォルトの名無しさん :2001/05/05(土) 22:30
- VBAの質問はここでしてもいいですか?
- 289 :デフォルトの名無しさん :2001/05/05(土) 23:09
- プログラマに役に立つリンク集ってどこのスレにありますか?
- 290 :デフォルトの名無しさん :2001/05/06(日) 04:00
- Cの勉強をしてるのですが、勉強に使っている本の中に
システムコールが出てきました。
しかし、出てきたシステムコールの使い方について詳しく書いてありません。
明日辺り、本屋に行ってシステムコールについて載ってる本を買ってこようと
思うのですが、本を読み進めるためには、今すぐ知りたいと思いまして、
ここに投稿させていただきました。
どなたか、システムコールの一覧(もしくは一部)が紹介してある
ウェブサイトとかを知らないでしょうか?
もしご存知でしたら教えて下さい。よろしくお願いします。
- 291 :>290 :2001/05/06(日) 04:05
- 「システムコールの一覧」で検索してね。
- 292 :デフォルトの名無しさん :2001/05/06(日) 11:41
- ギコ猫、ちゃんと答えろや(゚Д゚)ゴルァ
- 293 :デフォルトの名無しさん :2001/05/06(日) 14:09
- ∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′ ̄ ̄( ゚Д゚)< コントロールパネルのマウス設定だ >>284
UU ̄ ̄ U U \_____________
∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′ ̄ ̄( ゚Д゚)< キーボードにそのボタンが亜るだろ。押せ>>290
UU ̄ ̄ U U \_____________
∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′ ̄ ̄( ゚Д゚)< GWで休業中だ>>292
UU ̄ ̄ U U \_____________
- 294 :284 :2001/05/06(日) 22:54
- >>293
いえいえ、そうではなくマウススピードを設定するツールを作っているんですが・・・。
そのための API の使い方がわからないのです。
多分、SystemParametersInfo (SPI_SETMOUSE, 0, 〜) 見たいな感じだと思うんですが。
- 295 :デフォルトの名無しさん :2001/05/07(月) 11:13
- | >>292 答えはギコ猫の数だけあるということで。
\__ _________________
━━━∨━━━━━━━━━━
.__ みんな正解
iii■∧ /
━ (,,゚Д゚) / ━━━━━ ∧∧━━ ∧∧
| つ ∇ (゚Д゚;) (゚Д゚;)
| |┌─┐ /⊂ ヽ /⊂ ヽ
〜| ||□| √ ̄ (___ノ〜 √ ̄ (___ノ〜
∪∪ | | || ━┳┛ || ━┳┛
 ̄ ̄ ̄ ̄| | ====∧==========
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| そんな答えが通用するかゴルァ
\____ ∧
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄ ̄
| ただ単に分からないだろ、教授?
- 296 :デフォルトの名無しさん :2001/05/08(火) 20:42
- というか、ギコ猫ハンドルを誰かに委譲したまえよ。
- 297 :転載 :2001/05/09(水) 00:03
- コンパネ
マウス速度 0 1 2 3 4 5 6
--------------------------
lpvParam[0] 0 A 7 4 4 4 4
lpvParam[1] 0 0 0 0 C 9 6
lpvParam[2] 0 1 1 1 2 2 2
--------------------------
int speed[3] = {4,6,2};//速度6
SystemParametersInfo (SPI_SETMOUSE, 0, &speed, 0)
これじゃ駄目?>>294
- 298 :デフォルトの名無しさん :2001/05/10(木) 17:19
- part6はまだどれくらいいったら?
- 299 :デフォルトの名無しさん :2001/05/11(金) 10:16
- ハッシュリストの実装法が載ってるURLを教えて偉い人
Perlのソースは読んだけど・・・わけわからん目が回った
- 300 :デフォルトの名無しさん :2001/05/11(金) 10:46
- >>299
一番簡単なのは、java.util.Hashtableのソース読む。
- 301 :デフォルトの名無しさん :2001/05/11(金) 11:29
- アルゴリズムの本一冊買っといて損ないよ
- 302 :デフォルトの名無しさん :2001/05/13(日) 01:40
- http://saki.2ch.net/test/read.cgi?bbs=lobby&key=989682679&ls=100
ロビーで阿呆がこんな事してしまいました。
この板の住人さんからもおしかりの一言をお待ちしています。
すみませんねぇ・・
- 303 :しー :2001/05/13(日) 04:43
チワ。
∧ ∧__
/(*゚Д゚)/)/\
/| ̄∪∪ ̄|\/
| しぃ |/
 ̄ ̄ ̄ ̄
- 304 :新米ギコ@ROM状態 :2001/05/14(月) 00:02
- ∧∧
(,゚д゚) < マターリと逝きましょう
ヽ/つ且~~
(__ _)
^
- 305 :デフォルトの名無しさん :2001/05/25(金) 21:24
- 3.4.7.8.+.-.*./.(.)
- 306 :デフォルトの名無しさん :2001/05/25(金) 23:23
- ?宇宙人ですか?>305
- 307 :デフォルトの名無しさん :2001/05/25(金) 23:51
- カッパ星人です。
- 308 :新米ギコ@ROM :2001/05/26(土) 03:26
- ∩ ∩
| ∪ |
./| |
| ∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| i ,,゚Д゚) < >>305 ポーランド人じゃないからわからんッス
U U \________
- 309 :デフォルトの名無しさん :2001/05/28(月) 00:13
- age
- 310 :デフォルトの名無しさん :2001/05/29(火) 00:29
- __ オハヨ
J_†_|__
/(*゚Д゚)/)/\
/| ̄∪∪ ̄|\/
| ╋ |/
 ̄ ̄ ̄ ̄
- 311 :デフォルトの名無しさん :2001/05/29(火) 14:12
- VB2とVB4が混在した環境で作ったプログラムをメンテすることに
なり呆然としています。
だれかアドバイスを〜〜
- 312 :デフォルトの名無しさん :2001/05/29(火) 14:36
- 逆ポーランド記法にカッコなんかないぞ??
- 313 :デフォルトの名無しさん :2001/05/29(火) 15:01
- >>311
ご愁傷様(-人-)ナムー
振舞いだけを参考に新規作成すべし。
で、開発はVB6でやるの?
- 314 :311 :2001/05/29(火) 15:58
- >>313
それができればいいんですが、<VB6で開発
「DLLのバージョン違うと動かん!」とかゆーてるので<先駆者
2台のPCにVB2とVB4別々につっこんで開発させられるかも〜
- 315 :デフォルトの名無しさん :2001/05/29(火) 16:07
- MS-ACCESSのVBプログラム中で、
「ファイルを開く」ダイアログを出して
任意のファイルや任意の拡張子のファイルを選ぶ方法はありますでしょうか?
あるいは、フォーム中でも任意のファイルを選ぶ方法を調べています。
- 316 :デフォルトの名無しさん :2001/05/29(火) 16:09
- tcl で書かれた文字コード変換プログラムってありますか?
perl で言う jcode.pl みたいな感じの物を探してます。
ではまた探してきます。
- 317 :デフォルトの名無しさん :2001/05/29(火) 17:45
- >>315
ツールボックスのツールの選択から
"Microsoft Common Dialog Control" を使うと出来ると思う。
- 318 :デフォルトの名無しさん :2001/05/29(火) 22:33
- tclならcのモジュール作っそれ使えば?>>316
- 319 :デフォルトの名無しさん :2001/05/29(火) 22:36
- どわすれしたよー(;_;)
関数へのポインタをtypedefすんのって
typedef (void (*) ()) voidfunc;
じゃなかったっけ?
- 320 :デフォルトの名無しさん :2001/05/29(火) 22:41
- >>319
typedef void (*voidfunc) () ;
ギコネコさぼってんな
- 321 :デフォルトの名無しさん :2001/06/01(金) 17:01
- 他のスレでも質問したのですが、
こちらでも質問させてください
ウィンドウモードで動くプログラムを組んでいるのですが
Win98、Meで、モニターの省電力モードから復帰したときに
プログラムが止まってしまっています
クライアント領域が真っ黒のままで、VCでブレークすることも
できません
Win2000では平気なんですが・・・
どなたか原因ご存じの方、お教えいただけませんか?
- 322 :デフォルトの名無しさん :2001/06/01(金) 20:26
- 多分プログラムが腐ってるんだろうから
見てみないことにはわからんよ。
モジュールを少しずつ切り離していって
どこまでなら動くか、どれを組み込むとダメかというテストをしていって、
問題を起こしている部分を特定していくのがいいと思うよ。
- 323 :新米ギコ :2001/06/22(金) 23:20
- ∧∧
(,゚д゚) <マターリ
ヽ/つ且~~
(__ _)
^
- 324 :ギコ猫 :2001/06/27(水) 04:02
- ∧ ∧ / ̄ ̄ ̄ ̄
( ,,) < あげ
/⊃⊂ \____
〜( _つ
し' ミ o
- 325 :デフォルトの名無しさん :2001/06/27(水) 17:46
- 本物?>ギコ猫
TAP3フォーマットの資料ってどっかにないでしょうか?
- 326 :新米ギコ :2001/07/24(火) 01:24
- ∧∧
¶( ゚Д゚) || <あ゙〜
ゝ|し |つ||
(_|./ | 人
U U 川
98 KB [ 2ちゃんねるも使っている 完全帯域保証 専用サーバ Big-Server.com ] 30,000円/月
★ 転送量無制限タイプも新登場。
新着レスの表示
掲示板に戻る 関連ページ 全部 次100 最新50read.cgi ver7.36p (04/12/10)