【初心者歓迎】C/C++室 Ver.17【環境依存OK】

このエントリーをはてなブックマークに追加
947デフォルトの名無しさん:2005/06/05(日) 23:50:48
RECT rect

POINT point
は違うだろ
948デフォルトの名無しさん:2005/06/05(日) 23:51:42
>>945
ClientToScreenにもそのまま&rectを渡せ。
949デフォルトの名無しさん:2005/06/05(日) 23:54:07
>>946
クライアント座標をスクリーン座標に変換したかったのかと思われる。
winsysにシステムを色々と入れてるんだろうと予想して…
こういう事をしたかったんじゃないか?

rectでclientサイズ取得してpointでclientのscreen座標を求める。
それをrectに移してサイズ取得したのを代入すればclient内部のscreen座標が出るとでも。

どう期待したらこう思うのか良く解らないが。
950デフォルトの名無しさん:2005/06/05(日) 23:58:04
>>948
それだと
'ClientToScreen' : RECTからPOINT変換不可
が出てくると思う。
なので
ClientToScreen(winsys->hWnd,(POINT)&rect);か?
RECTとPOINTは違うけどいけたと思う。
951デフォルトの名無しさん:2005/06/06(月) 00:00:11
>>950
RECTとPOINTはそれで無理。
漏れが知ってる事でマジレスするとそのまま&rectは渡せない。
スマソ。初心者なので答えは任せる。
952デフォルトの名無しさん:2005/06/06(月) 00:07:55
>>945
マジレスするとPOINTの宣言後にPOINTの初期化がされてないから。
POINT point = {0,0};
で一応上手くいく。

更新して立ってなかったら次スレ立ててくるわ。
953デフォルトの名無しさん:2005/06/06(月) 00:13:34
立てたけどこれで良かったかな?
次スレ
http://pc8.2ch.net/test/read.cgi/tech/1117984322/
954デフォルトの名無しさん:2005/06/06(月) 00:20:16
>>953
スレタイから環境依存OKを外したのは意味があるのか?
あと、 Ver が vol に変わってるのも意味がわからん。
955デフォルトの名無しさん:2005/06/06(月) 00:23:26
スマソ。単に環境依存OK文字忘れていたorz
今までvolと思っていて見直したらverだったんで凹む。
やっぱスレ立てたの間違いだったorzマジスマソ
956デフォルトの名無しさん:2005/06/06(月) 05:51:49
>>945
どっちかっつとWin32APIスレ行きな質問だな。
GetWindowRectとGetClientRectで自前計算できようが
957デフォルトの名無しさん:2005/06/06(月) 07:27:11
pointが未初期化。
pointにrectのleft,top入れるべし、、、ってどうせゼロだから0入れればいいけど。
んで、rectの4つすべてに足して平行移動しないと。
API以前の話だな
958デフォルトの名無しさん:2005/06/06(月) 14:49:21
age
959デフォルトの名無しさん:2005/06/06(月) 14:50:11
miss!
960デフォルトの名無しさん:2005/06/06(月) 19:50:47
ゲームの補助ツールを作っているのですが、
F1キーを押す、みたいな関数って無いんでしょうか。
調べてもキーが押されているかどうかを調べるようなのは色々あるようなのですが。
環境はVC++です。
961デフォルトの名無しさん:2005/06/06(月) 20:04:11
OS何よ?っても、ゲームって言うしたぶんWindowsじゃろうけど
962デフォルトの名無しさん:2005/06/06(月) 20:14:11
VC++って書いてあんだろ

SendMessageでメッセージをウィンドウに送ればいいかと
VK_F1だっけか
963960:2005/06/06(月) 20:15:26
>>961
すみません、書き忘れてました。
Windowsです。
964デフォルトの名無しさん:2005/06/06(月) 20:50:07
>>962
VC++でWindowsのアプリしか作れないのか?
965デフォルトの名無しさん:2005/06/06(月) 20:54:00
VC++はクロスコムパイラじゃないだろ
966デフォルトの名無しさん:2005/06/06(月) 21:00:49
967デフォルトの名無しさん:2005/06/06(月) 21:46:20
どれにしても結局Windows上で動く罠。
968デフォルトの名無しさん:2005/06/06(月) 21:49:08
CE用のはターゲットCPU幾つか選べまんねん。
969960:2005/06/06(月) 23:18:29
一応PostMessage(HWND_BROADCAST, WM_KEYDOWN, VK_F1, 0)
で思ったような動作はしたのですが、どうも遅い気がします。
何か遅くなるような原因とかあるんでしょうか…?
970877:2005/06/06(月) 23:34:10
C言語において個数も長さも未定の文字列を扱うために
char **name;
というのを使おうとしているのですがうまくいきません。
どうすればよいのでしょうか?

