トップページ⇒tech
1001コメント288KB

***すれ立てるまでもない質問はここで 第5刷***

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
質問する前に
http://www.google.com/
http://2ken.net/
などで検索してみてください。
そのほうが早いかもしれませんし。

過去スレは>>2
0002デフォルトの名無しさんNGNG
第1刷
http://piza.2ch.net/tech/kako/975/975576060.html
第2刷
http://piza.2ch.net/tech/kako/990/990082077.html
第3刷
http://piza2.2ch.net/tech/kako/993/993933402.html
第4刷(タイトルは間違ってるけど)
http://piza2.2ch.net/test/read.cgi/tech/998403891/
00031NGNG
http://2ch-kensaku.ddo.jp/に張ったほうがよかったかも…。
00041NGNG
あと、第3刷はまだhtml化されてないらしいけど
されたら、ちゃんと開けると思う。
0005デフォルトの名無しさんNGNG
こんにちは、
最近Winのプログラムを始めました。環境はVCのCです。
それで、質問です。
WinでBMPを表示する場合、画像毎にDIBSectionを作成するのですか?
あと、BMP表示系のAPIはいくつ位あるのですか?
Win汎用で高速なものを探しています。

ご教授お願いします。
0006デフォルトの名無しさんNGNG
リソースにビットマップを置いて、LoadBitmap で読み出す。
0007デフォルトの名無しさんNGNG
Bitmap系はDirectDraw HAL以外は速度的に大差ない。
DIBSection
CreateDIBitmap
SetDIBitsToDevice
下に行くほうが使い勝手がいい
0008デフォルトの名無しさんNGNG
>>5
MSDNでDIBをキーワードに検索すれば?
0009デフォルトの名無しさんNGNG
初心者なものでアホな質問だったらすいません。
Cで書いたプログラムをブラウザ上で動かすことってできないのですか?
0010デフォルトの名無しさんNGNG
JavaなりActiveXコントロールなりでCインタプリタでも書けば?
0011デフォルトの名無しさんNGNG
>>9
> Cで書いたプログラムをブラウザ上で動かすことってできないのですか?
2つの方法があります。
・CソースをJavaバイトコードに変換するコンパイラを作る
・CVMを作って、ブラウザにPlag-Inする

私は前者の方法をお勧めします
0012デフォルトの名無しさんNGNG
>>9 CでActiveXコントロールつくれや
0013デフォルトの名無しさんNGNG
>>11
前者はさがせばあるはず。
JVM用にコンパイルする試みって結構あったから
0014デフォルトの名無しさんNGNG
フリーのMS-Cコンパイラはそこらに落ちてませんか
0015デフォルトの名無しさんNGNG
>>14
モシモシ? ネタ?

Borland C++ なら落ちてます。
0016デフォルトの名無しさんNGNG
>>15
ネタにネタレス
カッコ(・∀・)イイ!
0017デフォルトの名無しさんNGNG
>9
一般的な方法じゃないけどCでCGIを書くこともできます。
2ちゃんねるみたいな掲示板を作ることも可能ってことです。
0018デフォルトの名無しさんNGNG
CGIはブラウザ上で動くわけじゃないよ。
0019デフォルトの名無しさんNGNG
誰かがActiveScript対応のCのインタプリタ作れば
ブラウザ上で動くよ。
0020デフォルトの名無しさんNGNG
はじめまして。おじゃまします。
早速ですが質問です。(スレ違いならすみません。)

Q.Visual Basic 6.0 で、2つのテキストファイルの内容を比較して、
変更点があった場合のみ更新する。という処理を行いたいのですが、
ファイルサイズだけではちゃんとした比較になりませんでした。。。(あたりまえか(^^;))
よいアドバイスあればよろしくおねがいします。

ちなみに当方、VB初心者です。
0021デフォルトの名無しさんNGNG
>>20
日付で比較しろ
0022デフォルトの名無しさんNGNG
>20
こっちの方がいいよ、多分。
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1000523122
0023デフォルトの名無しさんNGNG
はじめまして。おじゃまします。
早速ですが質問です。(スレ違いならすみません。)

