1 :
デフォルトの名無しさん :
2010/10/16(土) 13:57:43
2 :
1 :2010/10/16(土) 13:58:26
最後に一文付け加えました。 他は前スレと同じ。
3 :
sage :2010/10/16(土) 16:50:50
ゲームガードがメモリエディタ系ツールは遮断するのにProcess Explorerでメモリ読んだり書き換えたりするのは遮断されないのは なぜなんでしょうか
4 :
sage :2010/10/16(土) 16:52:05
↑うんこ
>>3 exeの中にドライバーが仕込んであって、それで読みだしてんじゃないの?
9 :
デフォルトの名無しさん :2010/10/16(土) 19:21:42
windowsでsystem関数を使ってBATファイルを作りそれをスタートアップに登録させたいのですが スタートアップのフォルダパス取得方法わかりません、教えてくれませんか。
「winapi スタートアップ」でググれ。
スタートアップフォルダのパスって決まってるんじゃないの? ドライブC以外に入れてるなら環境変数からROOTとってくれば
さっさとNG入れて反応すんな
いや本気で要らないと思うんだけど
win32スレとはここでよいのでしょうか。 質問させてください。 VC++2010Expでビットマップの編集ソフトを作ろうと考えています。 ファイルから読み込んだものを、ほかのDIBにコピーしたいのですが、 下記のようにプログラムしてもうまくいきませんでした。 UINT adjust4multiples(int i){ return (UINT)((i+3)/4)*4; } として、 HBITMAP from_file = (HBITMAP)LoadImage(NULL,FilePath,IMAGE_BITMAP,x,y, LR_CREATEDIBSECTION | LR_LOADFROMFILE ); DIBSECTION dibsection_info; GetObject(from_file, sizeof(DIBSECTION), (LPVOID)&dibsection_info ); for(int i=1; i<=y; i++){ int iymem = (y - i) * adjust4multiples(Width*3); int iyfile = (y - i) * adjust4multiples(x*3) CopyMemory(memBITMAP+iymem, dibsection_info.dsBm.bmBits+iyfile, x*3); } memBITMAPはあらかじめDIB用にメモリ確保してあり、問題ないのですが、bmBitsを使ってコピー元を表そうとしても、 コンパイラから、完全なオブジェクトをさすポインタでないといわれ、コンパイルできません。 (RtlCopyMemory,memcpyでも) CreateDIBsectionで作られたものであれば、ピクセルへのポインタがあらかじめ手に入るのですが、LoadImageの場合は どうすればいいのでしょうか。 手直しすればこの方法で問題ないのか、そもそもLoadImageをつかって楽をしようとしたのが間違いなのか。 よろしくお願いします。
フォトショップなどで、起動したら出てくる ブラシなどのメニュー用のフォームを作りたいのですが こういう起動時に出てくる、子ウィンドウのようなメニューって どういう呼称になるのですか? キーワードがわからず
>>15 方法が正しいかどうかはよくわからんが、エラーの直接の原因はvoidポインタに加算してるから。
18 :
15 :2010/10/16(土) 22:52:20
>>17 なるほど、汎用ポインタはキャストしないといけないのですね。
LPBYTEにキャストしてやったら、コンパイルできました。
うまく動いてるみたいです。
ありがとうございます。
CreateDIBSectionが必ずしもHDCを必要としないことに今日初めて気づきました。 俺は今まで10年以上、この関数にHDCを渡すためだけにGetDC(NULL)と書き続けてきたのです。 誰か俺の人生を返してください。
20 :
デフォルトの名無しさん :2010/10/17(日) 05:51:40
定期あげ
画面撮ったり表示したいなら必要だぞ
22 :
デフォルトの名無しさん :2010/10/17(日) 18:37:44
ディレントってなんですか?
もしかして dirent のことだったら DIRectory ENTry の略
俺も昔はディレントだと思ってたw
26 :
デフォルトの名無しさん :2010/10/18(月) 07:33:57
盛り上がってねーな
27 :
デフォルトの名無しさん :2010/10/18(月) 14:26:17
UNIXの話はここでおk?
ちょっとならいいよ
UNIX板というものがあってだな
?
もしかしてUNIXのWin32APIのこと?
謎は深まるばかりである。
Wineかな
プ板でやれ
BOW
RegisterHotkeyについて質問させていただきます。 RegisterHotkeyを使ってファンクションキーにホットキーを登録しようと思うのですが、 BOOL RegisterHotKey( ウィンドウのハンドル, ホットキーの識別子, キー修飾子フラグ, 仮想キーコード ); このキー装飾子フラグというのを無視する方法は無いでしょうか
>>36 全部にフラグ立てとけばいいんじゃないの?
38 :
36 :2010/10/19(火) 01:18:24
すいません、返り値を勘違いしていました。 キー装飾子フラグを0で成功しました。
ういーんさーてーとぅー
41 :
デフォルトの名無しさん :2010/10/19(火) 05:52:23
さーてぃーとぅーアイスクリーム
ういんさてと
うにくす
44 :
デフォルトの名無しさん :2010/10/19(火) 10:07:36
ブラクラの意味調べて出直してこい
47 :
デフォルトの名無しさん :2010/10/19(火) 18:44:20
FindFirstFile()で取得した4GB以上のファイルのnFileSizeLowに対してStrFormatByteSize64()しても、 正常に変換してくれません。 どのようにすれば正常に変換してくれるのでしょうか。
お前さん、どうして FileSizeHigh を無視して FileSizeLow だけ見てるんだい
51 :
48 :2010/10/19(火) 22:58:58
52 :
デフォルトの名無しさん :2010/10/20(水) 09:24:10
定期あげ
ずっと張りついてんだな 暇だな
54 :
Perl忍者 ◆M5ZWRnXOj6 :2010/10/20(水) 12:10:25
海苔みたいですね
55 :
デフォルトの名無しさん :2010/10/20(水) 12:39:46
UNIX
56 :
デフォルトの名無しさん :2010/10/20(水) 12:41:00
やったー! 糞コテPerl忍者が釣れたぞ!
57 :
デフォルトの名無しさん :2010/10/20(水) 18:38:57
定期あげ
これはピャピャピャー
リストボックスをダブルクリックされたときのメッセージを処理したいんですが、上手く行きません そのときのLOWORD(WPARAM)ってダブルクリックされた物のIDで合ってますよね?
WM_LBUTTONDBLCLKならwParamはShift, Ctrl, マウスボタンが押されてるかどうかだけど
きも
解決しました。
>>60 UINTがWM_COMMAND、HIWORD(WPARAM)がLBN_DBLCLKで処理しようとしているんですが、これは間違っているんでしょうか
テスト
ShellExecuteでフォルダを開きたいのですが ディレクトリ名渡して"explorer"を指定するとフォルダの左側に フォルダツリーが開いてしまいます。 "open"を指定すると例えば「c:\test\aaa\」と「c:\test\aaa.exe」が あるとしてc:\test\aaaを開こうとするとexeの方が起動してしまう。 ShellExecuteでフォルダを開く場合パスの末尾に固定で\をつける処理を 入れればフォルダが開けるんですけど、そうすると/区切りのパスの時に \を固定でつけてしまうのが微妙です 対策としてはinstrで/を検索して存在しなかったら"\"を追加する事くらいしか思いつきません。 なにかもっとスマートにフォルダを開く方法ないでしょうか
すみません訂正です x ShellExecuteでフォルダを開く場合パスの末尾に固定で\をつける処理を o "open"でフォルダを開く場合パスの末尾に固定で\をつける処理を
ダサいとか気にせずPathAddBackslash()を素直に使え
質問します。 VC++2010expで、コモンダイアログで名前をつけて保存を開くときに、 wchar_t filename_full[_MAX_PATH]; wchar_t filename[_MAX_PATH]; OPENFILENAME ofn; として、ofnの初期化をするときに、 ofn.lStructSize = sizeof(OPENFILENAME); ofn.nMaxFile = sizeof(_MAX_PATH); ofn.nMaxFileTitle = sizeof(_MAX_PATH); としたところ、バッファが小さすぎるとエラーになり、 ofn.lStructSize = sizeof(ofn); ofn.nMaxFile = sizeof(filename_full); ofn.nMaxFileTitle = sizeof(filename); としたら、問題なく動きました。 これはいったいどういう理由なのでしょうか。
すみません、上記 ofn.nMaxFile = _MAX_PATH; ofn.nMaxFileTitle = _MAX_PATH; の間違いです。
下は sizeof(wchar_t)*_MAX_PATH; と同義
sizeof(wchar_t) を調べてみたら 2 でした。 よくわかりました。 ありがとうございます。
winsockでさ、gethostbynameで情報取得してみたいんだが、 適当なホームページアドレスで試してみても大丈夫なの? あの犯罪とかにならないか心配でさ。
図書館とかはやめといた方がいいかもな
ヤフーなら大丈夫でしょうか?
いいじゃんホワイトハウスで。
HMENUが分かっているとき、そのメニューがポップアップメニューかどうか 判定する方法はありますか?
仮想リストビューでクイックソートを行った場合、 フォーカスはソート前と同じ位置のままで、フォーカスがあったアイテムを追いかけてくれません。 どのようにすれば、追いかけてくれるのでしょうか。
無茶言うなよ 自分で設定しろ
gethostbyname使ったら逮捕されるってほんと?
相手がきてぃがいならな
83 :
デフォルトの名無しさん :2010/10/21(木) 23:42:48
下がりすぎ
赤鬼さんと朝まで豆まき
85 :
79 :2010/10/22(金) 01:02:35
質問です。 タブコントロールでTCS_FIXEDWIDTHを指定すると、英文字列は中央に正しく表示されますが、日本語文字列が右に寄ります。 多分文字数を半角の前提で計算して表示しているからなのでしょうが、これはコントロールのバグなのでしょうか。 ご存知の方お教え願います。
>>85 たぶん
ソートする前に、stateをOWNERDATAへ格納しておいて
アイテムをセットの時に、stateを設定すればいいんじゃないの
果たしてそうでしょうか
謎は深まるばかりである。
90 :
デフォルトの名無しさん :2010/10/22(金) 08:45:35
Windows7でサービスで作成した共有メモリ(READWRITE)を、ユーザプロセス側でWRITEでOpenしようとすると、失敗します。(GetLastErrorの戻り値は0です。。) READは成功しています。 WindowsXPではうまくいきました。 サービスはVC7.1 VB6です。 何かうまくいく方法はないでしょうか?
91 :
デフォルトの名無しさん :2010/10/22(金) 08:56:59
ピャピャピャー
YOUがDEADすればいいと思うよ。
バリアつかったから意味ねーし。
バリア粉砕効果あるし
97 :
CopyRect :2010/10/22(金) 12:08:51
僕を呼んだかい?
こうなったら、いちかばちかだぁ! おまえらのAPIをよこせぇぇ! ぐはあぁぁ・・
俺開発されちゃうの? ねぇ、開発されちゃうの??
DWORD GetAnalDevCaps(HANDLE);
この関数はアナルデバイスのキャパシティを調べるために使用します。 キャパシティが0であるアナルデバイスに対する入力は未定義の動作を引き起こします。 この関数は失敗すると負の数値を返します。
是非お願いs(ry
キャパを調べてほしいのか、入力してほしいのか
104 :
79 :2010/10/22(金) 16:40:36
>>87 ありがとうございます。
その方法でうまく動作してくれました。
105 :
デフォルトの名無しさん :2010/10/22(金) 16:49:09
アナルOKのキャバ嬢が来てると聞いて
106 :
デフォルトの名無しさん :2010/10/22(金) 17:59:23
メモ帳のエディットコントロールのプロシージャが取得できないんですが。 GetWindowLong(FindWindowEx(FindWindow("Notepad", NULL), NULL, "Edit", NULL), GWL_WNDPROC) どちらもウィンドウハンドルは取得できましたが、GetWindowLong()の戻り値は0でした。 ちなみにメインウィンドウのプロシージャも取得できません。 どうしたら取得できますかね? winmapというソフトでも取得できませんでした。
他のプロセスのウィンドウプロシージャのアドレスは取れないって話か?
108 :
106 :2010/10/22(金) 18:49:57
>>107 その問題はDLLをターゲットプロセス自身にロードさせることで解決しました。
他プロセスでも自作のプログラムで作ったウィンドウで試したところちゃんとプロシージャのアドレスを受け取れました。
しかしメモ帳は相変わらず0のままですorz
Unicodeビルドになってないとか
ウィンドウクラスのクラスネームに登録されていない適当な文字列を生成したいんですけどそういうAPIってありますか?
アトム使えばすでに存在するか分かるでしょ
112 :
デフォルトの名無しさん :2010/10/22(金) 22:15:15
鉄腕だな
最近アーカイバソフト等の脆弱性が流行ってるのでちょっとおまいらに聞きたい 脆弱性の一つに、フォルダを開くのに ShellExecute(NULL,"open","c:\\windows",NULL,NULL,SW_SHOWNORMAL) ※1 とすればいいのを ShellExecute(NULL,"open","explorer.exe","c:\\windows",NULL,SW_SHOWNORMAL) ※2 としてるせいで、"explorer.exe"というファイル名で悪意あるプログラムを配置しとくと 解凍後そいつが実行されてしまうというものらしい ShellExecuteのヘルプ見てもフォルダ開くには※1の方法が載ってるのに なんで態々explorer.exe経由な※2のコードを書くのか理解できない そもそもWindowsのシェルが未来永劫explorer.exeというファイル名とは限らない訳だし それも一つや二つのソフトだけならまだしも、「定番」と云われる有名どころがほぼ全滅ってのがw たぶん誰かが間違ったコードを書いて、コピペされまくって広まったパターンだと思うけど、 何かこうしなければいけない理由でもあるのか教えてほしい
それ最初に書いたの俺だわ 15年くらい前かな
残念、俺だ。 17年前だった
17年前にまだexplorer無いだろwww
>>118 15年くらい前のAPIヘルプにもちゃんと書いてあるんだが
だから俺だよ 反省してるから許して
フォルダ出すのに
ShellExecute(NULL,"open","explorer.exe","c:\\windows",NULL,SW_SHOWNORMAL)
とか書いちゃう人って
ホームページ出すのに
ShellExecute(NULL,"open","iexplore.exe","
http://www.2ch.net ",NULL,SW_SHOWNORMAL)
とか書いちゃうの?
コンソールアプリケーションで、現在の標準出力がファイルにリダイレクトされているか、そうでない(本物のコンソール)に表示されているのかを 判定する方法を教えてください。 今のところ GetFileInformationByHandle の返り値が 0 か否かで判断する予定ですが、それより良い方法があればお聞きしたいです
それでいいよ
winsockでクライアント側からサーバ側にsendしたいんですが、 そのときのソケットってどう作ればいいんですか? サーバ側からクライアント側にsendするときは、acceptの戻り値のソケットに対して、 sendすればいいですが、 クライアント側からはacceptしないと思うので、どうすればいいかわかりません。 よろしくお願いします。
ああソケットの作り方かぁ socketでソケット作って、connectで接続
GetFileType > 122, 123 返り値が 1 ならファイルへの書き込み 3 なら別のプロセスへ/からのパイプ 2 ならコンソール
>>127 コンソールとは限らないだろ
> FILE_TYPE_CHAR 0x0002
> The specified file is a character file, typically an LPT device or a console.
GetFileType が 2 を返す場合は GetFileInformationByHandle の返り値も 0 になるので問題なし。 GetFileInformationByHandle は STDIN/OUT/ERR がパイプなのかコンソールなのか判定できないので バッファリングするかしないかを切り替える時には役立たず。 128 も役立たず
istty?
GetFileType?
>>129 FILE_TYPE_CHARがコンソールを指すとは限らないって言ってるのに、
> GetFileType が 2 を返す場合は GetFileInformationByHandle の返り値も 0 になるので問題なし。
って頭大丈夫?
コンソールかどうかを判定するなら適当なコンソールAPIを呼べばいいんじゃね?と思って GetConsoleModeを試したらコンソール以外だと失敗してERROR_INVALID_HANDLEになった コレで判定できそうか
GetFileInformationByHandle パイプのハンドルを指定するべきではありません。この関数は、パイプハンドルに対しては機能しません。
133 は他人の否定だけではなく、なにか対案を提示するようにお願いします。
嫌です。
138 :
122 :2010/10/23(土) 08:57:01
どうもありがとうございます。 GetFileType で絞り込んで、 GetConsoleMode の可否で最終確認かな? 単にバッファリングの必要性を判断するだけなら GetFileType で十分ということかな GetFileInformationByHandle はこの役には立たない。ということが解っただけでもよかった。
>嫌です。 すなおに「わからないんです」っていえよ... かわいそうに。
>>139 BOOL IsConsole(HANDLE handle)
{
UNREFERENCED_PARAMETER(handle);
return (MessageBox(0,"リダイレクトしてますか?","質問",MB_YESNO)==IDNO);
}
GDIにGetObjectTypeがあるのにカーネルにGetHandleTypeみたいなのが無い不思議
>>125-126 ありがとうございます。
saddr.sin_family=AF_INET;
saddr.sin_port=htons(12345);
saddr.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");
このsockaddr_inを使ってconnectしてサーバとは接続できます。
問題はこのクライアント側でrecvするときです。
そのときのソケットはどのソケットを使えばいいんですか?
connectの第一引数で指定したソケットはsendする時のソケットですよね?
recv用のソケットの作り方のことを言っています。
わかりにくくてすみません。
よろしくお願いします。
>>142 >そのときのソケットはどのソケットを使えばいいんですか?
わざわざ port を変えて(=結節点を変えて) 読み込まない限り
接続したソケットでそのまんま recv
ちょっと増長だったな 以下の文は忘れて ×わざわざ port を変えて(=結節点を変えて) 読み込まない限り
selectしてからrecvしないとデッドロックするんじゃね
別にしなかったと思うぞ
ああそういう意味か するする
ありがとうございます。 selectはちょっと調べてみます。 ところでサーバー側からクライアント側に送信する場合、 以下のようなコードで大丈夫ですか。 変数clientはサーバ側のacceptの戻り値で受け取ったSOCKET型の変数になります。 char LUCIFEL[]="そんな装備で大丈夫か?"; if(send(client,LUCIFEL,sizeof(LUCIFEL),0)==SOCKET_ERROR){ puts("データの送信処理でエラーが発生しました。"); getchar(); return -1; }
上の質問は結構です。 受け取ったデータをprintfするの忘れてました。
また升か?
ルシフェルさん気さくやな
152 :
デフォルトの名無しさん :2010/10/23(土) 12:18:16
分かったよあげりゃいいんだろ
もっとこうDirectにXしたい
DirectXって全然Directじゃないよねw
winsockで質問です。 相手から送られてくる文字列って何バイトか分からないと思うんです。 なので、あらかじめ文字列バッファを適当に確保しとくしかないと思うんですが、 なんとか送ってきたデータのサイズをチェックして動的確保したバッファにrecvできるような 方法ないですか?
そろそろうぜーからソケット使うのやめて.NETでも使ってろよカス
わかった。もういいよ。
winsockの基礎が知りたいのならすれ違いのような?
そういえばネットワークプログラミングスレなんてあったな
GDIのindirectさに対してのdirectだから別に問題ない
MSDNのリファレンスを読まないバカはAPIを使うな。
違うスレ行きます。すいませんでした。
現状でDirectなのはDirect3DとDirectComputeぐらいか? DirectMusicなんか最初からDirectもクソも無かったし、DirectWriteやDirectPlayなんて単なるフレームワークだろ
164 :
デフォルトの名無しさん :2010/10/23(土) 18:07:37
unistd.hがねーよぉ!!!
cygwinが標準だと思うな馬鹿
gccが標準だろ馬鹿
VC6とMinGWとWDKのコンパイラ以外は要らない msvcrt.dllにリンクできないCコンパイラなんてゴミ
169 :
デフォルトの名無しさん :2010/10/23(土) 19:08:32
じゃあWindowsがゴミってことで^^
WindowsはCコンパイラではありません。
マジレスするとVista/7はドトネトで作ってある。だから重い。
まあCコンパイラはgccしか使い物になら無い vcなんてC99に全然対応できてない欠陥品
Windows7は20グラムもある
グニユーコンパイラコレクション
コンパイラーのコレクションですか 気持ち悪い趣味ですね
LCMapString() でアルファベットの小文字→大文字変換をしたいのですが、 下記のように指定すると、全角小文字も全角大文字になってしまいます。 LCMapString( LOCALE_INVARIANT, LCMAP_UPPERCASE, str, size, str, size ) 半角小文字だけを半角大文字にしたいのですが、Win32 API で良い方法はありますか? C ランタイム関数であれば下記のような方法が見つかったのですが、_locale_t を 管理しなきゃならなくなるので、なるべく使いたくありません。 _locale_t loc = ::_create_locale( LC_ALL, "C" ); ::_tcsupr_s_l( str, size, loc ); ::_free_locale( loc );
_tcsupr_s_lのソースをパクる。以上
俺ならよろこんで_locale_tを管理する
> 半角小文字だけを半角大文字にしたいのですが C言語の教科書レベル
宿題スレ池
最近のCの教科書はうにコードとかもカバーしてるんかいな。分厚そうだな。
質問者はunicodeなんて言ってねーだろばーか
文字列のa-zをA-Zに置き換えるコードぐらい自分で書け
落ち着けよ馬鹿
いやだかから落ち着いてるだろっつっつてんだろ鹿馬
>>180 本当にCの教科書レベルのコードだと、TCHARがcharである場合は
CP932の2バイト目が半角英数に一致する文字(たとえば「など)が壊れてしまう
190 :
デフォルトの名無しさん :2010/10/23(土) 21:12:37
>>170 CコンパイラですらないWindows(笑)
C99に対応てきてないっていうか VCに限らずC++に特化したコンパイラは最初から対応する気なんて無いでしょ
VCだけじゃ
Borland C++
あれは、GUIに特化しちゃったからね
C99なんて可変長配列くらいしか知らないな 対してメリット感じない Win32APIは神すぎるでしょう…
196 :
デフォルトの名無しさん :2010/10/23(土) 21:57:09
CopyRectは糞だけどな これだけはいらん
もうCopyRectは許せよ
C++版のVBみたいなものだね
それ何てC#?
可変長配列は要らないが指示初期化子は欲しいところ Win32APIはデカい構造体が多いから初期化が面倒杉 まーMS様はこんな汚い関数を定義してお茶を濁してるんでVCにゃ期待薄だが D2D1_RENDER_TARGET_PROPERTIES props = D2D1::RenderTargetProperties( D2D1_RENDER_TARGET_TYPE_DEFAULT, D2D1::PixelFormat(), 0, 0, D2D1_RENDER_TARGET_USAGE_NONE, D2D1_FEATURE_LEVEL_DEFAULT);
そうなんだよAPIはデカイ構造体が多過ぎなんだよ
UNIXシステムコールが使えないWindowsは糞
使えますが何か?
パクリまくりしましたが何か?
困るのは無能だけですが何か?
202=無能
207=202 はいはいわろす
何がどうギャグになってるのか理解の範囲外だ
ギャグよりもjoke/kiddingのほうがしっくりくる
本人は面白いと思って言っている。ギャグとはそういう物だ。
面白ければいいじゃない
MSDNライブラリオンラインのCommunity Content消えてね? 残ってるのもあるけども
戦場で、戦場ではしゃぐから、はしゃいじゃうから… そういう風に、なっちゃうんでしょ!お調子者が、くっ…
215 :
デフォルトの名無しさん :2010/10/24(日) 17:34:53
Macが使えないWindowsは糞
ぼくのぱそこんはえぬいーしーのういんどうずです
APIヲニュウリョクシテクダサイ: >■
219 :
デフォルトの名無しさん :2010/10/24(日) 18:59:14
釣れる釣れるw
・ヒ。」@ケH?・゚usミ錆Qキ3エaウ=Nナャ瓠mク梼オカ・ミ゚&維Vクニ弁ゥ亜エOシ樫;テ繁ヤンヨ頏 APIヲニュウリョクシテクダサイ: >■
だめだ、ねむい 俺妹始まるまで寝るわ
その名称のアニメーションは俺も見ているぞ
俺も見てるよ
2次元配列妹
カセットテープを扱うAPIを教えてください 今構築しているシステムがカセットテープに記録するタイプなので
boost::kasetto
データレコーダーからLTOまで
GetKasettoData()
Windowsに不可能などない!
じゃあ日本を救うAPIをお願いします
NonConfidenceBillInTheCabinet()
>>232 DestroyChinese
DestroyKorean
235 :
デフォルトの名無しさん :2010/10/25(月) 00:13:10
いいからAPI出せや
これでできそうです! ありがとうございました!
ボーランドコンパイラダウンロードできなくなったな
ヒント:MSの圧力
やはりM$は格が違った
コマンドラインコンパイラしか無くてDOS/Win16バイナリが吐けるわけでもなくて最適化能力低くてインラインアセンブラも使えない屑コンパイラのこと?
Win32Apiではないですが、 AfxBeginThread()で開始したスレッド作成した後にスレッドが終了したのかを判断する方法はありますか? メインスレッド側で戻り値のCWinThread*でスレッドが終了したかを判断したいです。 CWinThread* pThr = AfxBeginThread( ThreadFunc, NULL );
パイプとか共有メモリとかセマフォとか
>>242 CWinThreadの使い方になってくるからMFCスレ行った方が良いかと
> Win32Apiではないですが、 って言えばどんな質問でも回答してくれるんだね、ここ
Win32Apiではないですが、 MSDOSで動作するexeを出力するにはどうすればよいでしょう
247 さんの言うように、Win32Api の質問ではないのでここから出て行くように。
Win32Apiではないですが、 プロセス(PID)が生存しているか確かめる方法を教えてください
Win32Apiに限らず、その時点のPIDを列挙して比較するだけ。
251 :
デフォルトの名無しさん :2010/10/25(月) 13:50:47
絶対にスワップアウトされないヒープの確保ってどうやるんですか?
252 :
デフォルトの名無しさん :2010/10/25(月) 14:05:47
絶対に破られないプログラムってどうやるんですか?
>>251 VirtualLockした領域に自分でヒープを作れ
258 :
デフォルトの名無しさん :2010/10/25(月) 15:01:30
>>252 君のヘボプログラムなんて誰も破ろうとしないから余計な心配しなくてよろしい
破られないプログラムて 紙じゃあるまいし
よく釣れるなぁw
神プログラムなら破られない
神API
BOOL IsGodPresent(VOID);
LONG Chinko(HAND);
VOIN MAID(OPPAI)
LPOPPAI
ポパイェ…
WNDCLASSEX
mamco = Timpo(NULL, NULL);
manco mmand
なんか変な流れだな。どうしてこうなった。
じゃあ問題だ LoadLibrary()でDLLがロードできるが、LoadLibrary()を使うためにはkernel32.dllをロードしておく必要がある。 WinMainCRTStartupがエントリで、DLLを全く静的リンクしないプログラムからLoadLibrary()を使えるようにするには どういうコードを書けばいいか。
ここ寂しいマの雑談所じゃないんで
自力でマッピングすればいいんじゃね?
kernel32は起動時に自動でマッピングされているのでメモリをサーチするだけでいい
276 :
デフォルトの名無しさん :2010/10/25(月) 20:41:02
> WinMainCRTStartupがエントリで、DLLを全く静的リンクしないプログラム そんなもんがこの先まともに動作する保証は無いしWinMainCRTStartupなんてVC++が勝手に付けたシンボルだろ レヴェルの低い問題だな
2000の挙動はほんと異端
DLLを全く静的リンクしないって、、、 DLL=Dynamic Link Libraryの略でしょうが アホですか?
エントリポイントで DLL を取りこむ= DLLの静的リンク
明示的に LoadLibrary() を読んで DLL を取りこむ=DLLの動的リンク
では エントリポントで kernel32 が居ない状況下
DLLを取り込む(=LoadLibrary() を呼ぶ)にはどうするのか? というのが
>>272
ロード時リンクと実行時リンクという言葉を知ろうな281
すまねぇぇぇ ロード時リンクと実行時リンクの存在を忘れてたぜ
DLLは常に動的リンクという事も知らんのかこのアホw
逆に kernel32.dll を静的リンクする方法を教えてよ MS社に忍び込んで kernel32_static.lib 的なものを盗み出してくるとか?
>>285 静的リンクと騒いでるの周回遅れのお前だけだよ。w
DLLの静的リンクとか言っちゃう馬鹿よりマシ
288 :
デフォルトの名無しさん :2010/10/25(月) 22:39:38
kernel32_static.libなるものが手に入ったとして、kernel32.dllを静的リンクできる かもしれないと考えるバカよりはましだと思うぞ。w
kernel32.dll が含む関数とは静的リンク出来るでしょ どうせほとんどが ntdll.dll のラッパーだから大して意味無いけどね
は?お前何を見てきたの
API以前の初心者が紛れ込んでるのか
kernel32をわざわざLoadLibraryする人がいると聞いて
いやkernel32をLoadLibraryと言った奴は居ないぞ
しかし、ここまでMSの公式用語 Implicit linking, Explicit linkingを使ってる 奴はいないと言う事実。w
若干1名居るようだが。
間抜けが一人見つかった以上の事実はありませんよ 見つかったって言うか自爆だけど
間抜けは「。w」という間抜けな表記を使うから一目で分かる
スタティックロードでもいいんじゃん。w
http://msdn.microsoft.com/en-us/library/9yd93633 (VS.90).aspx
Implicit linking is sometimes referred to as static load or load-time dynamic linking.
Explicit linking is sometimes referred to as dynamic load or run-time dynamic linking.
static loadとstatic linkは全然違う訳だが
DLLの"D"を知らない初心者 or dynamicの意味を知らない小学生 staticの意味も知らないようだから後者か。
いいえ。性的なリンクをしたことないDTです。
顔真っ赤にしながらDLLをstatic linkingと書いてるMSサイトを必死で検索中ってところか。 まぁ探せば一つや二つはあるだろう。
じゃあ問題だ LoadLibrary()でDLLがロードできるが、LoadLibrary()を使うためにはkernel32.dllをロードしておく必要がある。 WinMainCRTStartupがエントリで、DLLを全く静的ロードしないプログラムからLoadLibrary()を使えるようにするには どういうコードを書けばいいか。
リンクが静的か動的かは、プログラムの一部になっているか別々か 動的リンクのロードが静的か動的かは、ロード時リンクか実行時リンクか ……でOK?
くだらない揚げ足取りに必死な奴らが多いな
API関係ないじゃん
くだらない揚げ足取り(笑)
こういう場で頼んでもないのに出題したがる奴は得てして自尊心高い奴だからこれ以上苛めるな。
int 2ehでもsysenterでも使ってシステムサービスでも呼べばいい
そんなことより、64bitプロセスから32bitプロセスのKernel32関数ポインタを 得る方法を考えてくれよ。 とりえあず今までに俺が考えた方法。 @関数のアドレスを得るためだけの32bit EXEを別途用意しておいて実行する。 A実行中の適当な32bitプロセスがロードしているKernel32.dllのアドレスを CreateToolhelp32Snapshot等で取得し、ReadProcessMemoryでイメージを読み取って、 IATを自力で解析する。 他に何かあるだろうか。
そんなの得たところでQT_Thunkみたいなのが使えるわけでもないし無意味極まりない
ReadProcessMemoryて32bit→64bitは失敗するけど64bit→32bitは成功するの?
>>319 成功する。関数を書き込んでCreateRemoteThreadで実行させることもできる。
でもLoadLibraryすら実行できないから何の役にも立たないという。
つーかCreateRemoteThreadってそもそも何の為にあるんだ?真っ当な使い方が思いつかない こんなウィルス御用達のAPIはいずれ廃止されると思ってたのにCreateRemoteThreadExなんて出来ちゃったし
>>320 32bitプロセス内に64bitのスレッドが作成されるん?
>>322 いやいや、実行されるのは32bitコードだから、ちゃんとx86の関数を作っておかないとだめ。
32bitプロセス同士みたいに、Cの関数をそのままコピーしたりはできない。
>>323 32bitのスレッドが作成されるならLoadLibraryできるんでないの?
64bitプロセスから32bitのLoadLibraryのアドレスを手に入れるのが面倒だけど
だから自前でロードすればいいでしょ DllMainを呼び出さなければ何ら害は無い
またバカが来た
プロセスごとにメモリ空間が独立しているので無意味
んじゃ何がバカなのか説明してみて
自前で自プロセス内に読み込んでLoadLibraryのRVAは取得できても対象プロセス内のkernel32.dllのベースアドレスが不明 ImageBase==ベースアドレスはASLR下で成り立たない
それ言っちゃうと同一モジュールのベースアドレスはプロセス間で共通と仮定するのも危険でしょ
それはASLRが導入されるNT6より前は保証されていた kernel32とかの一部限定だけど
NT6より前とかそんなレガシーOSどうでもいいよ
恥ずかしい奴だな
今のところASLR下でもプロセスAのkernel32.dllとプロセスBのkernel32.dllは同じだが だからといって将来に渡って保障されてるわけでもないからな
自プロセスでLoadLibraryのアドレス持ってきてCreateRemoteThreadするという 定番の技がある以上、変更されることはまずないだろうな
アドレスが同じなのは再配置のコストが大きいからに他ならない。 近い将来PCの性能が向上してこのコストが無視できるレベルになったら ExplorerなどのOSコンポーネントだけアドレスが違うなんて事になる可能性は十分にあるよ。
相手のベースアドレスは CreateToolhelp32Snapshot と Module32* で取れる。 まあ、今度は関数のアドレスがプロセスごとにバラバラなんてことにもなりかねないけど。
なあなあお前ら、いっそのこと /delayload: ではだめなのか?
・kernel32.dll に使えない ・指定した DLL の API 全てが対象になってしまう ・スタブが割と大きい と欠点だらけなので、予め関数定義しておけば delayload::PowerSetRequest(hPower, ...) と書ける 自作ライブラリを作ってから全然使ってない
341 :
デフォルトの名無しさん :2010/10/26(火) 09:22:35
あげ
342 :
デフォルトの名無しさん :2010/10/26(火) 09:25:22
埋め
343 :
デフォルトの名無しさん :2010/10/26(火) 09:48:13
梅
くゎっ
wsprintfってなんであんなに糞なの?
もう.NETでいいよ
347 :
デフォルトの名無しさん :2010/10/26(火) 10:32:01
今更的外れな発言をする
>>346 がいるスレはここです
馬鹿ばっか。w
あ、昨日の間抜けさんだwww
Win32APIつっても実質WinXPAPIでしょう
レスはセルフサービスとなっております。
自己レスのメリットないな
>>352 はただの馬鹿だろ
355 :
デフォルトの名無しさん :2010/10/26(火) 12:27:18
あげ
エッチなまうまう?
Win32やPOSIX環境でも動く実行ファイルって作れるの?
359 :
デフォルトの名無しさん :2010/10/26(火) 13:17:36
wsprintfもlstr系もアドレス管理がセグメント/オフセット時代の名残
つーかWinAPI自体が16ビット時代の名残
WindowsこそMSの名残
なんだ今度は等号厨か
本当に君たちは無能ね集まりですね。w
日本語おかしい奴に言われたくないよ
ファイルパスからファイル名(拡張子を含む)を抜き出すAPIってありました?
GetFullPathName
373 :
368 :2010/10/26(火) 17:54:25
>>371 ,372
ありがとうございます(><)
今から試してみます。
APIスレで最適のAPIがあるのに特定のコンパイラ依存の関数を勧める男の人って・・・
376 :
デフォルトの名無しさん :2010/10/26(火) 18:19:01
最適(笑)
>>374 QISearch/IUnknown_Set/IUnknown_AtomicReleaseがあるのにATL勧める人はダメってことですか!?わかりません><
381 :
デフォルトの名無しさん :2010/10/26(火) 18:38:13
晒しあげ
つーか
>>368 の回答はPathFindFileNameじゃねーの?
>>380 追い詰められるとすぐ自演判定しちゃうその気持ち分かるよ
あ、PathStripPath=PathFindFileName+strcpyだからどっちでもいいか。
385 :
デフォルトの名無しさん :2010/10/26(火) 18:41:18
386 :
デフォルトの名無しさん :2010/10/26(火) 18:41:31
ピャピャピャー
>>368 はAPIを訊いているのだから処理系依存のランタイム関数を答える奴が悪い。
388 :
デフォルトの名無しさん :2010/10/26(火) 18:44:12
389 :
デフォルトの名無しさん :2010/10/26(火) 18:45:27
盛り上がってるね!ウヒャー
APIでなくていいんだったらSystem.IO.Path.GetFileNameでもいいしな
%~nxI でもいいよ。
この間抜け、一日中貼り付いてるの?
少し邪道だが p=_tcschr(path,'\\'); return(p?(p+1):path);
395 :
デフォルトの名無しさん :2010/10/26(火) 18:53:41
すゎ
へっくしょん
397 :
デフォルトの名無しさん :2010/10/26(火) 19:14:06
だがDLLの静的リンクという奴の足元にも及ばない
shlwapiは__inout_ecount(MAX_PATH)だから使いづらい。 なぜバッファ長を引数に取らないんだか。
>>398 よっぽど参加できなかったのが悔しかったんだな。周回遅れ。w
>>369 を煽っている奴は本物の馬鹿だな
GetFullPathNameの最後の引数でファイル名(拡張子を含む)を抜き出せるんだが
403 :
デフォルトの名無しさん :2010/10/26(火) 19:45:45
はいはいあげあげ
> GetFullPathName は、カレントドライブとカレントディレクトリを、 > 指定されたファイル名に結合し、指定されたファイルのフルパスとファイル名を判断します。 今時カレントディレクトリなんて脆弱性以外の何物でもない
脆弱性なんてどうでもいい
よくねーよw よくねーよw
最近脆弱性って言葉を覚えたんだよ
つかカレントディレクトリの脆弱性が無いソフトの方が珍しいぐらいだ みんなMSDN読まずにプログラミングしてるんだなー
411 :
デフォルトの名無しさん :2010/10/26(火) 20:16:41
>>411 ここ見れば大抵のAPIはマスターになるのにな
>勉強汗 今度は日本語不自由なチョンかよ!?
>>411 ここCの勉強ができるだけではなく優秀なスタティックリンクライブラリアンは利用可能ってことはすごいな
プログラミング作業に価値はないちなみにスタティックリンクライブラリアンとは静的結合ライブラリアンのこと
また日本語おかしいw
キミの日本語変だよ
>>411 純粋にすごいなまだ公にされていないAPIまであるぞ
これも反日デモの一環とかだったら嫌だなぁ…
420 :
デフォルトの名無しさん :2010/10/26(火) 20:30:53
エッチなまうまう?
中国から2chに書き込みできるの?
422 :
デフォルトの名無しさん :2010/10/26(火) 20:45:36
エッチしてるなう
勉強汗 ←こんな間違いどうすればできるんだろ
ゲームなんかでオリジナリティあふれるダイアログボックスとか表示したい場合は ポップアップウィンドウとかを自前で作って表示させるのが一般的なんですか?
はい
426 :
デフォルトの名無しさん :2010/10/27(水) 04:15:13
吸引力の変わらないただ一つの
JSON
ところで、JSONをパースするAPIってある? 設定ファイルに使いたいんだが
はい
今日も無能たちを観察してやろうかな。w
そのライブラリ活動自身がプログラミングを無価値にしている元凶じゃないか 中身を実際に書かなきゃ学べないんだよ
人はそれを車輪の大発明という
>>431 え、お前中身書かないでライブラリ作れるの?
使う側の話だろ 安易に頼ると学ぶ機会を失う
ただのユーザ(笑)か
5年勉強して何か書くより既存の資源を使って1時間で仕上げる方がいい
>>436 使わなければユーザではない
使うからユーザーなのだ
439 :
デフォルトの名無しさん :2010/10/27(水) 10:11:01
ミルク隊長のミルク飲みたい
朝から無能が集まってるな。w
24時間スレに張り付いてる基地外に言われたくないよ
>人はそれを車輪の大発明という 大発明なら凄いことなんじゃないか?
変な日本語の奴とageて駄レス垂れるだけの奴と「。w」で終わる間抜けの一人しか居ないスレ
周回遅れを悔しがる知恵遅れがいる。w
447 :
デフォルトの名無しさん :2010/10/27(水) 12:47:35
FtpFindFirstFileというAPIでFTPサーバーのファイルを検索すると 大文字・小文字を区別してしまうのですが区別しないようにする ことはできないでしょうか? FTPサーバーはWindowsです。 よろしくお願いいたします。
ワイルドカードでリストアップしてどっちかに変換してから調べたら
なるほど。 ただファイルが多いので厳しいところではあります。
サーバーのファイル名を全部小文字に書き換えるとよい
サーバーのファイル名を取得するだけなのにファイル名の変更を勧める男の人って・・・
大文字小文字の処理を検索前にするか後でやるか 前にやる方法 大文字と小文字の両方のパターンを生成して複数回検索 後でやる方法 ワイルドカードで一気に取得してローカルでマッチング どっちか選べ
454 :
デフォルトの名無しさん :2010/10/27(水) 15:13:22
↑なにこいつ
鯖に専用のASPでも走らせておいてhttpで取得するとか Windows鯖なら1フォルダにファイル数百万みたいな使い方はしないだろうから一気に取得して ローカルで振り分けた方がパフォーマンスいいんじゃないかなあ リアルタイムで更新されててある特定の瞬間の状態が欲しいような場合、分割クエリはトラブルの元だし
456 :
デフォルトの名無しさん :2010/10/27(水) 15:31:34
おい無能ども。w
サーバーで大文字なんて普通使わないだろw
周回遅れの知恵遅れ。w
ファイル名が英字30文字なら2の30乗パターンになるが
え?
462 :
デフォルトの名無しさん :2010/10/27(水) 17:59:52
本気なら2ch総力をあげて潰すが
ファイル名が2進数なのか
大文字と小文字だから2進数じゃね?
知恵遅れ。大文字/小文字で2進だろ。w
466 :
デフォルトの名無しさん :2010/10/27(水) 18:20:28
いいからAPI出せや
467 :
デフォルトの名無しさん :2010/10/27(水) 18:50:18
周回遅れの知恵遅れの方がIQは低いな。
エッチなまうまう?
>>469 キミの事だよ。周回遅れの知恵遅れクン。w
>>471 残念だけどキミだよ。周回遅れの知恵遅れクン。w
>>472 気にいってくれたようで嬉しいよ。周回遅れの知恵遅れクン。w
474 :
デフォルトの名無しさん :2010/10/27(水) 21:09:20
あげ
埋め
埋め埋め
埋め埋め埋め
埋め埋め埋め埋め
ロベール
ロベール
埋め埋め埋め埋め埋め埋め埋め埋め
埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め
埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め
ローベル
ロベール
ローベル
タートル
そんなに自分の恥ずかしいレスを流したいの?
釣れた。w
埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め
埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め 埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め 埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め 埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め
もし一般公開する場合、UPX使うとウイルス誤爆が増えて ユーザにあいつウイルスばらまいてるって中傷受ける羽目になるからやめといたほうがいいぞ
埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め 埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め 埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め 埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め 埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め
そんなに必死に流そうとしてると、何を書き込んだのか逆に気になってしまう
埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め 埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め 埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め 埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め 埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め 埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め 埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め
496 :
デフォルトの名無しさん :2010/10/28(木) 00:33:58
あげ
497 :
デフォルトの名無しさん :2010/10/28(木) 01:36:25
あげ
RtlSecureZeroMemory()
よう周回遅れの知恵遅れクン。w
500 :
デフォルトの名無しさん :2010/10/28(木) 09:50:06
あげ
501 :
デフォルトの名無しさん :2010/10/28(木) 10:36:10
ピャピャピャー
昼だな。
503 :
デフォルトの名無しさん :2010/10/28(木) 13:31:45
定期あげ
エッチなまうまう?
505 :
デフォルトの名無しさん :2010/10/28(木) 19:35:30
定期あげ
506 :
デフォルトの名無しさん :2010/10/28(木) 21:49:15
507 :
デフォルトの名無しさん :2010/10/28(木) 21:49:54
周回遅れの知恵遅れの方が知能指数は低い。w
埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め 埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め 埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め 埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め 埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め 埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め 埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め 埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め 埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め 埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め 埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め 埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め 埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め 埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め 埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め
本当に馬鹿だな、周回遅れの知恵遅れクン。w
神社でやれ
俺の妹がこんなに可愛いわけがない
512 :
デフォルトの名無しさん :2010/10/28(木) 22:06:00
いいからAPI出せや
UNIXの話はここでおk?
516 :
デフォルトの名無しさん :2010/10/28(木) 22:25:29
周回遅れの知恵遅れは本当にダメな奴だなあ。w
517 :
デフォルトの名無しさん :2010/10/28(木) 22:29:50
周回遅れの知恵遅れは本当にダメな奴だなあ。w
VC#で作成したアプリケーションでプログラムから System.Windows.Forms.Sendkeysのsendwaitメソッドを使って "[Ctrl]+[Alt]+C"のキー入力を行いたいのですが可能でしょうか? もしできるようであれば正しい書式が知りたいです
可能です
520 :
デフォルトの名無しさん :2010/10/29(金) 07:56:07
周回遅れの知恵遅れは本当にダメな奴だなあ。w
同じネタを繰り返すのは本物の知的障害の一症状なので医者に相談した方がいいぞ
いつもの粘着キチガイ犬だよ。w
お前もな。w
あえてスルーせずどうでもいいことを書いた
>>521 はもっと評価されるべき
キチガイ犬?
527 :
デフォルトの名無しさん :2010/10/29(金) 13:42:51
定期あげ
APIバトルしようぜ
他スレッドでも質問したのですが… ネットワークエントリーの情報を取得したり、 そこから自動でVPNやダイアルアップ接続できる 「RASAPI32.DLL」を使用したAPI(VBRAS32)なんだけど、 WINDOWS7では動かないみたいなのですが、 なにか対処法はご存知ないでしょうか?
試してから言え
>>530 分からないならレスしなくていいんですが……
532 :
デフォルトの名無しさん :2010/10/29(金) 16:12:05
あげ
RASAPI32.DLLには32bit版と64bit版の2種類がある
そりゃ動かないだろうな
Vista以降で、ウィンドウのタイトルバー上のボタンを追加したりって、 どういうプログラムを書けばいいんでしょうか。 dwm関係をいじればいいというのは調べて分かったんですが、 なかなか思うとおりに動いてくれません。
DLLをスタティックリンクすれ
仮想XPで動作させてもだめなのか?
余計なことを考えずウインドウ周りを自分で描けばいいだけ。
First of all, you have to get the Device Context of Non-Client Area. ぶー
542 :
デフォルトの名無しさん :2010/10/30(土) 00:01:29
>>534 WIN7でAPIを使用したネットワークの自動接続はできないのでは?
タイトルバーの大きさを変えたりとかはできるんだけど、 Vista本体と同じ描画法でシステムメニューのボタンを描画したり、 それと似せた形で違うボタンを描画したりする方法とかがわからないんです。
製品版のVS2010買えば新OS対応リソース使いたい放題でしょ
周回遅れの知恵遅れクン。w
C言語すれと迷ったけど、VC独自拡張なのでこちらで。
_wfopen_s(&fp, "newfile.txt", "rw, ccs=UTF-8");
などと、UTFを指定してファイルを開いた時、
読み取れる文字数はどうやって取得するんでしょうか?
http://www.dosokai.ne.jp/tnct/indexz.php?no=80 UTFがwchar_tとかになると、結果的に全部読んだときに必要なサイズがわかりません。
seek使っても、ファイルサイズしかわからないので役に立たないです。
全部読まずに文字数がわかるわけがない。 つーかスレ違い
Wine上でうごかしているJaneStyelより書き込みテスト Wineパネエっっっっっっっっっっっw自作Win32プログラムほぼ全部うごいたっっっっw w打ちつづけると”っ”になるっっっっっっっっw
グローバルフックかける奴ほぼだめだったorz
twitterにでもほざいてろ、クズ
551 :
デフォルトの名無しさん :2010/10/30(土) 12:28:52
>>548 超乙!
また何か分かったらここに書いてくれ
Perl忍者はもう来てくれないのかな・・・
554 :
デフォルトの名無しさん :2010/10/30(土) 14:48:42
↑勘違い馬鹿
↑ファイル読む前からファイル内のUTF文字数調べる芸当はエスパーにしか出来ないだろJK 頭大丈夫かお前
>>546 UTF-8なら、シングルバイト、マルチバイトとも各文字の終わりのビット表現が決まっているので、
ファイル全体をバッファに読み込んで一回サーチすれば文字数はカウントできる。
自前で描いてもそれほど難しくはないけど、文字カウントするAPIは探せばあるはずだよ。
>>ファイル全体をバッファに読み込んで だからこれする前に全文字数をカウントしたいんだってば
本当に人の話を聞いてないね 何がそれほど難しくはない、だ
一度全部読み込まないと文字数なんてカウントできないって何度も言われてると思うんだけど なぜ読み込む前に文字数がわかるはずだって決めつけてるの?
それは546に聞かないとわかりません
546はHDDを直接読める指でも持っているのだろうか? そうでもないと言っていることがわからん。 ちょっとずつバッファに入れて、ちょっとずつ数えるか、 全部バッファに入れて、全部まとめて数えるかだ。 バッファに入れて文字数をカウントするってのはそういうこと。
UTF-8ならファイルを全部読み込まなくても分かるだろ ファイルの最後の1バイトは読み込まなくていい
サイズを2で割ればわかるユニコードは偉大だなw
ユニコードも32bit以外は可変長だろがダボ
知ったかまで湧いてくる始末
UTF-32でも合成文字ってのがあってな・・・
ペロゲートペロペロ
偉大だなw
Windows98の高速再起動(SHIFT+再起動)やりたいのだけどどうすりゃいい? ExitWindowsExはだめっぽい
user.exeのexitwindowsexecを呼んでやればいい。 ただし16ビットコードだが。
Windows98なんて入ってる糞PCを窓から投げ捨てれば解決
最近まったくVC++1.5にかまってあげてないな
まあこの場合はrundll.exe経由で呼べるからサンクするまでもなかったりするけどな
MSDNサイトの 「拡張エラー情報を取得するには、 関数を使います。」 とかって、いつになったら直るんだろう・・・ 関数名が「関数」の前に入るんだろうけど、こんなのがあちこちにある
もう日本語のAPIのページはメンテする気ないんじゃないのか .NETの方は凄い勢いで拡充されてるのに
英語版と別コンテンツ扱いになってるの(言語切り替えで行き来できないやつ)は 直せって言わない限り放置みたい
英語読めないと使いものにならないのもあったりする ローレベルキーボードフックとかもそうだった
英語を制すものはAPIを制す・・・!
どっちにしても英語を読めないと有用なテクニックは習得できないよね。
583 :
デフォルトの名無しさん :2010/10/31(日) 03:32:19
定期あげ
含有 窓 符号付整数値 窓之主過程()「 連絡箱(操作用番号、「こんにちは、世界」、空、連箱。了)。 戻値 零。 」 うぃん32なんざ日本語でおk
漢字識別子だと綺麗に幅が揃うのが気持ちいいよね
なでしこ言語かよ
文字列が半角スペースのみで埋められているかどうかを判定する関数はないでしょうか
hoge[strspn(s, " ")] == '\0'
間違えた s[strspn(s, " ")] == '\0'
594 :
デフォルトの名無しさん :2010/10/31(日) 13:49:57
きもいです
'\0' こうする訳は?
>>592 これは面白い関数
どうもありがとうございます
>>595 charを比較しているんだという強い主張の現れ
強い主張ならしょうがないな
面白い
600 :
デフォルトの名無しさん :2010/10/31(日) 19:47:22
実際には脆弱性があるから使えないけどな
確かに。 実務では使えん。
603 :
デフォルトの名無しさん :2010/10/31(日) 22:39:50
周回遅れの知恵遅れは本当にダメな奴だなあ。w
本当にそうだよなぁ。 いつまで周回遅れのネタを引きずってるのやら。 知恵がないから新しいネタを考えられないんだろうな。
_s 版はないのか
>>605 ポインタであることを表したいときはNULLと書き、文字であることを表したいときは'\0'と書き、
数値であることを表したいときは0と書き分けたっていいじゃないか
そんなこと無駄だと思う人もいるかもしれないが (そういう人はNULLも'\0'も全部0で書き表すんだろうな)、
俺はそういう主義じゃないってだけだ
すでに存在するウインドウの最大化ボタンをグレーアウトするAPIありませんか?
SetWindowLongPtr
ありがとうございます
612 :
546 :2010/11/01(月) 00:26:36
遅ればせながらサンクスです。 文字数数えたいって言い方がかなりマズかった(って過誤りだった)ですね。 freadで読み込んだ後のサイズが知りたかったと言うのが正しいです。 バッファサイズ用意するのに必要だったので… VC拡張のfopen使うと、UTF-8とかUTF-16とか関係なく読んでくれるので、 便利だと思ったのですが、ファイルの終端来るまでぐるぐる回しながら読むぐらいなら、 素直にビットで読み込んで条件分けしてMultiByteToWideChar使います…
>>607 残念ながら、
>charを比較しているんだという強い主張の現れ
これと
>ポインタであることを表したいときはNULLと書き、文字であることを表したいときは'\0'と書き、
これはまったく別
まぁ、うっかりcharとか適当なこと書いちゃったんだろうが
どうでもいい
あらあらwww
もはや「どうでもいい」は常套句だな
617 :
デフォルトの名無しさん :2010/11/01(月) 07:33:57
よう無能ども。w
しかしCRTのソース見るかぎりはwhile(*src++)みたいな実装になってるから \0かNULLかどころか、0か!0かの違いでしかない事実 セキュリティには突っ込まないでおく
うん、うっかり適当なこと書いちゃった あらゆる突っ込みを事前に想定しながら完璧な回答を慎重に書くとか正直面倒臭い ある程度の適当さは許してくれないか
>>618 そりゃあ、C/C++における文字列の定義というのが
終端に'\0'を含む非ゼロで構成されたバイト列なんだからそういう実装になるだろ。
いずれにせよ、Win32APIがC言語準拠になっているという点以外は関係ない話だな。
もうlstrspnW()でも作れw
623 :
デフォルトの名無しさん :2010/11/01(月) 14:34:48
無能の知恵遅れしかいないなあ。w
NGの海にさようなら
いちいちNGしたことを主張する奴って結局スルーできてないよね
626 :
デフォルトの名無しさん :2010/11/01(月) 17:35:54
うんこ↓
catch!
throw;
うんこ、投げるなよ
>>629 void ReadAir()throw(char*){throw "unko,nagerunayo"};
unexpected();
632 :
質問です :2010/11/02(火) 01:51:06
よくネットで以下のようなコードを見かけるのですが、 MSG msg; while(::GetMessage (&msg,NULL,0,0)) { ::TranslateMessage(&msg); ::DispatchMessage(&msg); } return msg.wParam; 戻り値に msg.wParam を指定しているのは何故でしょうか?
Quitの引数
>>633 PostQuitMessage関数の引数という事ですね。
ありがとうございました!
635 :
デフォルトの名無しさん :2010/11/02(火) 14:03:42
定期あげ
636 :
デフォルトの名無しさん :2010/11/02(火) 18:24:30
さげ
クマー
さげと言いながらあげるのはどうかと思うんだ
RaiseUpThread()
thread.age();
SetThreadAgeability(FALSE);
643 :
デフォルトの名無しさん :2010/11/03(水) 14:03:22
定期あげ
throw new NullPointerException();
ガッ
誰かC++でATL実装した人いませんか
っWTL
日本語でおk
649 :
デフォルトの名無しさん :2010/11/03(水) 20:08:48
あげ
ATLはC++で実装されているのだから、つまり ATLの作者はいませんか?ってことか。
>>647 >class HelloWindow : public ATL::CWindowImpl<HelloWindow>
申し訳ない、このひどい継承再帰で心が折れた・・・
何も考えずに自クラス名渡せばいいんでないの。 仮想関数使わずに同じような事をするっていうテクニックだよねこれ。
C++テンプレート本で読んで、これはないな、と思ったテクニックが 今、おれの目の前に立ちはだかる こわい
駄目な奴は何をやっても駄目
AさんはAさんから生まれましたって破綻した構造設計した奴 お前は駄目な奴だな
>>651 ,655
親クラスに子クラスの型を教えてるだけで、継承が再帰なんてしてないから
何も難しく考えること無いのに。
奇妙に再帰してるって言ってるじゃん。継承再帰してるよ
どこも再帰してない件
奇妙に再帰したテンプレートパターンって名前知らないの?再帰してるんだよ
660 :
デフォルトの名無しさん :2010/11/03(水) 21:24:57
釣れたぞw
再帰的定義っていうのなら、昔ながらの struct node { int value; struct node *next; }; だって再帰的定義だろう nextがポインタでなければ、勿論コンパイルはできない 同じように、↓はコンパイルできないよ template <typename T> class Base { T value; }; class Derived: public Base<Derived> { };
要は、前方宣言された型をテンプレートの引数にしているだけ。 クラス定義自体が前方宣言の代わりになるから前方宣言を省略できるってだけのこと。
コンピュータのスピーカーから変な異音がするんだけど、
どのプロセスが鳴らしているのかわからなくて困っています。
http://oshiete.goo.ne.jp/qa/4371984.html 異音がしている時にミュートにすれば音が途切れるので
スピーカーから鳴っていることは間違いないです。
解決の目途もたたないので、自分でプログラムを書いて
音を出しているプロセスを突きとめようと思ったんだけれど、
そんなことを可能にするAPIってありますか?
WindowsVista以降ならアプリごとにボリュームを制御できる
>>661 つまり
>>651 の内部で
template <typename T> class Base {
T *value;
};
としていれば無問題ということだな。
>>665 うん
不完全型として前方参照してるので
不完全型でできることはしてもだいじょうぶ
667 :
デフォルトの名無しさん :2010/11/04(木) 09:00:14
定期あげ
::PostQuitMessage((DWORD)"定期上げ");
そは危険
unstd.hがないから糞
unstd.hがないから糞なら全部糞だな
standard unko library
673 :
デフォルトの名無しさん :2010/11/04(木) 16:29:59
あっても糞 なくても糞 それがunstd.hとCopyRect
もう許してやれよ
int rctcpy(struct _rect_t *_Dst, const struct _rect_t *_Src) { return (int) CopyRect((LPRECT)_Dst, (CONST RECT*)_Src); }
>>675 ぎゃー!プログラムが知らぬ間に毒されていく…
WTLって綺麗にオブジェクト指向されてますか?
>>677 オブジェクト指向というか、あれはもはやテンプレート指向だな。
あれでアプリを作ると、どんどんヘッダファイルが肥大化して、cpp側で書く事がなくなる。
それからどこまで実装されててどこから手で書くべきなのか、毎回ソースコードを調べて回るな。
>>678 ありがとうございます。そうなんですか、、、
APIが絡むクラス設計ってなかなか難しいんですよねえ
ファイルとして存在してるDLLをAPIで普通にロードする形じゃなくて たとえばDLLを暗号化したバイナリファイルをメモリ上で復号し できあがったメモリブロックをDLLのようにロードすることって出来ますか? 一回tmpなDLLファイルを出力してAPIでロードしなおさないと無理でしょうか
>>680 その辺は各種スクリプト言語がzipにまとめられたバイナリを仮想ファイルシステムとして
動くようにする、というテーマでよく語られる話題だよ。
とりあえずTclあたりで調べてみるといいんじゃないかな。仮コードは去年見たときあったんで。
自力でやれば出来るでしょ。 君が出来るかどうかは知らないけど...
683 :
デフォルトの名無しさん :2010/11/04(木) 23:00:15
ピャピャピャー
23時17分をお知らせします。
685 :
デフォルトの名無しさん :2010/11/04(木) 23:28:36
激しく同意
あちこちのスレで自演してるコイツはなんなの?
↑なんだこいつw
ネタをネタと(ry
(ryを使ってごまかすのは、はっきりとものを言うのが怖いから。
アフィリエイト収入で生活しているネオニート
>>678 あんまり話題にならないが、あれこそpimplを使うべきケースの一つだと思う。
Implクラスの定義をcppに書けるからヘッダは肥大化しないで済む。
やっぱピンプルって読むよね
ピンポゥ
実際にはカタカナでは表記できない発音であることをお忘れなく。
>>677 テンプレートライブラリ系とオブジェクト指向は、今やほとんど正反対を向いているよ。
697 :
696 :2010/11/05(金) 11:46:15
亀レスだったな・・・すまん
>>696 x 今や
o 最初から
x ほとんど
o 全く
>>698 「全く〜ない」が正式な用法
だからその置き換えは正しくない
日本語勉強してこいよ屑
ウィンドウズのアプリを作成しています。 win32apiでコマンド_プロンプト画面を表示せずにコマンドプロンプトのコマンドを実行することは可能でしょうか system関数を実行したところ、画面が表示されました。
CREATE_NO_WINDOW
>>701 ShellExecuteでできなかったっけ?
ちょっと確認できないけど
CreateProcessは?
STARTUPINFO.wShowWindow=SW_HIDE;でCreateProcess()
APIと言えば巨大な構造体
>> 702,703,704,705 ありがとうございます。CreateProcess で実装しました。
>>706 これ本当にスタックに置いていいんだろうか? と悩むレベルのサイズなんだよな。
scoped_ptr とか unique_ptr がない頃は迷わずスタックに配置していたのに、
ヒープに配置するのに便利な道具が出てきてかえって迷うようになった。
悩むレベルって、どのくらいからでかいと感じてるんだ?
普通にローカル変数で wchar_t buffer[MAX_PATH]; とかやってるしなあ。
MAX_PATHは高々1Kだろ。1Mになると躊躇する。
サイズなんて気にしたこともなかった そんなに取らないだろ
関数ネスト深いから1関数4個ほどMAX_PATHワイドとったらオーバーフローした 文字列もヒープ使わざるを得なくなった
くだらない質問けどヒープだろうがスタックでも32000文字分とらなくて良いの?
>>711 VC++のデフォルトのスタックサイズが1Mなのに躊躇すんのかよwww
スピードが要求されない場所なら文字列バッファに std::vector なんてよくやるけど。 C++0x では std::basic_string のバッファも連続性が保証されるようになったので 堂々と文字列バッファとして C の関数に渡せますね。 今までだって、わざわざ不連続バッファを使うような実装があったとは思えないけど……
>>713 260 * 2 * 4 で2KBぐらいだがどんだけネストしてんの
Windows APIの構造体の中でサイズが一番大きい奴って何?
>>718 不連続バッファだった場合、std::string::c_str()はどうなるの?普通に使える?
>>721 仮に不連続バッファを使う実装なら、c_str() が呼ばれたらいちいち size() + 1 のバッファを
確保して文字列をコピーしなければならない。
そんな無駄な実装をしているライブラリはないでしょうね、という話。
>>718 > バッファとして C の関数に
えー、これ大丈夫?
#include <iostream>
#include <string>
#include <cstring>
using namespace std;
int main(int argc, char *argv[])
{
string s1 = "initilal value", s2 = s1;
cout << "s1=\"" << s1 << "\", s2=\"" << s2 << "\"" << endl;
strcpy((char *)s1.c_str(), "overwrite");
cout << "s1=\"" << s1 << "\", s2=\"" << s2 << "\"" << endl;
return 0;
}
配列をバッファに使うより無駄なコピーが生じない分効率的かもな。 #include <string> #include <Windows.h> #include <ShlObj.h> int main() { std::wstring path; path.resize(MAX_PATH); ::SHGetFolderPathW( nullptr, CSIDL_DESKTOP, nullptr, SHGFP_TYPE_CURRENT, &path[0]); }
>strcpy((char *)s1.c_str(), "overwrite"); これはひどい。
const_cast は勘弁してくれ。
コンパイルエラーが出たら意味を考えず、キャストを駆使してエラーメッセージを取り除く。 ダメPGの典型だな。
とあるゲームの解析をしてたら CloseHandle((HANDLE)ThreadRoutine); というコードがあってふいたことがある
マニアックな笑いだね モテない側の人間だな
とりあえず汗拭けよwww
>>729 アホな俺には冗談抜きでわからんからkwsk
キャストがダメって事?
だからプログラマの人って太ってるんだね
あれか関数のアドレスをハンドルにキャストしてるのか?
マってデブとガリガリとどっちが多いんだろ
>>729 この類のバグってApplication Verifierで検出可能だった気がするが
俺はムキムキだけど… ただでさえ体に悪いデスクワークで その中でも生活リズムがおかしくなるマやってて自主的な運動もしないなんて信じられん
エコノミークラス症候群とかマジで怖いよね。
来てるな〜っと思う時なんて多々あるしw
>>729 はハンドルじゃなくてスレッドで実行する関数のポインタを指定してるって話かな?
俺は地元のクラブでレスリングやってる。周りはほとんど子供なんだけど。
そういう無駄な自己アピールが気持ち悪い
741 :
デフォルトの名無しさん :2010/11/06(土) 18:16:29
定期あげ
スポーツなんて非論理的なことをわざわざ時間を割いてやるのは耐えられない その間何も考えられなくていらいらするw
そこでAPIの出番ですよ
>>742 スポーツの何がどう非論理的なのかわからんが、おまえは清朝の役人か。
西洋人がスポーツしているのを見て、そんなことは使用人にやらせろとあざ笑ったそうな。
どうせデスマで早死にするんだから健康に気を使っても無駄 自己中心的に時間を使う暇があるんなら会社に貢献する努力をしろ
考え事しながらジョギングしてたら電柱にぶつかったり溝にはまったりするのはよくあること ときどき車にもぶつかる
一箇所にとどまるより外でたほうが脳に刺激はいるから 発想力も集中力も高まるんよ もちろん体力も付くからハードワークにもへこたれずに仕事できる 企業はむしろ率先して1日30分のスポーツタイムを義務化したほうが特だよ
CreateWindow()で作成したボタン内で、アイコンとテキストを共存させる事は出来ないのでしょうか。
ご想像にお任せします
WinAPIのみでMDIきぼん
>>726 「バッファとして C の関数に」ってそういう事じゃないの?
>>753 string::c_str()は内部ポインタを返してるだけなので、ここにデータを書き込んじゃいけない。
常識のレベル。
ロッテ優勝
>>752 MDIはナンセンスとかMSいってなかったっけ?
MDIでウェブブラウザ
Visual Studio...
なんでわざわざconstが付いてると思っているのか
Requires: The program shall not alter any of the values stored in the character array. をあえて無視しようっていうなら止めはしない
c_str() c_str c_ c
763 :
デフォルトの名無しさん :2010/11/07(日) 00:35:53
さげ
コマンドプロンプトを作るにはどうしたらいいの
文字列を取得する 入ってきた文字列をsystem()に投げる 終了
766 :
デフォルトの名無しさん :2010/11/07(日) 03:39:32
釣れたw
↑話を理解してない馬鹿
どうかは知らないが、気持ちは悪い 取得関数はメンバーにじかに触れないようにするためのものなのだから バッファとして使うなんてどうかしている 入力はSet系の関数を使うか、入力が必要ないように作るべき
文字列バッファとして渡す=__out_ecountな引数に渡す つう事じゃねぇの?
( ^p^)
最近の機械翻訳はすごいんだな
必要に応じてstringの内部バッファをchar*として「読み取りたい」奴と
バッファ=書き込み先という認識が先行して
>>724 >>754 >>769 みたいな話を始める奴もいる
演算子オーバーライドか、キャスト演算定義すればいいだけだろうに 連続性とか何の関係があるんだろう
>必要に応じてstringの内部バッファをchar*として「読み取りたい」 そういう用途の為にずっと昔からc_strがある訳だが、一体何を言ってるんだ?
>>777 まぁそう煽るな。誰かが「ない」なんて言ったか?
そんなこと君も僕も知ってることだろう。
俺は「なぜstrcpyの第一引数にc_str()を渡すなんて話がでてくるのか」って思っただけだ。
要するに
>>718 は str.c_str() と書ける箇所をわざわざ &str[0] などと書こうとしていて
C++0x でそれが堂々と出来るようになって悦んでるのか?
c_strを適切に使いたい奴と何故かc_strが返すバッファに書き込みたい奴ってことか 後者に関しては「バッファ」を勘違いしてる一人がいるだけのようだが…
>>778 読み専だったらずっと前からc_strで出来る
↓
718の「C++0xでは堂々とバッファとして渡せる」発言
↓
以前からできることを今更言う筈がない&内部バッファの連続・不連続に拘っている
↓
バッファ=書き込み先という認識
は自然な流れだと思うが?
>>780 上手く説明できないからそれでいいよ。俺が間違ってた。君が正しいよ。
>>718 はc_str()を知らなかっただけ
に一票
784 :
782 :2010/11/07(日) 05:48:18
785 :
デフォルトの名無しさん :2010/11/07(日) 05:49:57
いいからAPI出せや
そもそもstr.c_str()を&str[0]と書きたいというのが理解できない IOCCCにエントリーするようなコードでも書いてるのか?
というか、もともとは速度面の話(
>>718 )だったんだよな?
いつの間にか(多分キャストの流れと
>>767 )内部に書き込む話が出てきたけど、これはもう別の話題じゃないか
string使って構造を抽象化してるのに内部データを直接いじるとかちょっと理解できない
連続性が保証されたからってどうかなんの?
そもそもMAX_PATH程度でオーバーフローというのがよく分からない 何となくBuffer overrun detectedのエラーメッセージをオーバーフローと読み違えてる気がする
え、何、そこまで話戻るの
無能ほど見栄を張ってstd::basic_stringとか平気で書いちゃうんだもんな〜
今来ましたがstrcpy((char *)s.c_str(), buf)はひどいコードですね!
今来ましたとか嘘つかなくていいから。
> strcpy((char *)s.c_str(), buf) こんなのどこにも無いし・・・ コピペしてないコード書き込んで「今来ました」はさすがに無いよw
なるほど C++0xでは&s[0]=s.c_str()が保証されたのでこういうコードがおkってことか strcpy(&s[0], s.c_str());
>>795 ↑こんないかにも低能な釣りに引っ掛かる奴が二人もいるとはな
807 :
デフォルトの名無しさん :2010/11/07(日) 06:42:00
定期あげ
>>718 はスピードが要求されないなら.NETで書いとけば?
こういう無能はC++を使わなくていいよ。
まぁ無能がC++で書いたコードより有能がC#で書いたコードの方が高速だが
いやいや、この文脈だと無能がC#で書くんだろ?w
無能がC#で書いたコードでも、余程の有能がC++で書かない限りは速度的にはほぼ同じでしょ。
等号で繋げるって楽な仕事だよね。
正直.netって時点で
std::stringとか使っちゃうぐらいならもう.netでいいよ vista以降は標準で入ってるし C++&Win32APIのメリットはCRTをいっさい使わない極小アプリを作れる事だけだと思ってる
OSやSDKがβ版の頃にいち早く最新機能を堪能したプログラムが作れるってメリットもある
なあ 実際問題、速度が重要じゃないのに態々C++やAPIで作る理由ってあるか? 骨折り損だろ
strcpy((char *)s1.c_str(), "overwrite");
strcpy((char *)s1.c_str(), "overlight");
C++の便利なところ知らないだけじゃないの?
しょうがないよ。 クリーンインスコ直後のXPで動かないアプリは糞っていう風潮がまだまだ無くならないから。
strcpy((char *)s1.c_str(), "superlight");
そんなにC++が好きならC++/CLIでいいでしょ
どんどんWin32APIから離れていくな
ここはC++入門スレです。 今は.NET信者のスレになろうとしているところです。
マジレスすると.NETを習得するのが面倒だからAPIで開発してるだけ
.NET移行を焦る必要はない 黙っててもOSの移行にしたがっていくだろうし 習得して損はしないだろうけど
たぶん次のバージョンぐらいから.NET以外は締め出されるよ WindowsPhone7みたいに
Windows8で.NET以外締め出し→「XPでいいや」「もうWindowsイラネ」→ユーザーのMS離れ→Apple・Googleが儲かる→MS倒産
ないない。C++前提のAPIをどんどん新設してるんだから。
病的なくらい互換性に気を使うのがMSという会社だからな
やつらはまだWinFXを諦めちゃいない
そういえば、技術トレンド的には今後Direct2Dが主流になるはずなのに、 実際にはそんな話を全然聞かないな。 なんでだろ。
MSは没になった技術も何らかの形で転用するのが得意。 Windows2.x-3.xで使われていたlink4はMSDOS 4のために作られたリンカーだ。 他にもいろいろあったけど忘れた。
XP厨だらけだから
737 名前:デフォルトの名無しさん[] 投稿日:2010/11/06(土) 19:02:56 まだCとかC++使ってる奴が居たのか 単に新しい環境買う金がねーだけだろ ぶはは。
Direct2D良いけどXPが死んでくれないと本格的に使えないからなぁ・・・
未だに2/3がXPとかいう話だからむりむり
最近になって漸く50%台になったんだっけ?<XP ま、XPだって発売1周年の2002年頃にはWin9xのシェアが確か6〜7割ぐらいあったがw
>>836 COM とか
OLE とか
OS/2 とか
>>848 世界規模ではそうだろうが、超先進国日本ではXPのシェア50%割ったらしい
↓予言は当たるのか!?↓
んじゃ予言してやるよ 2014年を境にWindowsのシェアがガタ落ちする
家庭ではiOS&Androidが優勢 企業では依然としてWindowsを採用するも減少傾向 まあこんな所じゃね 7はまあまあ売れてるらしいがトータルでXPを超える売上を誇るWindowsなんて今後絶対ありえない
教えてください。 CreateWindowで算出される任意座標位置(CW_USEWINDOW)を取得したいです。 現在CreateDialog()でツールを作成していますが、 起動位置がリソース設定通りなので、変更したいと思ってます。
WM_INITDIALOGでMoveWindowすればいいじゃない
852 :
850 :2010/11/07(日) 17:04:57
説明不足ですいません。起動時の位置をランダム(?)にしたいです。 オーバーラップウィンドウだと、起動時に右下にズレますが、 あれを実現したいです。
MoveWindow(hWnd, 30, 30, 300, 300, FALSE); でおk
854 :
デフォルトの名無しさん :2010/11/07(日) 18:13:37
定期あげ
855 :
850 :2010/11/07(日) 18:17:27
結局、根っこでCreateWindowExを使うから無理みたいですね。どうも。
>>792 std::basic_string<TCHAR>
遅レスでも全力で釣られます
CStringイイ stringイラネ
CStringだけ引っこ抜いて使えばいいってのかい
いまだに文字配列でプログラミングしているオレカコイイ …氏にそうだorz 互換性考えたら特定のライブラリに依存できないんだよう
string等の標準ライブラリはISO規格だぞ
ウィンドウハンドルからそのウィンドウがDirectXを使って描画しているかどうかを判断するにはどうすればいいでしょうか
stringとかCStringとか使うとバイナリがデカくなるから嫌だ
char配列だけでいい。char配列onlyに企画を世界統一してほしい。
そういう奴にかぎってCRTを静的リンクしてる
WDKのmsvcrt.libを使ってますが何か?
WDKのmsvcrt.libを使うとVista/7専用アプリにしないとあまり小さくならない
ブロードバンド全盛どころかその言葉すら流行らなくなってるご時世なのに、 なにをロートルなことを言ってるんだ。
バイナリが大きくてもいいなら最初から.NETで作っちゃうしー
つうかCRT/MFCの静的リンクライブラリなんて使ったことねぇしインスコすらしてねぇや 新規作成したプロジェクトをそのままビルドすると必ずリンクエラー出るけど
VC++使ってないのがバレバレですよ
stringは使えよ馬鹿 何のためのC++だ雑魚
デストラクタで自動的にリソースを開放する目的「だけ」が目当てでCではなくC++を使ってる。
CoInitializeとCoUninitializeって同じスレッドで何回も呼び出しても大丈夫なの? とあるComをクラスでラップしたいんだ。
でも配列は速いよ .Netで10行ほどの処理がC++(C)で100行くらいになったが、 代わりに速さが10倍くらいになった 5秒待たされた結果がボタン押したらすぐ出るのは無視できないレベルだ
初心者かよ 境界チェックしないから速いだけだろ
それ、まともな奴が.netで書いたら5秒もかからない気がする
なぜチェックしていないと言えるんだ かなり保守的に書いて100行だ文句あっか
>>875 CoInitialize/CoInitializeExが成功した回数とCoUninitializeを呼ぶ回数は合わせろと書いてあるぐらいだし、参照カウントで管理されてるから好きなだけ呼べ
.NET自体がアクセス毎に境界チェックしているが C++にそんな機構は無いという意味だろ馬鹿
>>881 それは全部必要なのか
ほんとうにそう思うのか
そりゃ確実に不要と判断されれば最適化で削除されるだろうよ
鉄板貼り付けて保守って言ってるような気がするな
たぶんLINQでキャッシュせずに書いてるとかそういう落ちじゃないの
C/C++使いの無能共はいまだに未初期化変数にアクセスとかバッファの境界越えてアクセスとか アホなコードを書いてしまうものよ
このスレは無能の集まりだからなw
CとC++を一緒くたにするとリーナスが怒る
C++とC#を一緒くたにするとボーナスが減る
一番多そうなのは整数オーバーフローかなあ 普段からこういう風に書く人ってどれぐらい居るんだろ if(width==0 || height==0 || (SIZET_MAX/sizeof(DWORD)/width) < height) { return NULL; } else { return new (std::nothrow) DWORD[width*height]; }
if(width>1024 || height>768) { return NULL; } else { return new (std::nothrow) DWORD[width*height]; }
FullHD
>>862 ウィンドウハンドルからプロセスを引き当てて、
そのプロセスがd3d.dllとかをロードしてるかどうかで判断可能かもしれないけど、
使ってない可能性もあるだろうし…
具体的に何がしたいかによってはいい答え貰えるかもよ。
それからVistaからはGUIはDirect3Dで描画されてるのでどうなるのか判らんw
> VistaからはGUIはDirect3Dで描画 ばーか
7からはGUIはDirect3Dで描画されてるだった。すまん。
>>894 あなたにとってDirectXはDirect3Dだけですか?
はい。
では馬鹿確定です
900 :
デフォルトの名無しさん :2010/11/07(日) 21:40:31
そうでしゅか
馬鹿とは何ですか。馬鹿なのでわかりません。教えてください。
馬鹿とはAPIとC++で開発する人々の総称です。
それは天才と言えるのではないですか。
天才と馬鹿は紙一重なのでつまり誤差として無視できます
.NETがあるのにAPIで開発するのは馬鹿です。
>>894 まじれすすると、Aeroの描画を担当してるのはDesktopWindowManagerであって
ユーザーアプリが直接DirectXをたたいてるわけではない
DirectX=Direct3Dという思考停止馬鹿は来なくていいよ
スクリーンショットを撮るアプリケーションを作りたいのですが、GetDCを使った場合、DirectXで描画しているアプリケーションからは取得できないので、描画方法によって取得方法を変える、といったアプローチをとりたいのですが、どうすればいいでしょうか
>>906 てことは普通に書けばどれも間接的にDirectX使ってるということか
使わないように指定する必要があるなら、使っていないものの方が探しやすいのかもしれない
DirectXのDrawPrimitiveとGDIのBitBltとかって同時に使えないんだっけ?
>>910 使えるけど、書く先が違う。
片やフレームバッファ。片やデバイスコンテキスト。
ということは描画方法が混在するアプリケーションの場合は判別できない気がする レジストリでDirectXサーフェスをキャプチャできる方法もあった気がするが
>>909 アプリが間接的にDirectX使ってるわけではない
どっちだよw
アプリが描いたクライアント領域のビットマップをdwm.exeが回収して 合成する時にDirect3Dを使用
スクショ撮れない時って真っ暗になった気がする GDIとDirectXの両方からとってきてORで合成とかムリかな
BDなんかの著作権保護されたコンテンツも真っ黒になるんじゃなかった?
プリントスクリーンではどれもとれるぜ XPだけど
無能ばっか DWMのAPIをフックすれば簡単にスクショ撮れるだろ 方法はぐぐれ
どこが簡単だよ、めんどくせえじゃねえか 自分でやったことがない奴の典型だなw
そもそもAPIのフックなど使わなくても、Aero上でもGetDCで取得したDCでキャプチャ可能。 ググれとか言っている奴はどれだけ馬鹿なんだよ。
根本的にDirect3Dがキャプチャできないという前提自体がアホ。 オーバーレイとでも混同しているのか? かなり頭の悪い奴が混ざってるな。
Win32APIのスレとはいえ、Direct3Dに有りもしない幻想を見ている人間は何なんだろう? 畑違いで知らないのならレスをしなければいいのに。
そもそもGetScreenCapture()という関数があれば何も問題はなかったんだ
流石は隔離スレ
コロコロ変わるDirect3Dのアーキテクチャを熟知した人間がこんなスレに居るはず無いでしょうがw
>>907 は何が言いたいんだ?
DirectSoundとかいいたいのか?w
DirectDrawかもしれない
Inputの俺を忘れてもらっては困るな
DirectDraw DirectShow Direct2D DirectWrite
>>921 GetDCなんか使うとAeroのグラス部分がちゃんと撮れない。
ここに書いてる連中の九割くらいXP厨じゃねーだろうな
>>932 きちんと合成後の状態がとれるよ。
それともレイヤードウインドウ等を含めて、ブレンド前の状態を完全保存しろと言うことなのか?
後出しで誰も要望していない無意味な話を追加していく奴っていったい何なんだろう?
>>934 Aeroのグラス部分が透けないって事だろ。
そもそもアプリケーション側でDirectXを使おうとするとAeroがOFFになるだろ
無知なXP厨ばっか もうすぐ2011年でちゅよ〜
正直ここまで酷いとは思わなかった。
Win7で適当に作ったDirect2Dアプリを色々な方法でキャプチャしてみた 結果は ○ GetDC(GetDesktopWindow())+BitBlt × GetDC(対象ウィンドウ)+BitBlt × PrintWindow
940 :
デフォルトの名無しさん :2010/11/07(日) 23:36:07
定期あげ
フリップ3Dに使ってるAPIが分かれば出来そうだが全然公表されてないし、MSの閉鎖主義には困ったものだ また司法省に叩かれればいいのにw
↑中国人発見
そんなの解析すればすぐ分かるじゃん
>>891 の
if(width==0 || height==0 || (SIZET_MAX/sizeof(DWORD)/width) < height) {
で、sizeof(DWORD)で割ってる意味が分からんのだが
オーバーレイどころかDirect3DだってGetDC(hWnd)ではとれない
>>945 new T[N]はsizeof(T)*Nバイト要求されるって分かってるか
馬鹿は黙ってろ
SIZE_T_MAX は size_t 型のとりうる最大値な これを欲しい要素(この場合DWORD)のサイズで割ると、オーバーフローせずに確保できる最大サイズがわかる この場合 width * height <= SIZE_T_MAX / sizeof(DWORD) が成立すればオーバーフローせずに確保できる だからこういう式になる わかってると思うけど一応。
VC++2005以降のnew T[x]はsizeof(T) * xのオーバーフローをチェックするので いちいちsizeof(DWORD)で割らなくて宜しい と言いたいのでは?
わざわざエラーリスク背負わなくても
>>892 で十分
エラーリスク(笑)
ここの住人は簡単な話題には積極的に突っ込みますよ
>>955 はあ?
if(width==0 || height==0 || (SIZET_MAX/width) < height) {
こう書いたらwidth*heightはオーバーフローしないよ?
(割と最近登場した)intsafe.hも使おうよ。
960 :
945 :2010/11/08(月) 00:42:04
>>951 何に対してのオーバーフロー対策?
width、height?
俺も
>>957 でいいんでね?と思ってるから、sizeof(DWORD)で
割る理由が分からないのだが。。。
962 :
945 :2010/11/08(月) 00:43:44
×:width、height? ○:width*height? 訂正
おいお前らAPIの話をしろ
widthやらの数値型の範囲に収まればいいんだからDWORDのサイズは関係ないよね
あとはきれいにnewが失敗してくれる
文字を使った不等式は中学校の範囲か
とりあえず
>>945 がリア小じゃなかったら日本の未来は終わりだ
size=width*heightとしてsizeof(DWORD)*sizeがオーバーフローする事は分からんのか?
968 :
945 :2010/11/08(月) 00:52:55
>>967 つまり、newで確保したメモリサイズの保持内部変数がオーバーフローするって事でおk?
こいつ真性の馬鹿か? width=height=40000でも代入して計算してみろよ
まあいろんな前提もかかずにあの式だけじゃあ憶測も飛ぶわな
そもそもwidthはintなのかint64なのかで話が違っても来る
こんな未定義状態で議論するもんじゃないよ
しかも
>>891 は悪い例で出てるんだ。解釈できたところで威張っても仕方なかろう
971 :
945 :2010/11/08(月) 01:05:44
ん? 40000*40000=1600000000=5F5E1000 < SIZET_MAX(FFFFFFFF) で、この時点でオーバーフローはしてないよな。 で、なんで SIZET_MAX/sizeof(DWORD) = 3FFFFFFF と比較してるんだ?と質問してるのだが。
>>970 はぁ?
>>891 は良い例だろ
>そもそもwidthはintなのかint64なのか
SIZET_MAXを割ってるんだからsize_tと等価かそれより小さい符号無し整数型なのは読み取れるだろ
無能が多すぎるぜ…
あ
>>971 width=height=0x9C40
width*height=0x5F5E1000
width*height*sizeof(DWORD)=0x17D784000 ←SIZET_MAX=0xFFFFFFFFだとオーバーフロー
もう来るなぼけ
>>972 悪い例だよ
こんなのを書いてたら君、落第するよ
977 :
945 :2010/11/08(月) 01:19:58
>>974 >width*height*sizeof(DWORD)=0x17D784000 ←SIZET_MAX=0xFFFFFFFFだとオーバーフロー
だから、「何が」オーバーフローするのか書けよ。
画像のサイズを扱ってるならそれぞれ10000超えたら怪しいし、 width*heightが1000万超えたあたりからちょっと怪しいとか、 そういう判断は付くだろ。 オーバーフローとかそんなこと言ってる以前の問題だ。 常識で考えろ。
981 :
デフォルトの名無しさん :2010/11/08(月) 01:25:44
オーバーフローあげ
SIZET_MAX = 0xFFFFFFFF sizeof(DWORD) = 4 width = 0x3FFFFFFF height = 0x2 こうした場合の動作は正しいのか
まだ分かってないやつがいるw
984 :
945 :2010/11/08(月) 01:34:02
>>978 間違えた。
sizeof(DWORD) をかける必要は何?
最初からこれの意味が分からないのだ。
そろそろ 次スレ たてたほうがいいとおもう
イラネ
989 :
945 :2010/11/08(月) 01:44:53
>>985 で、要求したら何がオーバーフローするの?
width*height > SIZET_MAX/sizeof(DWORD)
の場合、
new (std::nothrow) DWORD[width*height];
が単にメモリ確保に失敗するだけ?
new x[y] はコンパイラが operator new[](sizeof(x)*y) に展開しているのを知らないのか。
>>989 アセンブリリスティングとか見たことないの?
そんなレヴェルでC++を使ってるなんて信じられない
993 :
945 :2010/11/08(月) 01:57:35
抽出結果: >アセンブリリスティング >レヴェル
ちょっとトイレ
とりあえず 945 は今すぐ C++ から卒業しなさい。
以上、チンパンジー並みの脳味噌を持つ
>>945 とそれに群がる乞食のショーをお送りしました。
では、次スレでお会いしましょう。
999 :
945 :2010/11/08(月) 02:05:22
釣れた釣れたw
お
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。