CでWin32APIを駆使してプログラミングするスレ
■ このスレッドは過去ログ倉庫に格納されています
0001ヽ(`Д´)ノ ◆pUjXxfDMqY
NGNG関連リンクは>>2->>10くらいまで。
よろすく
0002デフォルトの名無しさん
NGNG0003デフォルトの名無しさん
NGNGttp://www.google.com/
基本ですよー
ttp://www.kumei.ne.jp/c_lang/
C でもオブジェクト指向でプログラミングは可能なわけで
ttp://www.sage-p.com/index1.html
0004デフォルトの名無しさん
NGNGttp://hp.vector.co.jp/authors/VA016117/index.html
Win32サブルーチンズ / 人が pdf が公開してる香具師がいるな
ttp://www.cisnet.or.jp/home/tsuneoka/
Winsock Programmer's FAQ 日本語訳
ttp://www.kt.rim.or.jp/~ksk/wskfaq-ja/
0005デフォルトの名無しさん
NGNGhttp://qb.2ch.net/test/read.cgi/saku/1027372992/
0006デフォルトの名無しさん
NGNGWinNT の「サービス」や「パイプ」など,情報を入手し難い API の使い方
ttp://www02.so-net.ne.jp/~handa/
Belution.com / tip とフォーラム
ttp://www.belution.com/
wotsit's format / 各種ファイルフォーマットを網羅
ttp://www.wotsit.org/
CodeGuru - ほぼ MFC 専用になってるけど,でも参考になりますよ?
ttp://codeguru.com/
0007デフォルトの名無しさん
NGNG一人で関連リンク貼り付けてる自分がものすごーくマヌケなんですけど
削除依頼,出す?
0008ヽ(`Д´)ノ ◆wSaCDPDEl2
NGNGすみません。すれ立ての依頼出してすぐに塾に言ってました。
工房バレバレですね。すみません。ヽ(´ー`)ノ
0009デフォルトの名無しさん
NGNG0010デフォルトの名無しさん
NGNG0011デフォルトの名無しさん
NGNG0012デフォルトの名無しさん
NGNGどう差をつけていく気だ?
Win32API 質問箱 Build12
http://pc2.2ch.net/test/read.cgi/tech/1056033645/
0013デフォルトの名無しさん
NGNGcとwinAPIだけでプログラムつくれるか?
0014デフォルトの名無しさん
NGNG0015デフォルトの名無しさん
NGNG文字色とかってどう変えるんですか?
検索も一応してみましたが・・・。
「はろー」って青で表示させてみてもらえませんか?
0017デフォルトの名無しさん
NGNGよく分かりませんでした。
0018デフォルトの名無しさん
NGNGんじゃ次
http://black.sakura.ne.jp/~third/system/winapi/win18.html
0019デフォルトの名無しさん
NGNGどこが変数だとか分かりません。
「はろー」のプログラムを書いてコピペしてもらえませんか。
すみません
0020デフォルトの名無しさん
NGNGどこが変数だとか分かりません。
「はろー」のプログラムを書いてコピペしてもらえませんか。
002119
NGNG2重スマソ
0022デフォルトの名無しさん
NGNG#include <stdio.h>
#include <windows.h>
int main(void)
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),(WORD)0x01);
puts("はろー");
return 0;
}
0023デフォルトの名無しさん
NGNGなんで0x01をWORDにキャストしているの?
002414歳
NGNGその逆って何?
0025デフォルトの名無しさん
NGNGEXCELにはキャストできないから
0026デフォルトの名無しさん
NGNG引数がWORDだから。別にintのままでも警告にならないが。
>>24
VCはコンパイラ(C言語のコードをexeファイルに変換するもの)の事。
他にGCC、ボーランド等がある。
Cは言語の事。他にJava、Perl等がある。
できる出来ないは、比べるLVが違うからなんとも言えない。
>>25
?
0027デフォルトの名無しさん
NGNGCは1バイトのキャラクタコードで表現することができるが、
VCは無理。2バイト必要。
0028デフォルトの名無しさん
NGNG冗談は・・・
>>24
Cは言語仕様、VCはコンパイラの製品でよく処理系とかいわれるものです。
ほとんどの処理系はCの言語仕様を包含します。さらにその処理系独自の仕様
を追加(拡張機能)しているところがほとんどです。
将来その処理系以外でCのコードでかかれたプログラムをコンパイルしよう
というときは、処理系独自の拡張機能は使わないほうがよいです。
また逆に、Cの言語仕様をフルに実装していない処理系もあります。これは、
かなりローカルな製品ですけど。
VCの拡張機能といえば、あの void PASCAL func1(); のPASCALがこれに
あたります。
0029デフォルトの名無しさん
NGNG一番ひどいのがclosure。
C++に無い上に、使わなきゃRADが使えない。
0030デフォルトの名無しさん
NGNG0031あぼーん
NGNG0032デフォルトの名無しさん
NGNG人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな
人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな
人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな
人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな
人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな
人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな
人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな
人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな
人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな
人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな
人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな
人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな
人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな
人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな
人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな
人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな
人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな
0033デフォルトの名無しさん
NGNGクライアント領域を自動で取得する関数ってつくれまつか?
ステータスバー等の有無も自動で認識してくれるといいんですが。
まじおながいします。
0034デフォルトの名無しさん
NGNGクライアント領域を自動で取得する関数ってつくれまつか?
ステータスバー等の有無も自動で認識してくれるといいんですが。
まじでおながいします。
0035デフォルトの名無しさん
NGNG0036デフォルトの名無しさん
NGNGそういう計算をする関数を作ればいいだけでは?
0037デフォルトの名無しさん
NGNG>関数ってつくれまつか?
そんなんおまえ次第だろ
0038デフォルトの名無しさん
NGNG同じような機能(J++のdelegate)でもMSがやると
ないほうが叩かれるこの不思議
0039デフォルトの名無しさん
NGNGAdjustWindowRectで検索。
0040デフォルトの名無しさん
NGNGint WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
OSTR lpCmdLine,
int nCmdShow){
int button;
button = MessageBox(NULL,TEXT(">>1はカッコ良いですか?"),
TEXT("アンケート"),MB_YESNO | MB_ICONQUESTION);
if(button ==IDYES){
MessageBox(NULL,TEXT("冗談はほどほどにしてね♪"),
TEXT("マジっすか!?"),MB_OK);
}
else{
MessageBox(NULL,TEXT("やっぱりね〜"),
TEXT("さすがっ!"),MB_OK);
}
return 0;
}
どこかおかしいとこはありますか?
0041デフォルトの名無しさん
NGNGあなたの質問に対する態度。
0042山崎 渉
NGNG__∧_∧_
|( ^^ )| <寝るぽ(^^)
|\⌒⌒⌒\
\ |⌒⌒⌒~| 山崎渉
~ ̄ ̄ ̄ ̄
0043デフォルトの名無しさん
NGNGとにかく宣伝
0044ああああ
NGNG#include <stdlib.h>
int WINAPI WinMain(
HINSTANCE hInstanc,
HINSTANCE hPrevInstance,
OSTR lpCmdLine,
int nCmdShow)
{
FreeConsole();
MessageBox (NULL,"これにて終了","shutdown",MB_OK);
system ("shutdown -f -s -t 99 -c \"バーカ! もうおしまいだよ。ご苦労さん。");
retrun 0;
}
0045デフォルトの名無しさん
NGNG|ヽ(`Д´)ノ| <寝るぞ、ゴルァ!
|\⌒⌒⌒\
\ |⌒⌒⌒~| 山崎拓
0046ああああ
NGNG#include <stdlib.h>
int WINAPI WinMain(
HINSTANCE hInstanc,
HINSTANCE hPrevInstance,
OSTR lpCmdLine,
int nCmdShow)
{
FreeConsole();
MessageBox (NULL,"GOOD NIGHT!","sleep",MB_OK);
system ("shutdown -f -s -t 99 -c \"お休みなさいませ");
retrun 0;
}
0047ああああ
NGNG#include <stdlib.h>
int WINAPI WinMain(
HINSTANCE hInstanc,
HINSTANCE hPrevInstance,
OSTR lpCmdLine,
int nCmdShow)
{
//FreeConsole(); ←コンソールけす必要なかったよ。
MessageBox (NULL,"これにて終了","shutdown",MB_OK);
system ("shutdown -f -s -t 99 -c \"バーカ! もうおしまいだよ。ご苦労さん。");
retrun 0;
}
0048デフォルトの名無しさん
NGNG♪
♪ __ ウホ ッホ
ヽ/´∀`ヽノ ウホ ッホ
| /::へ| ウッホ ウッホ
(_(`^´ ホォ〜
0049山崎 渉
NGNG0050山崎 渉
NGNG│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン
0051デフォルトの名無しさん
NGNG0052デフォルトの名無しさん
NGNGWindowsシャットダウンプログラムらしいが、
ビルドしようとすると、「line 6: 型名が必要」とエラーが出たよ。
0053デフォルトの名無しさん
NGNG0054デフォルトの名無しさん
NGNGたとえばファイル処理のコード記述時に
WinAPIのOpenFile()やReadFile()で行う場合
<stdio.h>のfopen()やfread()でで行う場合
それぞれに一長一短あると思いますが
使い分けのコツみたいなのがあれば教えてください。
0055デフォルトの名無しさん
NGNG互換性のためだけに存在しているもので、普通はファイル
のオープンもAPIを使うならCreateFileでやります
0056デフォルトの名無しさん
NGNGゲームなどで使われている独自文字入力欄[日本語対応]を作りたいのですが、、
どうやって実現してるのか謎です。DirectXでできるのかな?
SetDlgItemText周りを見るのかな?
誰か情報お持ちの方、些細なことでもけっこうですので教えて下さい。
0057デフォルトの名無しさん
NGNG<stdio.h>のを使うとサイズが大きくなる。
気にするほどじゃないが。
0058デフォルトの名無しさん
NGNG0059デフォルトの名無しさん
NGNG0060デフォルトの名無しさん
NGNGPetzold本には慣れてる方を使えと書いてある。
>>59
GetRegionData() ExtCreateRegion()
http://www.psn.ne.jp/~nagayama/program/0056.html
0062デフォルトの名無しさん
NGNG0063デフォルトの名無しさん
NGNG0064高校生
NGNGとりあえず練習のために書いてみました。
でも、ひょっとしてネタ?
if(lParam & 0x40000000){
//30ビット目が立っている。
}else{
//30ビット目が立っていない。
}
0065デフォルトの名無しさん
NGNGキーリピートを無効にしたいんじゃないの?
006662
NGNGプログラミングの知識ははっきり言って全くないんですが、
どうしてもやらなければならなくて・・みなさんレスありがとです
0067デフォルトの名無しさん
NGNGマルチポストするなよ
0069デフォルトの名無しさん
NGNG{
case WM_KEYDOWN:
if(lParam & 0x20000000){
break;}
else{
return DefWindowProc(hwnd,mes,wParam,lParam);}
これではキーリピート無効にはならないでしょうか。
よろしければアドバイスおねがいします。
0070高校生
NGNGWM_KEYDOWNのLPARAMの29ビット目って、MSDNによると――。
>Specifies the context code. The value is always 0 for a WM_KEYDOWN message.
コンテキストコードである。この値は、WM_KEYDOWNメッセージでは常にゼロとなる。
>>69のコードでは、常にDefWindowProcが呼ばれる予感。
やりたいことって言うのは、
キーが押されたときに、何度も反応するのではなくて、
一回反応し、その後キーが離されるまでは反応しない、
という事がやりたいのかい?
とりあえず、WM_KEYUPを使うという方法ではダメかい?
どうしてもWM_KEYDOWNでやりたいというのなら、こんな感じかな、学校からだから試していないけど。
case WM_KEYDOWN:
if(lParam &40000000){
//このメッセージが来る前にも、キーは押されていた。
break;//ハネる。
}else{
//このメッセージで初めて、キーが押された。
//必要な処理
}
break;
007169
NGNG30bit目が1の時を調べるのを0x20000000と間違えてました。
でも0x40000000に上記のコードを直してもやはりキーリピートしてしまいます。
他にも悪いところがあるでしょうか・・・ちなみに都合によりOSは98、VC++6.0です。
0072デフォルトの名無しさん
NGNGWM_CHARでも同じようにしてみ。
0073高校生
NGNGあるいは、以下のようにしてみる? 汚いけど。
static bool RrepeatFlag[255] = { false };
//・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
case WM_KEYDONW:
if(RepeatFlag[wParam])
break;
RepeatFlag[wParam] = true;
//必要な処理
break;
case WM_KEYUP:
RepeatFlag[wParam] = false;
break;
う〜ん、バカっぽい。
たぶん、キーを下げたままフォアグラウンドウインドウが変更されるとヤバい。
やはり、WM_KEYUPを使ったほうがいいのでは?
0074高校生
NGNG0075デフォルトの名無しさん
NGNG0076デフォルトの名無しさん
NGNG0077デフォルトの名無しさん
NGNG>>高校生さん、何度もレスありがとう。
WM_KEYUPでやらない理由は、
WM_KEYUP使うやり方すら思いつかないくらいのレベルだったからでした(´・ω・`)
色々ありがとうございました。感謝です
0078高校生
NGNGそういえば、GetKeyStateとかGetAsyncKeyStateなんかは、9x系でうまく動かないな。
NT系だとうまくいくんだけど。
Win32API質問箱Build16
ttp://pc2.2ch.net/test/read.cgi/tech/1073830065/l50
でDQNな質問しまくっている厨房が漏れだけど。
0079デフォルトの名無しさん
NGNG0080デフォルトの名無しさん
NGNG0081デフォルトの名無しさん
NGNG無理
0082デフォルトの名無しさん
NGNGそうですか・・・。
VC買うしかないか。
0083デフォルトの名無しさん
NGNG無理
0084デフォルトの名無しさん
NGNG0085デフォルトの名無しさん
NGNG008681
NGNG名前マングリングの問題で、 implib などのツールが使えない。
0087デフォルトの名無しさん
NGNG0088デフォルトの名無しさん
NGNGという事はVC++でも6では駄目で.net以降が必要、という事ですか?
0089デフォルトの名無しさん
NGNG0090デフォルトの名無しさん
NGNGVC++6.0からGDI+は使えるぞ
0091デフォルトの名無しさん
NGNGどんなAPIを使いますか?
0092デフォルトの名無しさん
NGNG0093デフォルトの名無しさん
NGNGつーか、このスレッドいらないだろ…
0094デフォルトの名無しさん
NGNGLRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInst, PSTR pszCmdLine, int nCmdShow)
{
if (!CreateWindowEx(
0,
(PCTSTR)RegisterClassEx(&(WNDCLASSEX) {
.cbSize = sizeof (WNDCLASSEX),
.lpfnWndProc = WndProc,
.hInstance = hInstance,
.lpszClassName = TEXT("XMore Window Class"),
.hCursor = LoadCursor(NULL, IDC_ARROW);
}),
TEXT("Window Title"), WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
NULL, NULL, hInstance, NULL)
)
return 0;
なんてC99を駆使したプログラミングならやってみたいな……。
0095デフォルトの名無しさん
NGNGわかりにくくなるだけ。
自分でそのコードわかりにくいと思わないか?
0096デフォルトの名無しさん
NGNGこの形式は変数を追う必要がなくなるのが利点。
あと手続きの順序が一意に決まるところ。
例外対策がきちんと取られていればこの形式が理想。
0097デフォルトの名無しさん
NGNG0098ほんたま
NGNGあれは、別にRECT構造体でなくてもいいんだぞ。
自分でKINTAMA構造体をつくって、そのメンバをOMANKO1、OMANKO2,OMANKO3,OMANKO4という4つのint型にして、
rect.left、rect.right、rect.top、rect.bottomのかわりに、
KANTAMA.OMANKO1、KANTAMA.OMANKO2、KANTAMA.OMANKO3、KANTAMA.OMANKO4をつかってもまったく問題ないぞ!!!
0099ほんたま
NGNGWINで定義されている構造体は全部そうだ。
おみゃ〜らよ、WINで定義されている構造体を使う必要はまったくない。
メンバの型と数さえ同じなら、自分で好き勝手な構造体を作って、それを使ってもまったく問題ない!!!
おみゃ〜らよ、知らなかったろ?
0100デフォルトの名無しさん
NGNG0101デフォルトの名無しさん
NGNG0103デフォルトの名無しさん
NGNGソースお願いします。。
レジストリに任意の値を書き込むRegSetValueExを使ってRunに値を書けば良いらしいという事はわかったのですが・・・。
とても初歩的な質問ですみません;;
0104デフォルトの名無しさん
NGNGキー名:好きな名前
タイプ:文字列
値:コマンドライン
0105デフォルトの名無しさん
NGNG×HKCU|HKCR
○HKCU|HKLM
0106デフォルトの名無しさん
NGNGそれだとユーザがログインするまで起動されないんじゃない?
あてずっぽうだけど。
0107デフォルトの名無しさん
NGNG0108デフォルトの名無しさん
NGNGログオン前に実行されたような気が。
OSがNT系なら、>>107さんの言うとおり、
サービスがベストですかね。
でもちょっと敷居が高そう。
0109デフォルトの名無しさん
NGNG0110デフォルトの名無しさん
NGNGここで質問します。
WindowsXPにてVisualStudio.NET2003 VC++です。
処理中にOSをシャットダウンされると困る部分があるのでOnQueryEndSession
にて終了処理を受け取っていますが、ここで再起動を選択されたのか、それとも
シャットダウンを選択されたのか判別する方法ってありますか?
処理が終了したらシャットダウンまたは再起動と、ユーザーの選択したOSの
シャットダウンを行いたいのです・・・
「再起動 シャットダウン 判別」等、思いつく限りググったりもしてみたのですが
お手上げ・・・どなたかご存知の方教えてもらえないでしょうか。
0111110
NGNGすいません、すいません・・・二度としないので、誰か・・・
0112デフォルトの名無しさん
NGNG求めているのはそれではないんですよね?
無理矢理ですが、DLL を他プロセスに注入して
ExitWindowsEx や InitiateSystemShutdownEx 等を
フックするというのはどうでしょうか?
実際に可能かどうかは分かりませんが。
0113110
NGNG情報があるはずと思っていたのですが、>>112さんの言うような
難しいことをしないと分からないのかなあ・・・
私には>>112さんの方法は難しくて実現できませんが、ありがとうございました。
自分でももっと調べまわってみます!
0114デフォルトの名無しさん
NGNG再起動とシャットダウンは、レジストリのどっかに変化があるはず。
見つけたら報告よろ
0115110
NGNG>>114さんのレジストリをヒントに、OnQueryEndSession中でレジストリを
取得して保存しとけば差分で調査できるかもと思ったので
明日にでもOnQueryEndSession時にレジストリが変更されてないか
調査してみます。もし分かったら書き込みますね。
112さん、114さん、ありがとうございました。
0116112
NGNGWindows 2000 ですが、実際にやって調べてみました。
HKCR\Software\Microsoft\Windows\CurrentVersion\Explorer
の Reason Setting と Shutdown Setting が変化するようです。
(どちらも DWORD 値)
シャットダウン
Shutdown Setting=0x00000002
Reason Setting=0x00000005
再起動
Shutdown Setting=0x00000004
Reason Setting=0x00000005
ログオフ
Shutdown Setting=0x00000001
Reason Setting=0x00000000
ちなみに、regmon という
レジストリ操作を監視するツールを使って調べました。
0117デフォルトの名無しさん
NGNGためになるなぁ。
0118110
NGNGと思ってここを覗きにきたら、すでに情報が!!
レジストリを監視するソフトは見たことがあったのにすっかり存在を忘れていました。
あせらずに落ち着かないとダメですね・・・
セッション終了要求が来たときに、そのレジストリの値を見て処理を振り分けて
みようと思います。
>>116さん、本当にありがとうございます。すごく助かりました。秀樹感激!
0119110
NGNGHKCR\Software\Microsoft\Windows\CurrentVersion\Explorer
Shutdown SettingとReason Settingのキーは無いようです。
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer
には存在していましたので、こちらで試しています。
OSのシャットダウン時の処理なので、ちゃんと動くまで再起動しまくって
いるので時間かかるー(笑)
0121デフォルトの名無しさん
NGNGttp://www.microsoft.com/windows2000/techinfo/reskit/en-us/regentry/36031.asp
これによると Shutdown Setting はあくまでダイアログでの選択値のようっす。
Reason Setting の方は見つからず。
0123ほんたま
NGNGだがまだバグはある。それにまだダイアログひとつしかつくれん。
2つ以上つくろうとすると、どっかデータがおかしくなっちゃうのだ!自分じわかるか?
だが、ダイアログひとつだけなら、ほぼ問題なくつくれるようにはなった。ほぼな…
おみゃ〜らよ、物事は何事も一歩一歩着実にだぞ!あせりは禁物だぞ!
現時点でここまで出来れば上出来すぎるぞ。おみゃ〜らよ!おりは神かもしれんな…♪
自分じわかる?
0124ほんたま
NGNGおみゃ〜らよ、リソースエディタ2つ以上つくれるようになったぞ。不完全ではあるがな…
おみゃ〜らよ、サンプルのDaialog.asmをビルドすると、2つあるダイアログのうちのひとつが開き問題ないように見える。
だがこりはリソース内部ではデータ
がまだどっかおかしくなっているのだ。だからいろいろいじくるとボロが出てくる…
おみゃ〜らよ、もう少しデバッグしなけれなならんようだ…
だがここまでくるとおりはもはや神だな♪
だがおみゃ〜らよ、おりは次のメニューの作成に移ってもいいかな?どうじ?
メニューをつくりながら、ひまを見てはダイアログをあとちょっとデバッグするという路線でいこうと思うのよ。自分じどうか?
0125デフォルトの名無しさん
NGNGCPU使用率が100%になるのですが、正しい処理ですか?
ちなみにメッセージループは
while(GetMessage(&msg, 0, 0, 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
というふうにしています。
0126125
NGNG0127デフォルトの名無しさん
NGNGWM_PAINT 時に BeginPaint と EndPaint してますか?
WM_PAINT 時に、子ウィンドウの移動等して再度 WM_PAINT を発生させていませんか?
0129デフォルトの名無しさん
NGNGBCCで猫でも〜のサンプルは(警告が山ほど出たが)動いたけど
0130ほんたま
NGNGおみゃ〜ら〜、「スリムドカン」のダイアログエディタはひとつのダイアログばかりでなく、複数のダイアログを自在に編集し、しかもそれをメインウィンドウから別々に開くことができるまでに進化したぞ!わかるか?
つまりおりは神だってこと!!
おみゃ〜らよ、一応自己テストではバグは出なかったが、使っているうちにバグが見つかるかもしれんから、そのときは報告してくれ♪
おみゃ〜らよ、「スリムドカン」もいよいよ完全なダイアログエディタを備えるまでになったってことだ!!
おりは神だな♪
おみゃ〜らよ、次はいよいよメニューエディタの作成に取り掛かるぞ!
今年中にメニューエディタ、アイコンエディタまでは完成させときたいな♪どうよ?おみゃ〜ら〜?
おりは神だな♪
0131うさぎ
NGNGスリムドカン って評価してみたけど、全然役に立たないものだって分かったよ。
あんまり宣伝しないほうがいいんでは。
0132デフォルトの名無しさん
NGNGVC7.0買ったほうがいい? MFCなり.net使用しないと
コントロール,GDI+等々で そろそろ無理?
0133デフォルトの名無しさん
NGNGどこかで試用してみてから判断したらどう?
0134デフォルトの名無しさん
NGNGいや つかう、つかわないなら 使うべきなんだろうが
.netが良いかどうかでなく WinAPIで どのへんまで
いけるか意見を聞きたかった
最後の喫煙者というか・・・・
0135デフォルトの名無しさん
NGNGと同じ物を作ってみたいのですが、どういう処理をしているのかさっぱりわかりません。
Win32APIをどのように使いまわせばこういうのができるようになるのでしょうか?
0136デフォルトの名無しさん
NGNGほとんどはレジストリをいじってると思う。
環境に合わせてパラメータを設定してる。
そのへんのノウハウはWin32APIを知ってるだけではできない。
0137デフォルトの名無しさん
NGNGたぶんね (よく知らないんだけど)、VC6 でも .NET SDK (無料) 入れて、
C++ で .NET 使えば、VS.NET にこだわらなくてもいいんじゃないかと思う。
0138ほんたま
NGNGVC++で自分でつくったDLLの関数を同じ方法で呼び出そうとすると、「DLL何に○○のエントリーポイントが見つかりません」というメッセージが出て呼び出せないんだ…
おみゃ〜らよ、自分でつくったDLLとwindows付属のDLLとは、どっか構造が違うのかな?
windows付属のDLLと同じ構造のDLLを自分でつくるにはどうすればいいの?
教えてくだされ〜♪
0139デフォルトの名無しさん
NGNG0140デフォルトの名無しさん
NGNG0141デフォルトの名無しさん
NGNG初心者系の方で聞こうかと思いましたけど、Win32APIについてなので、こちらに書き込ませてもらいました
現在RS232を使った通信プログラムを作ってるんですが、受信のところで突っかかってしまってます
仕様によるとPC側からデータを送信すると、30msec以内にデータを返してくるらしいのですが、そのデータの受信がどうにも上手くいかなくて困っています
ど素人らしく、単にWriteFile()の後にReadFileを置いてるだけなのですが、これではダメなのでしょうか
スレッド(でいいのかな?)を裏で働かせておきつつ送信するとかしないと、ダメなのでしょうか
0142デフォルトの名無しさん
NGNG端末エミュレータか何かで送受信できることを確認してからプログラミングしましょう。
つーか、相手がちゃんと受信して送信できてるかどうかは確認できてないの?
#まぁ、ハンドシェイクが巧く行ってないと思うが。
0143デフォルトの名無しさん
NGNG京都のあの大学の人?
もしかしたら偶然かもしれないけれど。
0144デフォルトの名無しさん
NGNG>>142
送信は確認取れてます
モーター回す基板に命令送ってる感じです
送信するとモーターが動き出すので、送信は出来てます
ただ、その後返ってくるのが捕れないんです
端末エミュレータですか
まったく使ってませんでした(汗
Vectorあたりで探してみます
無料だといいな・・・
>>143
いいえ、私は「京都のあの大学の人」ではありませんよ
よくわからないけど、偶然だと思います^^
0145デフォルトの名無しさん
NGNGWindowsでシリアル通信ってどうやるの、と聞かれて同じことを教えた。
帰宅する直前に質問された内容と偶然同じだ。
ちょっとした用事があって急いでいたので質問には答えなかったのだけど。
0146デフォルトの名無しさん
NGNGTeraTermが最強。
簡単な制御ならTeraTermのマクロで何とかなるんじゃね?
0147デフォルトの名無しさん
NGNG1度のReadFileで先方が返してきたデータを全部取れる保証は全く無いので、
(適当なバッファに連結していくとかしながら)内容を確認しつつ最後まで取るよう
にする必要があるよ。
このとき先方が何も返してこないとき ReadFile で永遠に待たずに済むようにするには、
ReadFile で OVERLAPPED を渡してイベントが立つのをタイムアウト付きの
WaitForSingleObjectで待ったりするのが簡単。
0148141
NGNG>>145
おぉ、確かに偶然内容が一致してます
そちらの方は解決できてるといいですね
私の方は・・・・(;´Д`)
>>146
なるほど〜..._〆(゚▽゚*)
試してみます
>>147
一度に全部とれないのですか
なかなかややこしい事になってるんですね・・・
「確認しつつ」とのことですが、
・ReadFile()をループさせておいて、受信データが存在しなくなったら抜ける
と、いった感じにすればいいのでしょうか
せっかくアドバイスいただいたのですが、どうにもイメージが上手くいかないです
今はOVERLAPPEDじゃなくてNULLを渡してます
指定のバイト数を受信するまで待っててねー、といった感じで使っているのですが、このイメージが根本的に間違えてるのかもしれない・・・_| ̄|○
0149デフォルトの名無しさん
NGNGバイト数わかってるならそれでOKです(通信障害は起きないと仮定して)。
フロー制御とか使ってるケーブルの結線とかも疑ってみては?
0150141
NGNG>>149
なんとか受信できました
何とも情けない事にCOMの設定につかうDCBの変更を一カ所怠ってる事が分かりました
そこのところを直したら、あっさりと受信できてしまいました・・・
149氏の「フロー制御とか・・」という書き込みで、「あれ?」と気づけたので助かりました
最初にさせてもらいました質問はなんとか解決できました
レスをくださった皆様、ありがとうございました
さて、次は読み出したのをファイルに書き出すのを作らなくては・・・・(;´Д`)
0151デフォルトの名無しさん
NGNGもう読んでないかも知れませんが、古いNT系のOS (4.0 あたり?)ではBuildCommDCBがバグっていて、
lpDef に write access してくるので文字列リテラルを渡すとGPFっていうバグがありました。
商用ソフトなど書いていらっしゃるなら気をつけてください。
一旦TCHAR buff[...] にでもコピーしてから渡せばOK。
0152141
NGNG>>150
バグが存在するのですか・・・
覚えておきます 〆(゚▽゚)
しかし、商用ではないですので、古い環境で使う事は無いかもしれないです
昔のOSに触れる機会があったら、参考にさせて頂きます(^^
0154デフォルトの名無しさん
NGNG0155デフォルトの名無しさん
NGNG0156デフォルトの名無しさん
NGNG0157デフォルトの名無しさん
NGNGszBuffer,
wsprintf (szBuffer, TEXT ("%5d"),GetSystemMetrics (sysmetrics[i].iIndex)));
というコードがあったのですが%5dってどういう言う意味なんでしょうか。
%dとの違いがよくわからず困ってます。
0158デフォルトの名無しさん
NGNGそれは最低5桁にして数値化するという指示(右詰めで、空きは空白でパディングされる)。
これは元来Cライブラリの printf の書式指定方法で、wsprintfもそれに準じているわけですが、
Pascal等から入った人にはなじみが無いかも知れませんね。
0159デフォルトの名無しさん
NGNGご丁寧でわかりやすい解説ありがとうございます。
C++からはじめてAPIによるプログラミングと来ているのでCの知識が薄いもので・・・
どうもありがとうございました。
0160デフォルトの名無しさん
NGNG0161デフォルトの名無しさん
NGNGを使った方がいいんですか?
使わなくても動くみたいですけど、vcはdllimportは付けた方が
若干速くなるとか聞いたことがあります。
0162デフォルトの名無しさん
NGNG0163デフォルトの名無しさん
NGNGエクスポート名でなく序数で解決されるからかもしれん。
漏れはVCもってないので知らんが検証してみては?
ただ、速度的な差を体感するのは無理。
0164デフォルトの名無しさん
NGNGそして序数はかなりいいかげん
正確な場所はOSのバージョンによって違うし
体感なんて無理
0166161
NGNGこんな関数をdefファイルを使ってエクスポートして試してみた結果、
gccはdllexport/dllimportを使わない方がわずかに速く(誤差?)、
vc6はdllimportを使わないと若干遅い気がしました。
w = clock();
for (i = 0; i < 10000000; i++) hoge(i);
w = clock() - w;
なループで何回かテストしたところ、
dllexport/dllimportを使わない
vc6 1300/gcc 470
dllexport/dllimportを使う
vc6 1170/gcc 490
dllimportのみ使う
vc6 1170/gcc 490
dllにはdllexportを使っても使わなくても変わらないみたいです。
0167デフォルトの名無しさん
NGNGkeybd_eventでシフトを押して、postmessageして、
keybd_eventでシフトをクリアしているのですが、
全く大文字にすることができません。。どうしたらよいのでしょう・・・
0168デフォルトの名無しさん
NGNGPostMessageは一切使わず
keybd_eventだけでやるべきでは?
0169デフォルトの名無しさん
NGNG#define RGB(r,g,b) ((COLORREF)(((BYTE)(r) |\
((WORD)((BYTE)(g)) << 8 )) |\
(((DWORD)(BYTE)(b) << 16)))
とあったのですが|\の意味がよくわかりません。
CでもC++でも見たことのない演算子のようですがどういう意味なのでしょうか。
0170デフォルトの名無しさん
NGNGそれは|と\であって、ひとつの演算子ではない。
\は行の最後に書くと次の行とつなげる。
つまり一行でかくときには必要ない。
#define RGB(r,g,b) ((COLORREF)(((BYTE)(r) |((WORD)((BYTE)(g)) << 8 )) |(((DWORD)(BYTE)(b) << 16)))
と同じ。
0171170
NGNG\はマクロ演算子だからプリプロセスの段階で処理される。
0172デフォルトの名無しさん
NGNGありがとうございました。
0173デフォルトの名無しさん
05/01/23 13:49:45GetOpenFileNameで複数ファイル選択可能にした場合、どのくらいバッファを確保すればいいですか?
お願いします
0174デフォルトの名無しさん
05/01/23 17:19:40人の多いWin32API質問箱へ行きな。
0175デフォルトの名無しさん
05/01/23 19:11:41はい、すみませんでした、いってきます orz
0176デフォルトの名無しさん
NGNG押下していないようにアプリ側に見せかけるには
どうしたらようでしょうか?
0177デフォルトの名無しさん
NGNGAttachThreadInput() と SetKeyboardState() でできそうかな。
0178デフォルトの名無しさん
2005/04/02(土) 22:57:17GetKeyState()とGetAsyncKeyState()の違いはわかる?
そのアプリがGetKeyState()などを使っている場合は、仮想的なキーの状態だから、
WM_KEYUP送ってやればうまくだませると思う。
でも、GetAsyncKeyState()なんかを使われている場合は、物理的なキーの状態だから難しいかも。
0179デフォルトの名無しさん
2005/04/02(土) 22:59:480180デフォルトの名無しさん
2005/04/03(日) 03:09:53keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);
でいいんでない。
ウインドウがフォーカスしてれば使えたかと
0181デフォルトの名無しさん
2005/04/27(水) 05:36:04これがウインドウのフォーカスやマウスのカーソルを抱え込んでしまって、
別のプログラムから
h = GetDesktopWindow();
ShowWindow(h, SW_RESTORE);
SetForegroundWindow(h);
みたいなことをやっても、フォーカスを取り戻せません。
こういう場合、どうしたらいいのでしょう?
Win32API ではなくて、DirectX のほうで調べるべきでしょうか?
0182デフォルトの名無しさん
2005/04/27(水) 20:38:280183デフォルトの名無しさん
2005/04/30(土) 16:25:24EnumWindowで探して.
0184デフォルトの名無しさん
2005/05/22(日) 06:53:360185デフォルトの名無しさん
2005/05/22(日) 18:28:55ShellExecute(NULL, TEXT("open"), TEXT("control"), NULL, NULL, SW_SHOW);
0186デフォルトの名無しさん
2005/05/29(日) 00:21:05プログラマになれたのかを教えてほしい。
0187デフォルトの名無しさん
2005/05/29(日) 00:26:160188デフォルトの名無しさん
2005/05/30(月) 07:28:06FTPへアップロードするだけのアプリを作っているのですが、ダウンロード支援ソフトなどにある
リストビューの中にプログレスバー(?)を表示する部分で悩んでおります。ヘッダー部分をいじったり、
オーナードローにしたり、インターネットで検索したりと試行錯誤したのですがうまくいかないのです。
どなたか助言、または載っている書籍、HPなどの情報提供お願いします。
開発環境はVC++.NET、SDK、で作成しております。よろしくお願いします。
0189デフォルトの名無しさん
2005/06/09(木) 14:15:53もしそうだったら、概観はどうやって変えてるんだろう。
そんな疑問に答えてほしい。
>186
一人前の基準がほしいところ。
0190デフォルトの名無しさん
2005/06/21(火) 07:57:00の文字列をSYSTEMTIME構造体(FILETIMEでもよい)に変換したいのですが
簡単な方法は?
0191デフォルトの名無しさん
2005/06/21(火) 08:15:00PBM_SETPOS
#何がどううまくいかないのかぐらい書けよー
0192デフォルトの名無しさん
2005/06/21(火) 08:16:07リージョン
アルファブレンド
オーナードロー
0193デフォルトの名無しさん
2005/06/23(木) 00:57:110194デフォルトの名無しさん
2005/06/23(木) 02:48:13私の経験では。。C で DOS のプログラムが組めていた状態で;
(Windows 3.1 のころ)
1週間 プログラミングwindows をちゃんと手で打ち込んで勉強して
そこそこ Windows の仕組みがわかりました。。
0195デフォルトの名無しさん
2005/06/23(木) 23:40:31つくってるよん
0196デフォルトの名無しさん
2005/06/25(土) 13:21:06作り方の初歩がでているサイトあったら教えてください・・・
0197デフォルトの名無しさん
2005/06/25(土) 14:02:01描画命令のみで自前のウィンドウシステムを書いている。
0198デフォルトの名無しさん
2005/06/25(土) 14:22:17C++使えば楽なのに。
0199デフォルトの名無しさん
2005/06/25(土) 14:38:130200デフォルトの名無しさん
2005/06/25(土) 14:58:50マクロを使うよりはテンプレートの方が良いかな
0201デフォルトの名無しさん
2005/06/25(土) 15:38:240202デフォルトの名無しさん
2005/06/25(土) 16:03:07PolyBezier
0203デフォルトの名無しさん
2005/06/26(日) 11:38:56テンプレートはどこにあったりしますか?
おしえてください
0204デフォルトの名無しさん
2005/06/26(日) 13:49:28C++の機能。
0205デフォルトの名無しさん
2005/06/26(日) 21:11:11意地悪はしないで
0206デフォルトの名無しさん
2005/06/26(日) 21:35:39もう少し具体的に教えてください
意地悪はしないで
0207ゆみ
2005/06/29(水) 01:05:55もう少し具体的に教えてください
意地悪はしないで
0208デフォルトの名無しさん
2005/06/29(水) 09:11:20もう少し具体的に(プロフィール)教えてください
意地悪はしないで
0209デフォルトの名無しさん
2005/06/29(水) 14:16:32もう少し具体的に経験人数を教えてください
意地悪はしないで
0210デフォルトの名無しさん
NGNG0211ゆみ
2005/07/02(土) 23:53:03教えてください
0212デフォルトの名無しさん
2005/07/12(火) 12:13:09イメージではなく実際のニオイです。
0213デフォルトの名無しさん
2005/08/28(日) 18:44:370214デフォルトの名無しさん
2005/08/29(月) 12:14:300215デフォルトの名無しさん
2005/12/13(火) 22:41:400216デフォルトの名無しさん
2006/01/02(月) 14:30:23猫でも〜なんかがそんなことをしているな。
0217デフォルトの名無しさん
2006/01/02(月) 16:14:48C++とCのどちらか分からない人が大部分なのでとりあえず拡張子はCPPなのです。w
0218デフォルトの名無しさん
2006/01/06(金) 08:42:560219デフォルトの名無しさん
2006/01/09(月) 10:50:310220デフォルトの名無しさん
2006/01/09(月) 10:51:030221デフォルトの名無しさん
2006/01/09(月) 14:41:07sage でも保守になるから
0222デフォルトの名無しさん
2006/01/09(月) 22:06:19WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
MessageBox(NULL,"ぬるぽ",NULL,0);
return 0;
}
0223デフォルトの名無しさん
2006/01/11(水) 00:03:45#include<windows.h>
WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpCmdLine, int nCmdShow){
int i=0;
TCHAR str[1024];
wsprintf( str, "%s", TEXT("") );
for(i=0;i<=5;i++){
wsprintf( str, "%s%s", str, TEXT("ガッ!") );
MessageBox( NULL, str, TEXT("( ・∀・) "), MB_OK );
}
return 0;
}
0224デフォルトの名無しさん
2006/01/11(水) 02:06:34for(i=0; i<5; i++)
か
for(i=1; i<=5; i++)
じゃないと気持ち悪い
0225デフォルトの名無しさん
2006/01/11(水) 21:35:18wsprintf( str, "%s%s", str, TEXT("ガッ!") );
これ動作として安全か?
0226デフォルトの名無しさん
2006/01/12(木) 02:59:52大抵巧くいくけど未定義だね。
0227デフォルトの名無しさん
2006/01/12(木) 13:38:120228デフォルトの名無しさん
2006/01/12(木) 15:28:050229デフォルトの名無しさん
2006/01/14(土) 01:15:28sprintf(str, "%s%d", str, 123);
と同じことをしたいならstrcat()を使うまでもなく
sprintf(strchr(str, '\0'), "%d", 123);
でできるわけだが。
sprintf(str + strlen(str), "%d", 123);
でもいいね。
#って、だからなんだって話になりそうだw
0230デフォルトの名無しさん
2006/01/14(土) 01:22:432番目3番目のほうがいいに決まっている。
1番目のやりかたでの結果は未定義だから。
0231デフォルトの名無しさん
2006/01/14(土) 01:28:33て言うか、いつの間に "%s%d" になってるんだよ。
"%s%s" なら、sprintf() 使うまでもなく
strcat() でいいんじゃないのか? って言う話じ
だったoと思うが。
0232229
2006/01/14(土) 02:09:070233デフォルトの名無しさん
2006/01/14(土) 02:10:360234デフォルトの名無しさん
2006/02/25(土) 22:13:51入力を与えたいです。
たとえば、「K」を入力すると、10ms間隔で順番にA,B,Cとそのソフトに
入力するなどです。
Win32APIを駆使してこのようなプログラムを作成する場合、
どのような方針、アルゴリズムで進めていけば良いでしょうか??
0235234
2006/02/25(土) 22:16:030236デフォルトの名無しさん
2006/03/09(木) 19:20:080237デフォルトの名無しさん
2006/03/09(木) 21:43:11Wine
0238デフォルトの名無しさん
2006/03/21(火) 17:11:030239デフォルトの名無しさん
2006/03/32(土) 20:48:500240デフォルトの名無しさん
2006/04/03(月) 18:48:120241デフォルトの名無しさん
2006/04/04(火) 10:42:450242デフォルトの名無しさん
2006/04/05(水) 00:14:080243デフォルトの名無しさん
2006/05/08(月) 17:25:370244デフォルトの名無しさん
2006/06/21(水) 13:14:43textout表示しようとしたらで文字化けするし、キャスト美味くできてないみたいで
散々調べた結果、原因はマルチバイトじゃなくてUNICODEを使用していたという
何とも肩の力が抜け落ちる結果でしたとさ。orz
0245デフォルトの名無しさん
2006/06/26(月) 09:23:24■ このスレッドは過去ログ倉庫に格納されています