int main()
{
char *str1 = "aaaa";  //とりあえず2つ
char *str2 = "bbbb";
char **name;

for(i=0; *str1!='\0'; i++){
 name[0][i] = *str1;
 str1++;
}

for(i=0; *str2!='\0'; i++){
 name[1][i] = *str2;
 str2++;
}

実行するとメモリアクセスエラーが発生します。
971デフォルトの名無しさん:2005/06/06(月) 23:35:20
>>970 書き込む先のメモリを割り当てるとよい。
972デフォルトの名無しさん:2005/06/06(月) 23:55:36
>>971
メモリを割り当てるというのは
mallocを使うと言うことでよろしいのでしょうか?
973デフォルトの名無しさん:2005/06/06(月) 23:56:26
んだ
974972:2005/06/07(火) 00:00:17
なるほど、mallocを調べてみてもう少しがんばってみます!
ありがとうございました。
975780:2005/06/07(火) 02:40:46
>>974
mallocしたらちゃんとfreeしとけよ。

って漏れこんな指摘ばっか。最近これでひどい目にあいまつた。
976デフォルトの名無しさん:2005/06/07(火) 05:33:59
>>969
そりゃBROADCASTしてりゃ重くなるわ
977デフォルトの名無しさん:2005/06/07(火) 05:35:51
>>969
ネットワークのMACアドレス問い合わせパケットじゃねぇんだからよ、
ある特定のアプリの窓にメッセージ送るのにいちいちBROADCASTするなんてただの阿呆だぞ。
目的のアプリの窓のハンドル取得して直接送れ
978960:2005/06/07(火) 15:54:35
>>977
ハンドルって毎回変わるやつですよね?
すみません、スキル足らずで取得の方法がわからなくて…。
979デフォルトの名無しさん:2005/06/07(火) 15:59:18
>>978
FindWindow()
980デフォルトの名無しさん:2005/06/07(火) 17:12:39
>>978
それはプログラムのスキルが足らないんじゃなくて検索のスキルが足らないな
おまえさんに必要なのはC/C++のことよりもWin32APIのことだし、
今後わからないならWin32APIスレで聞くとよい
981デフォルトの名無しさん:2005/06/07(火) 17:28:42
こりゃSendInputやらkeybd_eventの存在も知らなそうなだ
982デフォルトの名無しさん:2005/06/07(火) 17:35:01
単一のWindowにKEYDOWN送るのにkeybd_eventすることも無いと思うが
983デフォルトの名無しさん:2005/06/07(火) 17:46:36
まあな
984デフォルトの名無しさん:2005/06/07(火) 19:32:29
演算子のオーバーロードの辺りで頭がこんがらがっちゃいました。
だれかこんな僕に優しくわかりやすく教えてください
985デフォルトの名無しさん:2005/06/07(火) 19:44:00
>>984
どんな風にわからないのか、優しくわかりやすく説明してくれ。
986デフォルトの名無しさん:2005/06/07(火) 20:09:30
なんもかんもわからんで、どないもこないもなりませんわ
987デフォルトの名無しさん:2005/06/07(火) 21:16:12
やめちまえ
988デフォルトの名無しさん:2005/06/07(火) 21:23:26
すみやかにその企画を終了し、別の企画に取り組みたまえ
989デフォルトの名無しさん:2005/06/07(火) 21:25:34
operator T( ){
throw ぬるーり;
}
990デフォルトの名無しさん:2005/06/07(火) 21:41:18
i+1 == E[x].start && j+1 == E[x].end
のときに配列に1を代入したいのですが
なぜか0が代入されてしまいます。
どこが間違ってるのか教えてください。
さっぱりわかんねorz

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/510.txt
991デフォルトの名無しさん:2005/06/07(火) 21:49:32
>>990
x == 0 のとき、a[0][1] は 1 になるが、
x == 1 のとき、a[0][1] はどうなる?
992デフォルトの名無しさん:2005/06/07(火) 22:04:02
>>989
throwするんかい
993デフォルトの名無しさん:2005/06/08(水) 01:07:32
>>990
>/*構造体型struct edgeの宣言*/
言われんでも見りゃわかるわw
「何をしてるのか」じゃなくて「何をしたいのか」をコメントしような

この場合なんのつもり(何に使うつもり)で構造体edgeを宣言
したのかを書いてくれ

ちなみにxを使ったループが外にあるせいで
毎回結果が上書きされてx==9の場合の結果しかaに入ってないが
それが意図した操作なのか?根本から間違ってるように見える
994デフォルトの名無しさん:2005/06/08(水) 01:20:19
ちと、文字列の半角を全部全角に切り替える処理を行いたいんですが
VBのstrtocnvみたいな便利な関数は無いですか?
995デフォルトの名無しさん:2005/06/08(水) 01:33:15
LcMapString()
996デフォルトの名無しさん
>>967
今だと Xbox360 (PowerPC) とか。