Q.Visual Basic 6.0 で、2つのテキストファイルの内容を比較して、
変更点があった場合のみ更新する。という処理を行いたいのですが、
ファイルサイズだけではちゃんとした比較になりませんでした。。。(あたりまえか(^^;))
よいアドバイスあればよろしくおねがいします。

ちなみに当方、VB初心者です。
0024デフォルトの名無しさんNGNG
とりあえず windiff を使ってみて、
自分がいったい何をやりたいのか、
そもそもそんなモノは必要なのか考えて見よ。
0025デフォルトの名無しさんNGNG
>>23
日付で比較しろ
0026デフォルトの名無しさんNGNG
>>23
[F1]キーを押してみよ。何か現れたら、[キーワード]の所に「Input キーワード」って打ってみよ。
0027デフォルトの名無しさんNGNG
#include <stdio.h>
int x,y;

main()
{
int c;
while( 1 ){
printf("これから、y/xを約分します\n");
printf("正の整数xを入力してください\n");
scanf("%d",&x);
printf("正の整数yを入力してください\n");
scanf("%d",&y);
printf("続けますか?\ny/n?\n");
c=getchar();
if (c != 'y')
break;
}
}

このプログラムを作ったんですが
x,yを入力するまでは良いのですが、
c=getchar();
が機能していないようです。何故でしょうか?
0028デフォルトの名無しさんNGNG
なんでだと思う?
002927NGNG
もしかして、どこかのつづりが違うとか、
うっかりミスですか?
0030デフォルトの名無しさんNGNG
それは違うなぁ。つづりはあってそう。
0031デフォルトの名無しさんNGNG
UNIX系(Linuxも含む)の getchar はラインバッファリングが働く。
[Enter]キーを押さないとダメってこと。
0032デフォルトの名無しさんNGNG
scanfのマニュアルをしっかり読めば、何でか分かるはずなんだが..

# scanfの書式指定の意味をきちんと説明してる本って、少ないねえ。
0033デフォルトの名無しさんNGNG
WinのDOSでもダメだよ。
getchar()
の前に
fflush(stdin);
として、入力バッファを綺麗にしとかないといけない。
ちょっと親切過ぎかもしれんけど、初心者には分からんでしょ、これは。
ところで、x,yを入力したはいいけど、どこで約分してんの?
0034デフォルトの名無しさんNGNG
それより、cの値を見てみるのが一番だと思うぞ。
0035デフォルトの名無しさんNGNG
>>33
fflushってstdout、stderrにしか使えないんじゃないのか?
0036デフォルトの名無しさんNGNG
使えるよ。試せば分かる。
0037デフォルトの名無しさんNGNG
>>33
>fflush(stdin);
無駄。
問題はscanfに有り。
003827NGNG
そうですか、わざわざすいません・・・
scanfについての知識が少なかったみたいです・・・
約分は、これからつくります。
003927NGNG
えっ?
>>37さん
fflush(stdin);
を入れたら、無事に入力できたんですが
なにか問題あるのでしょうか?
0040デフォルトの名無しさんNGNG
動くってば。//を外して試してみ?

#include <stdio.h>
int x,y;

void main()
{
 int c;

 while(1){
  printf("これから、y/xを約分します\n");
  printf("正の整数xを入力してください\n");
  scanf("%d",&x);
  printf("正の整数yを入力してください\n");
  scanf("%d",&y);
  printf("続けますか?\ny/n?\n");
//  fflush(stdin);
  c=getchar();

  printf( "\n%d\n", c );
  if(c!='y')
   break;
 }
}
0041デフォルトの名無しさんNGNG
かわいそうだからヒント。

scanfの書式指定で、空白記号を指定したときにどういう動作をするか
調べときなさい。

