( ゚Д゚)ノ ギコ猫のプログラム相談室part5
■ このスレッドは過去ログ倉庫に格納されています
0001新米ギコ@開店休業
NGNG∧∧
¶( ゚Д゚) <、、、ここで聞いてからでも遅くないんだな
ゝ|し |┐
(_|./ |┘
U U
前スレ http://piza.2ch.net/test/read.cgi?bbs=tech&key=971446820
0002hage
NGNG0003優しい名無しさん
NGNGNEC PC-98, Win95でWin32 APIプログラミングをしています。
「カナ」キーのWM_KEYUP(押していたキーを離した)メッセージを拾おうとしているのですが、うまくいきません。
「カナ」キーを押し始めるとWM_KEYDOWNと一緒にWM_KEYUPも飛んできます。
実際に「カナ」キーを離したときは、何のメッセージも飛んできません。
またGetKeyState()のようなキーの押下状態を調べる関数もうまく動きませんでした。
PC-98で「カナ」キーを離したタイミングを調べることは無理なんでしょうか?
0004デフォルトの名無しさん
NGNGDIK_KANAキーは、トグルボタンでありプッシュボタンではない
ことに注意すること。これらのキーは、最初に押されたときに
ダウンイベントを生成し、2回目に押されたときにアップイベン
トを生成する。
MSDNライブラリより。たぶん無理なのでは。
0005デフォルトの名無しさん
NGNGキーボードで、「カナ」キーは一度目に押されたときにダウンイベントを
発生し、2回目に押されたときにアップイベントを発生する。3回目以
降は1回目に戻るという仕様のキーボードなのでは?
「カナ」キーがトグルボタンでない98で一度プログラムをテストされてみては
どうでしょうか。
0006MSME
NGNG一番役にたった知識を教えてください
ソートアルゴリズム、コンパイラ理論、
微積分、古典物理、漢字検定、などなど・・・
0007デフォルトの名無しさん
NGNG文字を入力させたいのですが、
==================================
system("/usr/bin/passwd user1");
fputs("OLDPASSWD", stdin);
fputs("NEWPASSWD", stdin);
fputs("NEWPASSWD", stdin);
==================================
としても、初めの変更前のパスワードを入力するプロンプトで
止まってしまい、うまく逝きません。
どなたか些細なことでもいいのでお知恵をお貸しください!
0008MSME
NGNGおねがいします
0009デフォルトの名無しさん
NGNG何でstdinにfputsだ?
00107
NGNGsystem関数で実行されたコマンドの入出力は標準入出力でいいんですよね?
0011デフォルトの名無しさん
NGNGstdout
0012デフォルトの名無しさん
NGNGsystem 関数は実行されたコマンドが
終了するまで戻りません。
あと、標準入出力に関しても誤解があります。
0013いつでもどこでも名無しさん
NGNG普通にメッセージをフックしてWM_MOUCEMOVEではウィンドウ内の動きしか捉えられません。
使用言語はC++Builder5です。
最近やっとこの辺が判りかけてきた者ですが、よろしくおねがいします。
00143
NGNGレスどうも。
>>キーボードで、「カナ」キーは一度目に押されたときにダウンイベントを
>>発生し、2回目に押されたときにアップイベントを発生する。3回目以
>>降は1回目に戻るという仕様のキーボードなのでは?
いろいろ試してみたのですが、↑の可能性は大です。
キーボードの仕様がそうなら、ソフトウェアでKEYUPを捉えるのは無理ですね。
とても参考になりました。
ありがとうございました。
0015デフォルトの名無しさん
NGNG・ドラッグしながらウィンドウの外にマウスが出るようなときは、マウスキャプチャー(SetCapture())。
・マウスの座標が知りたければGetCursorPos()。この関数と一緒に無限ループやタイマーを使えば、動的にマウスの動きを捉えることができる。
・マウスに関する全てのメッセージを捉えたければ、システムフック(SetWindowsHookEx())。一番便利だけど、DLLを作る必要がある。
猫でも〜
http://hp.vector.co.jp/authors/VA010523/sdk2/sdk_162.htm
0016デフォルトの名無しさん
NGNG動き(座標)を取得するだけならタイマーの方が楽だよ。
SetTimer(hwnd , ID , ms , NULL);
を使えば ms 後に hwnd に
WM_TIMER
が送られてくる。
そうしたら GetCursorPos(LPPOINT) を使って座標をとる。
001716
NGNG寝起きでボケてるのでゴメン。
001817
NGNG0019>18
NGNGその書き方じゃ俺が18書いたみたいじゃん。
18は17じゃないよ。
002013
NGNGありがとうございました。
何を作りたかったのかというと、デスクトップ上でマウスが特定の領域に行ったらポップアップする常駐型のアプリを作りたかったんです。
方法としては、システムをフックするしかないようですね。
難しいですが、ちょっとがんばってみます。
00217
NGNG出直してきます。
0022デフォルトの名無しさん
NGNGプログラムに対して入力を流し込むだけなら普通はpopen(3)が
一番簡単で、
fp = popen("/usr/bin/more", "w");
とすると、fpとmoreの標準入力が結合されて、fpへ書き込んだ
データはmoreに渡されることになる。
ただし、passwdプログラムの場合は、ユーザ入力を標準入力から
読んでいないので、こんなやり方では駄目。
大抵のUNIX実装ではAT&Tの第7版の時代から存在するgetpass(3)という
ライブラリ関数が使われていると思われるが、これは自分で
/dev/ttyをopenし、端末をNOECHOに設定してユーザ入力を読み込むので、
標準入力にデータを流し込んでも意味がないのです。
00237
NGNGありがとうございます。
非常に参考になります。
どうしても passwd をプログラムから実行させたいのでがんばってみます。
002424
NGNGlpsz
って何の略なのでしょうか?
0025デフォルトの名無しさん
NGNG002624
NGNGありがとうございます
ところで
long pointer string
はよしとして、なぜ
zero
なのでしょうか?
0027デフォルトの名無しさん
NGNG0028デフォルトの名無しさん
NGNGnull文字(=zero)で終わるから
0029デフォルトの名無しさん
NGNG無理だと思いますが。
0030デフォルトの名無しさん
NGNGどんなものが有りますか?
0031>30
NGNG利点はエディタがC++を「知って」いるので、
関数の引数リストを表示したり、コードを保管したりしてくれること。
これはVC以外のコンパイラを使ってるときにも、それなりに機能する。
あと、WZのアウトライン機能が便利。
ソースの構造クラス・関数などの構造をツリー表示してくれるので。
0032デフォルトの名無しさん
NGNG0033デフォルトの名無しさん
NGNG¶( ゚Д゚) <呼んだか?
ゝ|し |┐
(_|./ |┘
U U
0034新米ギコ@島流し中
NGNG¶( ゚Д゚) / < >>6 コンパイラのことはことが少しはわかっているとコンパイルエラー
ゝ| つ●) で躓くことも少なくなるぞ!
(.| | #つーか、CS関係のことなら知ってて損は無いぞ
U U
∧∧ *
¶( ゚Д゚) / < >>30 notepadでガリガリ書け!
ゝ| つ●)
(.| |
U U
∧∧ *
¶( ゚Д゚) / < >>32 モナー板にはたくさんギコとかいるぞ
ゝ| つ●)
(.| |
U U
0035デフォルトの名無しさん
NGNGedlinでガリガリ書け!
0036デフォルトの名無しさん
NGNG0037デフォルトの名無しさん
NGNGtype conでガリガリ書け!
100%の正確さで入力できるぞ。
0038デフォルトの名無しさん
NGNG0039デフォルトの名無しさん
NGNG0040デフォルトの名無しさん
NGNG具体的には、*s="あいうえお"、みたいな文字列があったとして、
*(s+3)で’う’になる、という感じのことをやりたいです。
ヘルプを見たけど、Unicodeがどうたらこうたらとかばかりでさっぱりわかりませんでした。
0041デフォルトの名無しさん
NGNGって s はなんだー?、char *sか???
その代入式を見る限り、char**sのようだが、それで*(s+3)で'う'?
よくわからんが、wchar_t*s; s = "あいうえお"L; で
*(s+3)=='う'L だな。これで本当に意図しているものかは40しかしらないだろう。
0042デフォルトの名無しさん
NGNGシステム開発を要求するクライアントとシステムを供給(サーブ)するプログラマ。
および文字には現れない間に入る営業の三つの階層によって構成される最下層のプログラマをいじめる仕組み。
ものすごい大雑把な希望的システム要求を「ほいほいできますよ〜」と安請け合いする営業。それを唯一実現不能と知っているプログラマが泣く泣くクライアントに実現可能な範囲の仕様をもってお詫びに行く。理解あるクライアントはここでわかってくれるが、契約を元にガンと引かない、さらには営業経由で怒なりにくる困ったクライアントもいるため、最下層プログラマの胃はガストールでも治療不能になる。
0043デフォルトの名無しさん
NGNGご愁傷様です。
明日もガストールで頑張ってください。
0044デフォルトの名無しさん
NGNG全角文字しかないのであればキャスト変換(WORD*)でできる。
半角が混ざるなら自分で文字の判定するか専用の文字列クラスを使うか。
専用文字列クラスはないから自作する。(Unicode環境ならCstringが使える)
0045デフォルトの名無しさん
NGNGUnix Cで
dbopen()
関数を使いたいのですが
ライブラリは何を含めれば良いのでしょう?
ヘッダファイル定義は下の通りにしたのですが
コンパイラ(cc)に関数が見つからないと怒られてしまうので・・・
環境:Tru64Unix(チューンナップされている可能性あり)
#include <sys/types.h>
#include <limits.h>
#include <db.h>
#include <fcntl.h>
#include <sys/stat.h>
0046デフォルトの名無しさん
NGNGなんか初めて見た>Tru64Unix。
企業?大学?
なんかしらんがカックイイ。
004740
NGNG説明が下手ですいませんでした。
とりあえず文字列の前にLをつけて、直接L"あいうえお"と代入してみたらいけました。
Lをつけないといけなかったんですね。
次はファイルから全角文字列を入力したいんですが、fgetwsでやったらうまく出来ませんでした。
fgetsでchar型でなら普通に入力できたので、これをwchar_t型に変換すればいいかともおもったのですが
この方法もだめでした。キャストをいろいろやってみたんですがどうも上手くいかないです。
0048DigitalUNIX 4.0 だけど
NGNG% nm /usr/lib/libdb.a | grep dbopen
0000000000000000 T dbopen
%
0049デフォルトの名無しさん
NGNGZ80からスペースを送り、PCでZ80のBaund Rateを
自動的に検出するにはどうしたらよいでしょうか?
受信したら次の受信が有るまでカウント。
で、時間を表示。を繰り返す、だと誤差が大きくなりそうな気がするんですが?
0050デフォルトの名無しさん
NGNGスペースって、ASCIIコード0x20のスペース?
それとも信号レベルのスペース?
まあ、どちらでも、正しく受信できるまでbit rate変えながら受信するというのはどうよ?
信号スペースなら高いレートからだんだん下げて、
ストップビットが正しく検出できるまで
すなわちフレーミングエラーが出なくなるまで下げればいいと、漠然に思う。
それと調歩同期だと、キャラクタ間隔は任意なので受信して次の受信までをカウントって
意味がないと思います。
最後に、Z80-SIOとPC間の通信でbaud rateは無いと思うぞ。
bit rateだろ。(変調していないのに変調速度のbaudを使うのは変)
005149
NGNG>Z80-SIOとPC間の通信でbaud rateは無いと思うぞ。
そうなんですか!?もらったテキストにはそう書いてあったので・・・。
しかもBaudとBitの違いは今調べてる所だったりする(汗
スペースはASCIIコード0x20のスペースです。
間隔はZ80にロードさせるプログラムで制御できるから〜みたいなことを言われたのですが、
伝送速度=1200*n[Baud]
と書いてあるからにはプログラムで決まる物ではなさそうな気がしてきたし・・・
シリアル通信についてわかりやすく書いてあるHPや書籍などあったら教えてくださいm(__)m
0052デフォルトの名無しさん
NGNGどうやってるんだろ。
0054デフォルトの名無しさん
NGNGわー、懐かしい・・・
Z80はロボコンの時に使ったっきりだなー
ロムライターまで買ってきたのに・・・
シリアル通信の本じゃないけど
「Z80のすべて」だったかな
(すみません、しばらく見てないんで題名が怪しいです、帰って確認したら題名と出版社書きにきますんで・・・)
良い本です
水色で、正方形の本です
005549
NGNGありがとうございます!探してみますね。
そして実験室の装置はきっと10年前から変わっていないのです(^^;)
0056デフォルトの名無しさん
NGNGATはそのコード 41 54 に秘密があるのだ〜
と聞いたことがあるけど、どんな秘密かは聞いていない。
005754
NGNG「図解 Z80 マシン語制御のすべて」 東京電機大学出版局
です
0058新米ギコ@国内某所
NGNG(;゚Д゚) < 気分転換!
.=| |===U=U===| |= \_____
| | 〜ノ ノ | |
| | ι J′ ||
| | ||
~~~~~~~~~~~~~~~~~
0059教えてください。
NGNGソースも書き込みますからそれについて教えてもらえるでしょうか?
とりあえず、大丈夫かどうかのレスをつくことを待ってみます。
願いsage
0060デフォルトの名無しさん
NGNG重要なのは、「読み手が見やすいソース」と
「どこがわからないかはっきりさせる(ように努力する)」
0061教えてください
NGNGありがとうございます!
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つの条件の一つだけでも結構ですので教えてください。
よろしくお願いします。
0062ちょうてきとー
NGNG{
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;
}
006362
NGNGそれに、そのままコードに落としても、何箇所もバグってる。
見つけて直してね。
0064新米ギコ@ダメな見本
NGNG(,゚д゚) < 手元に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;
}
0065デフォルトの名無しさん
NGNGどこかで公開されてる?
0066デフォルトの名無しさん
NGNG選択された(複数選択の場合は、一番上)行の文字列を取得することが
できない!
検索エンジンで色々調べたけど、出てないみたいだし、あってもJAVA。
みんな、ListViewには表示しかしてないの?
そこから値をとってる人がいたら、コード教えて下さい!
0068デフォルトの名無しさん
NGNGCB_??
でやってく方法がある
0069デフォルトの名無しさん
NGNGstatic char b ;
static const char c ;
const static char d ;
a,b,c,d は、違いますか?それとも同じですか?
#sageでもカウントするよーになったんだね。
0070デフォルトの名無しさん
NGNG以下の方法でいいのですか?
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;
}
0071デフォルトの名無しさん
NGNG初期化無しconstに何の意味があるだろうか、いや、ありはしない(反語)
0072デフォルトの名無しさん
NGNGstaticの場合初期化していなくとも暗黙に初期化されているので
多少は意味がありそうだ
0073デフォルトの名無しさん
NGNGそれは文字としての1じゃなくて
0x01,0x00,0x00,0x00 という4バイトを送ろうとしてるけど、それでいんだね?
即座に閉じてるから普通は最初の1バイトしか送られないかもしれないけど
為に何バイトか気まぐれに送られるかもしれないけど、それもそれでいいんだね?
0074デフォルトの名無しさん
NGNG良くないでーす!
教えて下さーい。
0075何も知らない人
NGNGそれぞれの言語はどういった物を作るのに向いてるのですか?
0076デフォルトの名無しさん
NGNGソフトウェアという物
0077デフォルトの名無しさん
NGNGintが4バイトだから4バイト?
Intel(互換CPU)搭載機では0x00,0x01,0x00,0x00じゃなくて?
0078デフォルトの名無しさん
NGNGJava 言語オタク
VC 混乱した人
Delphi クラスを使うことがオブジェクト指向だと勘違いする人
VB 厨房
0079デフォルトの名無しさん
NGNG文句ばかりだねぇ〜。
悪い事ばかり考える人って
かわいそう...
何処でそんなにひねくれちゃったの?
0080デフォルトの名無しさん
NGNG0081デフォルトの名無しさん
NGNGなんじゃその妙なバイトオーダーは?
0082デフォルトのゲイツさん
NGNGVC 仕事で無理やり
Delphi MS嫌い
VB 叩かれるのが好きなマゾ
0083新米ギコ
NGNG¶( ゚Д゚) =3 >>65 M$の飯のタネであるところのword,excelのフォーマットは
ゝ| つ日~~ 原則非公開! 誰かhackしてるかもしれないけどね
(,|/ )
U U
∧∧ プハー
¶( ゚Д゚) =3 >>69 C++だとconstは定数だ!変数に付けるstaticをconstに
ゝ| つ日~~ 付けるのは無意味だ!
(,|/ )
U U
∧∧ プハー
¶( ゚Д゚) =3 >>try&errorだ!ここで聞く前にチャレンヂだ!
ゝ| つ日~~
(,|/ )
U U
0084MSのやろうヘルプ日本語化しろよゴルァ!!
NGNGATLやらMFCやらWin32APIをどういうふうに使い分けたらいいかわかりません。
それぞれどういうときに使ったらよろしいのでしょうか?
また、2chではMFCはクソといわれているようですがなぜでしょうか?
ギコ様教えてください。
0085デフォルトの名無しさん
NGNGどれか1つに集中しなさい。というかVCLにしなさい。
0086:MSのやろうヘルプ日本語化しろよゴルァ!!
NGNGVCLって確かBCBについてくるやつですよね。
すでにVC6買っちゃったものでそれは選択できないんですよ。
0087デフォルトの名無しさん
NGNGじゃ、好きにしなさい。
0088:MSのやろうヘルプ日本語化しろよゴルァ!!
NGNGそ、そんな〜
ギコねこ〜〜〜〜
たすけてーー!
0089デフォルトの名無しさん
NGNG0090名無しさん || die
NGNGこれのソースを読めば多少は分かるかも。 http://www.xlhtml.org/
ついでにWordならこっち。 http://www.wvware.com/
0091デフォルトの名無しさん
NGNGよくこの板で「SDK」と呼ばれているものがよくわかりません。
Win32 用の SDK があるんですか?
009291
NGNG0093SAGE
NGNGほりゃ。
http://www.microsoft.com/msdownload/platformsdk/setuplauncher.htm
というか、別に落としてこないでもキミのPCには
既に入っててしかも既に使っているだろうから心配するな。
009491
NGNGするとプラットフォーム SDK つうのは、
UN*X における /usr/include と /usr/lib 一式である、
という理解でよろしいでしょうか?
つまりぼくが VC++ をインストールしたときにこれらは
一緒にインストールされていた、ということですね。
それで、「SDK を使ったプログラミング」とゆーのは、
Win32API を (or も) 使ったプログラミング、という意味なんで
しょうか?
0095デフォルトの名無しさん
NGNG0096STL厨房
NGNG&(*i)でいいんですか?
コンパイルは通ったけど、なんか気持ち悪い。
0097クロネコ
NGNG最初からポインタで監理するものではないのか?
そうすりゃ(*ite)ですむじゃん。
普通コンテナには実体をつっこまないと思うんだけど。
つっこむとしたら、やっぱり&(*ite)でいいとおもうしあんまし変でもないし。
0098STL厨房
NGNG構造体のメンバは(*ite).memberなのに、
ループ内で関数にポインタを渡すときはf(&(*ite))みたいな
変幻自在かげんが不思議だったもので。
厨房らしくvector使うことにします。
0099デフォルトの名無しさん
NGNG0100デフォルトの名無しさん
NGNGこれ使えば
0101デフォルトの名無しさん
NGNG情報どうもありがとう。
やぱーりWinでもregex使うんですね
■ このスレッドは過去ログ倉庫に格納されています