fflushは、ドキュン系プログラムによくあるけど
たまたま動いてるだけだからまねするな。
0042デフォルトの名無しさんNGNG
fflush(stdin)が効くのは実装依存じゃないだろうか?
仕様的にはやっても無駄だと思われ。
0043デフォルトの名無しさんNGNG
動けばいいってモノじゃないだろ
0044デフォルトの名無しさんNGNG
気にする必要なし。fflushの使い方も間違ってない。
0045デフォルトの名無しさんNGNG
44=40=36
適当な事言うなよ・・
004627NGNG
とりあえずメモリに残っていた
\nを削除するために
こういうプログラムにしてみましたが、
これでよいでしょうか?

#include <stdio.h>
int x,y;

main()
{
char c;
while( 1 ){
printf("これから、y/xを約分します\n");
printf("正の整数xを入力してください\n");
scanf("%d",&x);
printf("正の整数yを入力してください\n");
scanf("%d",&y);
printf("\n");
if(x < 0 || y < 0)
break;
printf("続けますか?\ny/n?\n");
scanf("%c",&c);
scanf("%c",&c);
if (c != 'y')
break;
}
}
004727NGNG
あっ最後のscanfはc=getchar();
の間違いです。
0048デフォルトの名無しさんNGNG
JPEGのアルゴリズムを教えてください。
今度、マイコンで実装することになったんだけど
さっぱりわからんですよ
0049デフォルトの名無しさんNGNG
>JPEGのアルゴリズム
で検索しろ
0050デフォルトの名無しさんNGNG
yに"1 2"とかいれると終わっちゃうね。
0051デフォルトの名無しさんNGNG
DCT→ランレングスとかだっけ?
ハフマンとかも使ってたっけ?
0052デフォルトの名無しさんNGNG
>45
お前が適当だ、(゚Д゚)ゴルァ!


解説

fflush 関数はストリームをフラッシュします。stream に結合されているファイルが出力用に開いている場合は、
fflush はストリームに結合されているバッファの内容をそのファイルに書き込みます。
ストリームが入力用に開いている場合は、バッファの内容をクリアします。
fflush 関数は、stream に対する ungetc 関数の呼び出し結果を無効にします。
また、引数に NULL ポインタを渡すと (fflush (NULL) ) 、出力用に開いているすべてのストリームをフラッシュします。
ストリームは、fflush 関数の呼び出し後も開いてままです。
fflush 関数は、バッファリングされていないストリームには影響しません。


プログラム例

/* FFLUSH.C: */
#include <stdio.h>
#include <conio.h>

void main( void )
{
int integer;
char string[81];

/* 各ワードを 1 つの文字列として読み出します。*/
printf( "scanf 関数の入力として、4 語の文を入力してください: " );
for( integer = 0; integer < 4; integer++ )
{
scanf( "%s", string );
printf( "%s\n", string );
}

/* gets 関数を使う前に入力バッファをフラッシュしなければなりません。*/
fflush( stdin );
printf( "gets 関数の入力として、同じ文を入力してください: " );
gets( string );
printf( "%s\n", string );
}


文句があればMSにでも逝って故意、ヴォケが。
0053デフォルトの名無しさんNGNG
>>52
(;´д`)・・・

もろ処理系依存じゃん・・・
0054デフォルトの名無しさんNGNG
たとえ処理系依存でも、まったく役に立たないわけじゃない。
実際に使う側にとっては処理系ごとに解説してもらった方が
親切ってもんでしょ。
005527NGNG
yに1 2と入力したら
機能しないですね.
空白を消すにはどうしたら良いか調べておきます。
とりあえず今日はもう寝ないと、では皆さんありがとうございました。
0056デフォルトの名無しさんNGNG
放置。いいですね?>>54
0057デフォルトの名無しさんNGNG
fflushってANSI C標準じゃないの?
0058デフォルトの名無しさんNGNG
WindowsNT/2000でもタイマリソースケチる必要あるの?
0059デフォルトの名無しさんNGNG
>>57

http://www.lysator.liu.se/c/c-faq/c-11.html#11-12
> 11.12: How can I flush pending input so that a user's typeahead isn't read at the next prompt? Will fflush(stdin) work?
>fflush is defined only for output streams. (略)
>There is no standard way to discard unread characters from a stdio input buffer, nor would such a way be sufficient; unread characters can also accumulate in other, OS-level input buffers.
つーことでfflushは書き込みのフラッシュ専用で、読み込みについては定義されていないのか。
0060デフォルトの名無しさんNGNG
>>48
http://www.jpeg.org/
0061デフォルトの名無しさんNGNG
>>59
> つーことでfflushは書き込みのフラッシュ専用で、読み込みについては定義されていないのか。
噂ではBSDにはfpurge()というのがあるらしい
0062デフォルトの名無しさんNGNG
VCでネットを使ってのファイルの転送やチャットの出来るソフトを練習がてら
作ってみたいのですが、どこか勉強になるサイトはないでしょうか?
0063デフォルトの名無しさんNGNG
>>62
http://www.microsoft.com/japan/developer/library/default.asp
0064デフォルトの名無しさんNGNG
OSのバージョンを調べるサブルーチンを作っています、
GetVersionEx()を使っていますが、サービスパックの情報は
OSVERSIONINFO.szCSDVersionに入る文字列で知るしかないのでしょうか?
メジャーバージョンやらのように数値として取れないのでしょうか?
"Service Pack 5"とかいうのは、NT,2K,XPでもお約束なのでしょうかね・・・
006564NGNG
すみません、あと・・・
NT,2K,Xpなどで、サーバーかワークステーションかの判別って
どの様にするんでしょうか?
Wordのヘルプのシステム情報とかだと製品の種類のところに『WorkStation』
って出てるんですよねぇ
0066デフォルトの名無しさんNGNG
 これってドキュソな構造でしょうか…。
 WinNTかのデーモンソフトで、管理用のGUI部分と処理のデーモン部分
が別々の.exeになっていて、これらはHD上のファイルでメッセージを
交換し合います。私の上司はCOMもパイプもなにも知らない人なので、
こういう方法でやれと言われているのですが、なんとなく何かがまちが
っていると感じてます。でも、どう理論的に反論していいのかよくわ
からないです。どうか、ファイルでのアプリ間のメッセージ交換がおか
しいのか、おかしいとしたらどうおかしいのか教えていただけませんか。
よろしくおねがいします。
0067デフォルトの名無しさんNGNG
プロセス間通信勉強してみたら
ファイルでのやり取りはたしかにダサいとは思うがログも取ってると
思えば悪くはない。パイプでもソケットでもそれぞれ長所短所並べて
説得してみ。
0068デフォルトの名無しさんNGNG
ホントにHD上のファイルっていったの?

ファイル マッピングを聞き間違えたんじゃなくて?
0069デフォルトの名無しさんNGNG
66です。本当にHD上のファイルです。他にも似たようなアプリがあって
それらはすべて.hogehogeなんたらという拡張子のみのファイルを使って
通信しているんで、まちがいないです。でも、一応、みんなとりあえず
動いているんで、「動くんだからいいじゃないか!」と言われると
なにも言い返せないです。
0070デフォルトの名無しさんNGNG
いやだからファイルマッピングによる通信でも ファイルは出来るよ
ttp://www.kumei.ne.jp/c_lang/sdk2/sdk_123.htm
0071デフォルトの名無しさんNGNG
まさか HD上のファイルだからといって fopen / fwrite / fread で アクセスしてる
と思ってる訳じゃないでしょ?

 ファイルマッピングを使えば、仮想メモリをそのファイル上に割り当てる。
同じファイルを別のプロセスでファイルマッピングすれば、 物理的には同じ
メモリを共有する訳だから通信としては遅い訳ではない
0072デフォルトの名無しさんNGNG
66です。上司の知識レベルからして、ほぼ間違いなくファイルマッピング
も知らないのではないかと思われるのですが、よく考えて見るとたしかに
71さんのおっしゃるとおりですね。でも、私としては、fopenその他で
アクセスが行われていると疑ってます。
上司の言うとおりにすべて作るか、ファイルマッピングを使ってしまうか
迷うところです。
0073デフォルトの名無しさんNGNG
自分はこれからcとdelphiどちらかを
やろうかと思っていますが
初心者はどちらから始めたほうが良いでしょうか?
0074デフォルトの名無しさんNGNG
DelphiでWinアプリ作る方が興味が長続きすると思うよ >>73

まずは プログラミングに慣れる為にはね
0075デフォルトの名無しさんNGNG
一生Delphi。
Delphi最高!
他は糞ゴミ。
0076デフォルトの名無しさんNGNG
>>73
根気がある
将来は職業プログラマになりたい
=> C

GUIのソフトを作りたい
趣味でオンラインソフトを作りたい
=> Delphi
007773NGNG
そうですよね。C言語でwinアプリのソース見たんですが
長くってちょっとって感じでしたから
del始めようかと思います。74ばんさん
ありがとうございました。
0078デフォルトの名無しさんNGNG
「本当に」「HD上の」ファイルを通じて通信しても
Win2000ならばキャッシュがまともだから結構速かったりする。
007973NGNG
一回del始めちゃったら
C言語扱いにくくなりますか?
最終的にはC言語マスターしようかとおもてるんですけど・・・
0080デフォルトの名無しさんNGNG
Delphi は Object Pascal.
昔は Pascal やってから C をやるものとされていた。
0081デフォルトの名無しさんNGNG
結局やることになるなら最初からやった方がいいかも
0082デフォルトの名無しさんNGNG
逆にC言語特有の癖を覚えると他の言語を勉強するときに
悪影響を及ぼすこともある。

今からやるんだったら、C以外の新しめの言語をやっておいたほうがいいんじゃないかなあ。

とりあえず気にせずにDelでもJavaでも一通りやってみることをお勧めするが。ひとつを知れば他を勉強することもたやすいから。
0083デフォルトの名無しさんNGNG
新しく開かれようとしているWindowのハンドルを取得する、
といったことはできるのでしょうか。可能ならば使うべき関数名、
もしくは参考になりそうなサイトや検索キーワード等を
教えてください。

開発環境はBorlandC++Builderですが、API関数の領分のような
気がしたのでここに書かせてもらいました。
0084デフォルトの名無しさんNGNG
>>79
delからやっても段階的にはいいと思うが、
下手にはまるとC言語がクソに思えてしまうので要注意。
0085デフォルトの名無しさんNGNG
>>83
できるよ
WIN32APIの関数を呼ぶにはコンポーネントのPerform関数を使うといいよ。
008683NGNG
なんというAPI関数を調べれば良いのか教えてもらえないでしょうか?
0087デフォルトの名無しさんNGNG
>>83 だから何のハンドル?

窓のハンドルなら FormのHandleプロパティにあるじゃない?
008883NGNG
>>87
すみません、書き方が悪かったです。

自分自身はモニタのような感じで、起動している間に他に開かれた
窓があれば、その窓のハンドルを取得する、という動作をさせたいです。
0089デフォルトの名無しさんNGNG
>>83
WH_CBT(笑
0090デフォルトの名無しさんNGNG
>>88
そのアプリケーション以外の窓のハンドルですか?
0091デフォルトの名無しさんNGNG
>88
「システムフック」とか「グローバルフック」で検索してみろ。
0092デフォルトの名無しさんNGNG
>>89
そのものずばりのものがあるみたいですね(汗)
ありがとうございました。
0093デフォルトの名無しさんNGNG
WH_SHELLの方が使いやすいかも。
0094デフォルトの名無しさんNGNG
WinCVSとtclをインストールしたんですが、
マクロメニューのところが「tclがありません。」
のままなんですけど、ほかに何かしなくてはtcl使えませんか?
009594NGNG
あ、ごった煮版です。
ごった煮ってtcl使えなかったんでしたっけ?
0096ビギナーNGNG
C言語のエディターなんですけど、これ買った人いますか?
いたら、買ったほうがいいか教えてください。
■ このスレッドは過去ログ倉庫に格納されています