1 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 23:00:35 ] プログラミング言語 D (D Programming Language) について語るスレッドです。 過去スレは >>2 ■本家 ttp://www.digitalmars.com/d/ ttp://www.kmonos.net/alang/d/ (和訳) ■コンパイラ ttp://www.digitalmars.com/d/dcompiler.html (DMD, 本家) ttp://dgcc.sourceforge.net/ (GDC, gccフロントエンド) ttp://gdcmac.sourceforge.net/ (GDCのmac用バイナリ) ■参考URL ttp://f17.aaa.livedoor.jp/~labamba/ (D言語研究) ttp://dsource.org/ (dsource) ttp://tinyurl.com/3da5oa (C/C++に疲れた人のD言語) ttp://www.kmonos.net/alang/wnd/ (わかったつもりになるD言語) ttp://shinh.skr.jp/d/ (SDL, SDL_*, OpenGL, GLU, glutのポーティングとか) ttp://shoo.s20.xrea.com/shoo/programing (D言語とTangoの入門講座)
809 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 18:50:21 ] Descentつかってる方におききしたいんですが、 デバッグ機能としてのbreak-pointや、watchもばっちりなんですか?
810 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 18:51:32 ] >>808 今のところこの二つしかない ttp://shoo.s20.xrea.com/shoo/programing/ ttp://f17.aaa.livedoor.jp/~labamba/?tango
811 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 20:51:11 ] MSにパクられた ttp://namidame.2ch.net/test/read.cgi/news/1202382434/
812 名前:808 mailto:sage [2008/02/07(木) 20:52:35 ] >>810 ありがとうございます。 見て来ましたが、ぜんぜん日本語化進んでないって事ですねw 英語ダメダメだから、安物の翻訳ソフトでも買おうかな。
813 名前:デフォルトの名無しさん [2008/02/07(木) 21:15:01 ] 今Dでキーボードフック(グローバル)を書いてみてるんだけど、なぜか上手くいかない。 ちゃんとDLLからSetWindowsHookEx呼んでるし、SetWindowsHookExは成功してるみたいないんだけどな。 Dだとグローバルフックが出来ない理由ってある?(ローカルは出来た) もうちょっとコード見直してきます。
814 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 21:44:24 ] そーいやD言語でググってたらSunにもD言語があるのを見つけたっけなぁ。 ウォルタンはSunからは何も言われなかったんだろうけど。 Firebirdほど大きな問題にはならない気がするけど、 やっぱややこしいから変えてほしいところだ。
815 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 21:48:46 ] Sunのほうが5,6年後でしょ。
816 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 21:55:14 ] >>813 グローバルフックなら共有データセグメントとかメモリマップトファイルとか使って、 フックハンドルをプロセス間で共有できるようにしないといけないよ。 ローレベルフックを使うのも一つの手。
817 名前:813 [2008/02/07(木) 22:02:14 ] >>816 今までずっとそう思ってたんですが、WindowsXP/2000ではCallNextHookExの第一引数はNULLでいいらしいです。 第一引数に何か渡しても無視されるそうな。
818 名前:813 [2008/02/07(木) 22:04:11 ] msdn2.microsoft.com/en-us/library/ms644974.aspx
819 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 22:06:51 ] D言語でもお麻衣さんの問題はAPIスレで面倒みてもらったほうがよろしかろ
820 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 22:11:22 ] MSがD言語作るらしいぞ headlines.yahoo.co.jp/hl?a=20080206-00000007-cnet-sci
821 名前:819 [2008/02/07(木) 22:12:07 ] 実はVC++2008で書いたコードでは上手くいっているのでAPIというよりDLLの問題かなと。 そのVCで作ったDLLをDのmainから呼び出した場合上手くいきました。
822 名前:813 [2008/02/07(木) 22:13:18 ] 失礼。↑は813です。
823 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 22:14:45 ] >>820 何回同じ話題振ったら気がすむんだよww 同じスレぐらい検索しろ
824 名前:デフォルトの名無しさん [2008/02/07(木) 22:32:00 ] >>820 別物なんだよ。
825 名前:デフォルトの名無しさん [2008/02/07(木) 22:36:19 ] ネームぱくられました
826 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 22:44:43 ] たぶん、D言語では商標とれないよね。
827 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 23:06:27 ] >>813 ソースコード見てみたーい
828 名前:813 [2008/02/07(木) 23:19:49 ] いろいろしてみたけど結局分からないorz >>827 というわけで載せるためにソース整形してきます。
829 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 23:30:07 ] >>815 あ、ほんとだ。 向こうのnewsでも「"D"も有名になったもんだ =P」なんて皮肉られてる……のかな? 英語ヨクワカラナーイ。
830 名前:813 [2008/02/07(木) 23:50:35 ] ↓DLLのソース // test_hook.d module test_hook; import win32.winbase; import win32.windows; static import tango.stdc.stdio; import tango.stdc.stringz; import tango.io.Stdout; pragma( lib, "tango-user-dmd.lib" ); HANDLE g_hModule = cast(HANDLE) null; // DLLのモジュールハンドル HHOOK g_hHook = cast(HHOOK) null; extern (C){ void gc_init(); // GC初期化 void gc_term(); // GC終了 void _minit(); // モジュールリスト初期化 void _moduleCtor(); // モジュールコントラクタ実行 void runModuleUnitTests(); // 単体テスト実行 }
831 名前:813 [2008/02/07(木) 23:51:14 ] extern(Windows) BOOL DllMain( HANDLE hModule, ULONG ulReason, LPVOID pvReserved ){ switch(ulReason){ case DLL_PROCESS_ATTACH: gc_init(); // GC初期化 _minit(); // モジュールリスト初期化 _moduleCtor(); // モジュールコンストラクタ実行 runModuleUnitTests(); // 単体テスト実行 g_hModule = hModule; break; case DLL_PROCESS_DETACH: gc_term(); // GC終了 tango.stdc.stdio._fcloseallp = null; // DLLが終了しても標準入出力を閉じないようにする。 break; case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: return false; } return true; } export extern(Windows) void HookStart(){ g_hHook = SetWindowsHookEx( WH_KEYBOARD, cast(HOOKPROC)&KeyboadProc, g_hModule, 0 ); }
832 名前:813 [2008/02/07(木) 23:51:53 ] export extern(Windows) void HookStop(){ UnhookWindowsHookEx( g_hHook ); } extern(Windows) LRESULT KeyboadProc( int code, WPARAM wParam, LPARAM lParam ){ if( code != HC_NOREMOVE && code >= 0 ){ MessageBox( cast(HWND)null, toString16z( "Key pushed" ), toString16z( "test_hook" ), cast(UINT)0 ); return 0; //処理をした。 } return CallNextHookEx( cast(HHOOK)0, code, wParam, lParam ); }
833 名前:813 [2008/02/07(木) 23:53:57 ] ----------- ↓main.exeのソース // main.d module main; import win32.winbase; import win32.windows; import tango.stdc.stringz; pragma( lib, "tango-user-dmd.lib" ); const wchar[] HOOKDLLNAME = "test_hook.dll"; alias extern(Windows)void function() FUNC; FUNC HookStart, HookStop; void main(){ auto hMod = LoadLibraryW( toString16z( HOOKDLLNAME ) ); HookStart = cast(FUNC) GetProcAddress( hMod, "HookStart" ); HookStop = cast(FUNC) GetProcAddress( hMod, "HookStop" ); HookStart(); MessageBox( cast(HWND)0, toString16z("フックしています。"), toString16z("main"), cast(UINT)0 ); HookStop(); FreeLibrary( hMod ); }
834 名前:813 [2008/02/07(木) 23:58:15 ] ----- // test_hook.def LIBRARY 'TEST_HOOKDLL' EXETYPE NT CODE PRELOAD DISCARDABLE DATA PRELOAD SINGLE EXPORTS HookStart @1 HookStop @2 -------- 以上です。 環境はtango 0.99.4 ( dmd 1.024 ), Binding Win32API -Unicodeでコンパイル。
835 名前:813 [2008/02/08(金) 00:03:33 ] あ、-version=Unicodeのことです; フック中に他のアプリでキーを押すとMessageBoxを出します。 が、実際は反応してくれません。メモ帳起動->main.exe->メモ帳でキーボードを押す、として反応しませんでした。 さっき気づいたのですが、なぜかほかのコマンドプロンプト上のキーボード操作には反応するみたいです。
836 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 00:50:18 ] Dがなんか特殊なことやってんのかもね。 俺もグローバルフックプロシージャ内で try/catch() 文書いたら全プロセスがこけた。 SEHフレームの構築で何かやらかしてんじゃないかと予想してるが。
837 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:00:42 ] 2chにソースはるなボケ
838 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:03:48 ] 罵倒するほどでもないが、読みにくいのは確かだな。
839 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:09:25 ] 【技術】マイクロソフト、新開発言語「D」を開発中[08/02/07] news24.2ch.net/test/read.cgi/bizplus/1202379742/
840 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:10:40 ] なんどめだ
841 名前:813 [2008/02/08(金) 01:11:27 ] すみません、スペース入れようかどうか迷ったのですが結局入れませんでした。 全角スペース挿入だとコンパイルする人が半角に直すのが面倒かと思い、 nbspを入れるのも考えたんですけど、それが一般的なのかわからなかったので、そのまま入れました。 ソースを張るときはどうするのが一般的ですか?
842 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:15:12 ] 1レスに収まりきらないなら、適当にアーカイブ化してどっかのアップローダにでも上げればいいんじゃないかな。 複数ファイルだとビルドするのも面倒だしねえ。
843 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:19:25 ] >>776 >>811 >>820 >>839 開発開始を宣言しただけなのに大々的に取り上げられすぎだろw
844 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:23:48 ] >807 stringがエラー扱いにならなくなってるな。ありがたい。
845 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:32:08 ] おお、Descentがstringをchar[]として認識するようになった。 全体的にautocompletionが賢くなって、aliasの扱いが改善されてるらしいな。 "str".tolower()とかはまだエラーって言われるけど。
846 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:34:21 ] ttp://blogs.itmedia.co.jp/satohiroshi/2008/02/d-3d55.html こうやって宣伝に乗っかるわけか。
847 名前:デフォルトの名無しさん [2008/02/08(金) 01:45:45 ] >>846 ちょw DigitalMars完全否定w
848 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 02:00:25 ] tango入れてないので、Phobos用に少し書き換えてやってみたけど、症状ほぼ同じ。 自分とこの環境では、メモ帳が固まったまま応答無くなる。
849 名前:813 [2008/02/08(金) 02:10:22 ] あ、出来た... defファイルの DATA PRELOAD SINGLE を DATA PRELOAD にすることでちゃんとフック出来ました。 defファイルの書式(メモリ指定あたり)とか調べても見つからなかったからサンプルのまま使ってたけど、ここだったんですね。 C++の方ではdefファイルを書かずに作っていたので普通にフック出来ていたようです。 >>848 試していただいてありがとうございます。 次からは長いコードはアーカイブするなり気をつけますm あと、defの書式やオプションの解説はどこかにありますか?
850 名前:813 [2008/02/08(金) 02:17:40 ] 勘違い。VC++の方でもdefは書いてたけど、EXETYPE/CODE/DATAの設定が無視されてました。
851 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 02:25:36 ] >>849 www.digitalmars.com/ctg/ctgDefFiles.html
852 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 06:06:17 ] >>846 あれだな、情報操作に一番騙されるのって、「自分の頭で咀嚼する」意欲だけはあるけど、 調べる気があんまり無く、誘導されるままに「自分なりの見解」に辿り着いて満足しちゃうタイプの人間だよな。 この短いブログを書く時間で、D言語が既に存在するかどうかなんて調べられるのに、 「あるかどうか」という事実より、「実はなかったということのようです」という見解をひけらかすほうが大事なわけだ。 まったく思考が発展しない馬鹿のほうが、その点では無害かも。
853 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 07:38:26 ] 製品化してないものは存在しないという考えかもね。 DMDなんて同人サークルが勝手に作った独自言語程度に思われてたらやだな。
854 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 09:26:11 ] digital marsって会社のポジションがよくわからん。 IT世界的に見たらどれくらいの影響力があるんだろう。
855 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 10:03:49 ] IT世界とかあやふやすぎるだろ・・・ Cコンパイラ界、ECMAScript界なら 結構いいはずだぜ! たぶん
856 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 10:37:19 ] トップページに会社情報がないあたりが何とも。 ウィキペディア(英語のほう)みた感じだと 小規模なベンチャーかな?って思った。
857 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 12:07:13 ] digitalmarsは本当にWalterタンの同人サークル程度のもんだが。 コンパイラ界でWalter Brightの名前を知らん人間はいないだろ常識的に考えて、くらいの影響力。
858 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 12:21:56 ] それはともかく次スレからはDigitalMars Dって書かないといかんな めんどくせえ
859 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 12:39:27 ] 後発がMicrosoft Dって書くもんじゃね?
860 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 12:53:44 ] >>859 まったくだプリプリ
861 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 14:38:04 ] 文字コードの変換はこのモジュールを使うしかないんでしょうか。 www.wikiroom.com/sakurai/index.php?DJcode これを使ってみたんですが、全く同じデータを渡してもたまに末尾にゴミが混じるようで変換時に末尾に〓がついたりします。
862 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 17:53:45 ] encoding周りをちゃんと実装してるライブラリは見ないね。 iconvとか使ってみるといいかも。
863 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 18:28:57 ] >>861 キミがそいつのバグを取ってくれたら、38万の日本のDユーザが喜ぶよ
864 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 18:56:45 ] >>668 ttp://f17.aaa.livedoor.jp/~labamba/?D%B8%C0%B8%ECBOF >特に仕事に使ったという事例。2chにいたらしい
865 名前:デフォルトの名無しさん [2008/02/08(金) 18:58:46 ] Eclipse起動しただけでメモリ83MBくってる。。。でかすぎ. ちなみにVC++2008Expressは28M
866 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 20:15:20 ] もはやメモリ1G五千円の時代だよ。 28と83なんて大して変わらない。
867 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 20:16:17 ] 誤差だな
868 名前:809 mailto:sage [2008/02/08(金) 20:58:29 ] >>809 どなたか、よろしくお願いします・・・
869 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 21:03:13 ] >865 GoogleDesktopに600Mほど食われたのに比べればどうということはない
870 名前:デフォルトの名無しさん [2008/02/08(金) 21:06:11 ] >>866 メモリ512MBノート使ってますorz 増設しようかと思ったけど今主流のノートメモリの一つ前のタイプらしい。 新しいノートに変えたときに流用出来ないんで、やめときました。
871 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 21:12:36 ] >>866 >メモリ1G五千円 ノートか? 今は樋口一葉で2GB買えるだろw
872 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 21:14:34 ] バルクか
873 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 21:22:32 ] >>871 そりゃ味を選ばないならいくらでも食えるだろ。
874 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 21:29:45 ] >>868 なぜ自分で試さない? ttp://www.dsource.org/projects/descent/wiki/DebuggingPrograms ttp://ddbg.mainia.de/doc.html
875 名前:809 mailto:sage [2008/02/08(金) 21:54:48 ] >>874 うわぁ、すいません m(_ _)m ありがとうございます!
876 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:07:45 ] >>873 ノーブランドだったら1GBで英世2枚だよ メーカー製でも4枚要らない そのくらいのことも調べずに価格の最新事情を指摘されたくらいで「味を〜」とか騙らないでね
877 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:23:09 ] 何を必死になってるのかさっぱり分からん。
878 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:23:36 ] 言っとくけど俺をあまりナメないほうがいいよ vipでコテハンやってるしこのスレ潰すくらいの影響力は持ってるから くだらないことで刺激して後悔しないようにね
879 名前:デフォルトの名無しさん [2008/02/08(金) 22:25:34 ] >>878 ぺろぺろ
880 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:28:27 ] この味は! ・・・ウソをついている『味』だぜ・・・
881 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:28:59 ] じゃあつぶせば? それとも口だけ?
882 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:30:34 ] まったくだ
883 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:33:11 ] >>878 えーと・・・ この場合つっこんだら負けなんだろうな。
884 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:33:28 ] 最近はやってきたコピペだしな
885 名前:デフォルトの名無しさん [2008/02/08(金) 22:34:40 ] >>884 だよね。さっきSleipnirのスレで同じ文章見かけた。
886 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:35:02 ] 俺もgdi++スレで見たよ
887 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:38:11 ] 他所のスレで見かけたコピペをすぐに使いたくなっちゃう子って可愛いよね。
888 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:41:03 ] たった3行でここまで哀れみを誘うコピペ作ったやつも凄いな。 俺さっきから得も言われぬ哀れみを感じて表情が微妙なままだ。
889 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:44:51 ] それマジで言ったん?ソースあんならすぐ出せ マジなら2ちゃんねら総力を上げて潰すが
890 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:45:30 ] 大漁だなw お前らコピペだと分かってるならスルーしろよw それくらいもできないのかこのオタクどもはww
891 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:48:02 ] この流れは参加しないと勿体ないとおもっちまって。 D言語スレでやるこっちゃないけどな。
892 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:48:38 ] いまどき、後釣り宣言は流行らねえだろ
893 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:55:02 ] class Fileを使いforeachで行ごとに処理する場合、 foreachの頭で毎回ディスクにアクセスしてデータを取り出してるんでしょうか? BufferedFileを使ったら速度が20倍になったんですが。
894 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:59:22 ] 正直釣りや煽りならそういって欲しい派だけどな俺は 釣りも後味良いのと悪いのとがあるんだよな そういやなんだか2ちゃんねるの中で話されていること(煽りやら学歴厨やネトウヨその他の・・・)を マジに取ってしまってる人が最近出始めてきてるように思う こりゃあやばいかもわからんよ10年後は
895 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 23:01:50 ] >>893 そうだよ。それも1byteずつReadFileなりreadなりしてるよ。 なんで、ソースついてるのに読まないのか不思議だ。
896 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 23:03:28 ] 知人の話ではいい年こいた大人が会社で自分はにちゃんねらだのVIPPERだの大喜びで宣伝してるらしい。 年の離れた上司がそんな感じで萎えるとか愚痴られた。10年経たなくとも一部はもう駄目かもしらんね!
897 名前:デフォルトの名無しさん [2008/02/08(金) 23:03:46 ] Descentでtangoを使う為の設定が分からんorz
898 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 23:09:49 ] >>895 そうなんですか。。。 単純な文字列変換なんですがperlより遅くなってしまってどうなってるのかちょっと不思議に思ったので。 ソースは読んでも多分わからないので読まなかったのです。 モジュールの中身を知らなくても動くには動くので今まで気にしたことがなかったのですが。 これからは気にして読んで理解することからはじめようと思います。 どうもです。
899 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 23:19:08 ] >>897 TangoのウェブサイトからDMDバンドル落としてきて、 D>Installed Compilersからパスを設定すれば普通に動いたよ。
900 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 23:27:39 ] 813氏いる? プログラムを実行してグローバルフックかけた状態で、ファイルのショートカットのプロパティを開いてリンク先を変更すると、エクスプローラがフリーズして電源切るしかなくなるのだが、同じ症状出る? 俺は、これがあるせいでDで作るのをあきらめた過去があって、ほかの人はどうなのかちょっと聞いてみたい。 GDCやVC++だと大丈夫なんだけどな。 ちなみにOSはXP。
901 名前:813 [2008/02/08(金) 23:33:55 ] >>900 フックの種類は?
902 名前:デフォルトの名無しさん [2008/02/08(金) 23:36:45 ] >>899 出来ました。設定する前にプロジェクト作って、その後に設定したからエラーのままだったらしい。 設定後に一端プロジェクト消してもう一回作ったらちゃんと動いた。 設定変えたらちゃんとプロジェクトに反映してほしいな。。再起動はさせてたんだけど。
903 名前:900 mailto:sage [2008/02/08(金) 23:40:09 ] >>901 >>830 あたりのコードと同じ、普通のキーボードフック。 tango入れてないから試せないけど、このコードでも同じ症状が出るはずなんだけど。
904 名前:デフォルトの名無しさん [2008/02/08(金) 23:42:23 ] あげ
905 名前:813 mailto:sage [2008/02/08(金) 23:47:25 ] >>903 キーボードフック中にリンク先変更で?まさかねーw と思いつつ試したらフリーズしましたorz|||
906 名前:813 mailto:sage [2008/02/08(金) 23:49:27 ] しかもタスクマネージャからKILLしても死なないし、CPU使用率0%のまま。 explorer何者だよ...
907 名前:813 mailto:sage [2008/02/09(土) 00:00:01 ] ちなみにWM_GETMESSAGEフックではならなかった。
908 名前:900 mailto:sage [2008/02/09(土) 00:16:04 ] 仲間がいたw GDCやVC++だとなんともないから、たぶんリンカが悪いと思うんだけど、モジュール定義ファイルをいくらいじくっても改善しなかったんだよね。 >ちなみにWM_GETMESSAGEフックではならなかった。 WM_GETMESSAGEはすべてのメッセージをピックアップするみたいだから、必要なメッセージを抽出すれば使えるかもしれない。 明日にでも試してみるよ。 ありがとう。
909 名前:813 mailto:sage [2008/02/09(土) 00:30:21 ] WH_KEYBOARD_LLでも発生しなかった。 代用ならLLかGETMESSAGEだな。 ちょっと調べたことを列挙。 LLはNT/2000だけ、DLLも作成しなくていい。 GETMESSAGEはメッセージの書き換えとかも出来る。もちろんWM_KEY系も来る。 WH_KEYBOARDはWM_KEYUP/WM_KEYDOWNの時に呼ばれるらしい。おそらくGETMESSAGEの場合と同じタイミングのフック。 だからGETMESSAGEで代用は出来ると思います。 でもDLL自体の問題がどうにもならないのは少し気持ち悪いな。
910 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 00:31:03 ] 自分もやってみた。確かにフリーズ。クリック何回かしたら勝手に終了。 フォルダオプションで、別プロセスでフォルダ開くようにしてるから メインのエクスプローラには影響なし。 タスクマネージャが起動できるのなら、電源切らんでも、 メニューのファイル→新しいタスクの実行で、 explorerを入力してOK押せば回復するはずだけど。 これ使った、ソースとexe+dll ttp://a-draw.com/uploader/src/up31499.zip.html
911 名前:813 mailto:sage [2008/02/09(土) 00:34:40 ] >>910 新しいタスクの実行も試してみたけど反応無しでした。既にexplorerのプロセスがあるから多重起動だと思われたんじゃないかと。 再起動じゃなくてタスクマネージャからログオフして回避した。
912 名前:813 mailto:sage [2008/02/09(土) 00:38:59 ] >>910 解凍するとup31499って名前のファイルが一つだけ。。。
913 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 00:45:56 ] 失礼。直リン対策に引っかかるね。 ttp://a-draw.com/uploader/upload.html up31499.zip
914 名前:900 mailto:sage [2008/02/09(土) 00:48:31 ] >>909 俺もちょっと過去に調べたことを・・ LLはフックだけならDLL作らなくていいけど、他アプリでの固有の状態、たとえば、キーボードメッセージがきたときにコントロールキーの状態が知りたいというときには、やっぱりDLLを作る必要がある。 GetKeyboardStateはローカルな状態しか取得できないから、他アプリ上でフックしたときの状態はDLLの中のプロシージャから取得するしかない。 だから、GETMESSAGEにはちょっと期待。 >でもDLL自体の問題がどうにもならないのは少し気持ち悪いな。 これには同意。
915 名前:813 mailto:sage [2008/02/09(土) 00:48:48 ] いえ、zipのDLまではしたんだけど、解凍するとなんか変です;一応二種類の解凍ソフトで試してみましたが。
916 名前:910 mailto:sage [2008/02/09(土) 00:58:23 ] >>915 中身は、813さんが貼ったソースを、phobosで動くようにしただけの物です。
917 名前:813 mailto:sage [2008/02/09(土) 01:02:50 ] >>916 えーと、>>912 に書いたように、解凍すると中身がup31499というファイル一つになってます; アップローダが何か変なことしたんじゃないかと思いますが。
918 名前:900 mailto:sage [2008/02/09(土) 01:11:57 ] >>917 自分は 1.913のアドレスをブラウザで開く。 2.up31499.zipのリンクをクリックする。 3.さらにup31499.zipのリンクをクリックする。 でちゃんと hook -bin --main.exe --test_hook.dll -src --main.d --test_hook.d --test_hook.def という内容のものが出てくるよ。 Noah使用。
919 名前:813 mailto:sage [2008/02/09(土) 01:17:51 ] 一応解凍出来ました。でも動作は変だ。 zipを保存->Lhaforgeで解凍->up31499.zip_extractedというファイルが出来る->それをLhaforgeで解凍->hookフォルダが出来る。 なんだろ、これ、二重圧縮?
920 名前:813 mailto:sage [2008/02/09(土) 01:22:19 ] ちなみにLhaplusで解凍したら>>912 の現象。 zip_extractedでぐぐって見たけど、同じような事例があるだけですね。
921 名前:900 mailto:sage [2008/02/09(土) 01:26:25 ] >>919 こちらでは、7-zipでも正常だった。 ソフトとの相性?
922 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 02:00:29 ] ところで、TangoのGCではminimizeができるようになるのかな? なんかだれかほしがってた気がするけど。
923 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 02:04:17 ] 極窓に投げると.gtzと判別されますよ、っと
924 名前:813 mailto:sage [2008/02/09(土) 02:07:43 ] gtz...検索しても情報無し。と。
925 名前:813 mailto:sage [2008/02/09(土) 02:21:16 ] >>923 あ、tgzですね。
926 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 03:24:13 ] >>859 D++(笑) D#(笑) とかw
927 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 04:36:27 ] でもC++やC#はCから派生したって意味だろうし、これは全く違う言語だからなあw
928 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 05:36:26 ] Eclipseってもっさりしてるし欲しい機能がどこにあるか分からなくて疲れる。
929 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 07:22:49 ] おまいら当然Dのリンカが吐くモジュールのOpt.OSVer[0]とOpt.SubSysver[0]って毎回書き換えてるよな?
930 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 07:27:22 ] >>929 素直にdefファイルなり/exet: /su:なりで指定しろよ…
931 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 09:20:45 ] -gオプション付きでコンパイルしたものって配布しちゃだめなの?
932 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 11:41:35 ] >900 確かにフリーズするが、ほっといたら直ったが(一分くらい?) たしかに、このバグはちょっと困るなぁ……
933 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:19:37 ] 自分用に導入ガイド書いたんだが誰か添削してくれないかなぁ。 導入ガイド。@DMD+Phobos編@Windows@20080209 1,DIGITAL MARSのサイトからDMD.zipとDMC.zipを落としてくる。 --筆者はVer1.015で試している。 --dmd.2.010.zipでも同じ構成と思われる。 --圧縮ファイルは念のためとっておきましょう。 2,両方を解凍。 --DMD.zip->(DMDとDM) --DMC.zip->(DM) 3,DMD側のDMにDMC側のDMを上書き。同じフォルダにDMDとDMになる。マージするんです〜。 4,任意でPATHを通す。 --c:\dmd\dmd\bin;c:\dmd\dm\bin とか。Pathの区切り文字は ; です。 ---場所は貴方が決めます。 --XPの場合:マイコンピュータを右クリック->システムのプロパティ->詳細設定タブ->環境変数ボタン->Path ---開発ユーザのユーザPATHにするのが良いと思います。 5,テストします。 --ソースを用意しましょう。 ---文字コードはUTF-8オンリーです。SJISとかEUCとかではだめです。 --お好みでbudやdsssを用意しましょう。 ---dsss:www.dsource.org/projects/dsss/ ----筆者は使ったこと無いです。 ---bud:www.dsource.org/projects/build/ ----budはpath上の日本語を許容しません。
934 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:22:05 ] わなDで十分な気もしないでもない
935 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:43:15 ] OSを良く吹っ飛ばすので実行ファイル系はいったんなくなっちゃうんです。ウイルス怖いので。 で、手元にまとめて置いておきたかったんです〜。 そういえば、わなD有りましたね。。。 ちょっとのぞいてこよう。
936 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:48:44 ] 改めて読んでみるとわなDで十分なきがしてきた。orz Descentのことも書いてあるし。 車輪の再発明再び!XP
937 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:57:49 ] EclipseをDで書き直すって需要ある?
938 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:58:27 ] 質問なんだけど、数学の行列って必ず長方形なり正方形なの?立方体にはならない?
939 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:59:39 ] >>938 誤爆? なんとなく言いたいことが不明だが テンソルのことかな? 行列の添え字が3つ以上あったりするやつ
940 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 18:03:07 ] >937 「もっさりしないEclipse」はEclipseユーザの誰もが夢見る代物だと思う。 実現するかはともかく。
941 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 18:04:48 ] >>937 D言語で書かれたIDEは、D言語が実用にたえることの証明になると思うよ。 がんばれ
942 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 18:07:05 ] >>939 あー、行列って言わないのね。もっと大きな体系があるのか。 勉強になった。Thx!
943 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 18:07:39 ] >>938 >>939 の追記だけど普通に多次元行列は定義できるよ んで扱いやすい性質を持ってるのがテンソルと呼ばれてる 大雑把に言えばこんな感じかな?
944 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 18:13:16 ] >>943 把握した。・・・多分。 テンソルって言うのは初めて聞いたよ。 調べてみる。俺、文系だけど〜。^^;
945 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 19:25:39 ] ここ何スレだよwww XX年後、D言語にテンソル型が実装されることをこのスレの誰も知る由がなかった。
946 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 19:40:05 ] その前にD言語はMSに乗っ取られてしまいましたとさ。
947 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 19:51:59 ] しかしなんとMSがDMを買収 めでたしめでたし
948 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 20:11:28 ] 行列用クラスを作りたいけど、テンソルも最初から考えるかどうかは悩むよね。 FORTRANとかMATLAB(GNU Octave)とかがあるから、それに対抗しようとするとさらに悩める >>944 こういうのがある ttp://www.oonumerics.org/blitz/
949 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 20:16:43 ] テンソル使うならやっぱMathematicaじゃね? 計算の速さ考えるなら別だけど
950 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 20:37:18 ] その中間としてSun Fortressなんかが出てきたりとか。 いろいろありますねえ。
951 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 21:53:06 ] 個人的には線形代数だと三角行列と対角行列が欲しい。 んで、対角化や特異値分解とかやってくれるの。 粗行列と Lanços 対角化もサポートしてくれると最高。
952 名前:デフォルトの名無しさん [2008/02/09(土) 21:54:40 ] でOcamlも結構よくね? 手続き型と静的なシンボルリストをあわせもつSystem.out.println標準内蔵だしな
953 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 23:09:35 ] そういえばD言語に標準の国際化機能ってあるの?C#のサテライトアセンブリみたいな。 ないなら何が一般的かな?
954 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 23:14:55 ] >>802 遅レスだけど…。 tangoのmutexがどうゆう仕様かは知らないんだが、 synchronized文はロック・アンロック(ロック変数の処理)をプログラマが 気にしなくていいのが、pthreadとかのmutexと違うところ(良いところ)だと思う。 例外発生時とかのイレギュラーな動作の時もアンロック保証がされてる所。 変数に対してじゃなくて、制御フローに対するatomicの保障を言語レベルで行う ってのはうれしいことじゃないかな。 (変数に対するatomic保障もできるけど) スレッドプログラミング超初心者の時に、下みたいなプログラムを書いて泣いた覚えあり。 下は極端な例(&雰囲気)だけど…。 下の例で、ほかにたとえば関数func()内で例外が発生してどっか飛んだ場合のアンロックは…、とか。 まあ、他の人はそんなミスしないのかもしれない…。 int a; // ロックに使用するグローバル変数 int hoge() { bool b; lock(a); // ロック開始 b = func(); if (b){ return 10; // bがtrueだとロック解除されないで、hoge()を抜けてしまう… } unlock(a); // ロック解除、falseの時のみ解除される return 0; } 基本、クリティカルセクションは必要最低限で。 そういう意味で、上の例のプログラムはよくないかもね。 (もしfunc()内全体の処理をロックする必要がないなら)
955 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 23:18:54 ] スコープガードを使うのも手だね。 lock(a); scope(exit) unlock(a);
956 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 23:49:15 ] 結構スコープガードって便利だよなー
957 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 23:51:48 ] 便利すぎ あれ無しでは生きていけない体になりました 特に害も無さそうだし
958 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 01:25:14 ] >>953 マルチリソースっていう感じのはまだなさそう。 文字コード自体はUTF-8採用で国際化という感じになってる。
959 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 01:25:16 ] 行列演算もいいけど、複素数演算ももうちょっと充実してくれないかな。 せっかくネイティブで複素数対応してるんだし。
960 名前:デフォルトの名無しさん [2008/02/10(日) 01:47:55 ] ぱっと見C言語なんだが。
961 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 01:52:04 ] いきなりそんなこと言われてもどう返事してあげればいいのか分からない。
962 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 01:54:05 ] >>960 GC搭載ですよ。 Cライクって事は過去の遺産、コーディングの癖とか使えるって事です。適合してるかは別ですが。
963 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 01:57:12 ] GCってステキ
964 名前:デフォルトの名無しさん [2008/02/10(日) 02:51:27 ] なるほど、{ } このトークンは亜種の言語処理系でもよく採用されている。 今更言語Dを勉強するほど若くもないので参考にしておきましょう。 デジタルマースにもこのDコンパイラが確かにあった。
965 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 02:55:28 ] 日本語でおk
966 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 03:10:00 ] >>864 見落としてた。ありがと >>668 本人かどうかわからんけど、発表する気があるなら時間配分とか(NDAがらみで録画公開不可とか)あると思うんでスピーカの誰かに連絡くれまいか 当日いきなり「お、そこに○○がきてるじゃないか。お前のほうが詳しいからお前話せ」みたいなのもカッコいいとは思いますが >>686 漏れだ。ただ今のメンテナは漏れじゃないからサイトやドキュメントは任せてる
967 名前:デフォルトの名無しさん [2008/02/10(日) 08:49:33 ] GCゲーム向かない C++だって簡単にGC実装できるんだから donguri.sakura.ne.jp/~shock8/wisper/gc1.html リアルタイム性が要求されるものはメモリを手動で管理し、特にその必要がないものにはGCで管理の負担を減らすといった使い分けができる
968 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 08:54:31 ] >>967 ゲームにもよると思うけどな。 でも、今時のGCで困るほどリアルタイム性が要求されるゲームなんて そうそうないと思うぞ。
969 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 09:00:18 ] >>967 DもGC使う/使わないは切り替えられると思う。 GC使う場合でも www.sun-inet.or.jp/~yaneurao/dlang/Chapter-06.html あたりを気をつければゲームも問題なく作れる。
970 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 09:31:26 ] >958 そっか、ってことはまずはそこから作らなきゃならないのか。ありがとう
971 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 09:33:09 ] 向かないつっても実際作って公開してる人はいるし(ABAさんとか)、企業製品でもGC使うゲーム結構多いと思う。 うぉるたんも力説してるけどGCは怖くないよ!
972 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 12:19:56 ] ストップザワールドが怖かったら、 その時だけ一時的に GC 止めればいいしな。
973 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 12:28:30 ] 今時on the flyじゃないGCなんて・・・
974 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 12:39:12 ] そういう妄信的な姿勢って薄気味悪ささえ覚える
975 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 12:46:00 ] もともとGCは補助であってプログラムのメインじゃないし、シンプルなもので十分だと思う。
976 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 12:47:21 ] もっと高度なGCが必要ならプログラマ側で交換すればいいだけ。
977 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 12:49:39 ] Dって完全にGC使わないなんてことできるんですか? 無理無理無理無理
978 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 12:52:42 ] scope 文で事足りる処理しか書かなければ可能。 実用アプリじゃほぼ無理だろうが。
979 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 12:56:59 ] >>977 方法を調べたことは無いけど、 www.kmonos.net/alang/d/2.0/dll.html#Dcode のDLLのコンパイルの説明で >dmd mydll.obj \dmd\lib\gcstub.obj mydll.def -g -L/map >mydll.obj を mydll.dll という名前のDLLへとリンクします。 gcstub.obj は必須ではありませんが、これをリンクすることで、 不要なGCコードを省くことができます。 およそ12Kbの削減になります。 ってあるのが関係あるかも GCをオフなるようにしてGCコードを省くようにすればGCの機能は消えるんじゃない?
980 名前:979 mailto:sage [2008/02/10(日) 12:59:08 ] >>977 >>978 あ、機能の消し方じゃなくてGCの要らないコードの書き方の話?
981 名前:977 [2008/02/10(日) 13:34:57 ] 俺が言いたいのは、そんな泥臭い方法でGCを無理に押さえつけなくてもC++なら使いたいときだけGCが使えて便利だねって話
982 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 13:42:25 ] 何か妄信的なC++厨が迷い込んでるな そこまで言うならC++でGCを実装してABA GamesのOpenGLゲームやXNAのサンプルゲームと同じクオリティを省メモリで作って上げてくれ C++なら便利みたいだからD言語やC♯より楽にGCアプリを作れるんだろ?
983 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 13:43:51 ] >>981 まあ確かに簡単にオフに出来ないのなら言語仕様変えて欲しいな。(俺は今の言語仕様でGCを完全に切れるかは知らない) でもDは標準でGC有り、C++は標準でGC無し。どちらも有り無し選択可能ってだけで変わらないんじゃないかな。 C++でGC使うのに外部ライブラリ使う準備する手間と、DでGCを切る手間はどちらも変わらない気がする。
984 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 13:44:33 ] C++ で GC って C++/CLI を想定しているのだろうか?
985 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 13:48:30 ] BoehmGCじゃないの
986 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 13:52:43 ] もうそろそろ次スレ必要じゃね?誰かよろ。俺はホスト制限で弾かれた。
987 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 14:21:40 ] >>975 というような事を言う奴にかぎってメモリリークさせるんだよw
988 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 14:50:03 ] GCの制御に多少手を取られても、 言語組込みの方がコードは圧倒的に読みやすくなると思う。 それでもC++を使う方がベターな分野は常にあるんだろうけど、 そういう分野はできればこの先減っていって欲しい。 GCをもっと簡単かつ細かに制御できるれば、Dの適用範囲を広げられるかもねぇ。
989 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 14:53:01 ] 本来GCはOSに組み込まれいているべきで(ry
990 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 15:10:56 ] Part17: pc11.2ch.net/test/read.cgi/tech/1202623572/
991 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 15:15:09 ] >>990 サンクス
992 名前:975 mailto:sage [2008/02/10(日) 15:16:55 ] >>987 すまんw 俺高校生の趣味プログラマだから、大規模プロジェクトとか経験無しで言ってるw
993 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 15:20:16 ] >>990 乙牌
994 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 15:29:52 ] しかし最近流れが速くなってきたな げいつのせいか
995 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 15:33:19 ] Descentのおかげじゃないか
996 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 15:37:12 ] だな。どうせMSのは製品になったら名前変えるだろうし、Descentのが気になる。
997 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 15:41:27 ] >>994 テンソルのせい
998 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 15:44:33 ] BoF、Descent、MS-Dと、話題が集中したからな…… むしろMSには、OSの開発言語を刷新するような モダンなDリスペクト言語を期待してたのになぁ。
999 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 15:46:07 ] Part17: pc11.2ch.net/test/read.cgi/tech/1202623572/
1000 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 15:46:28 ] Part17: pc11.2ch.net/test/read.cgi/tech/1202623572/
1001 名前:1001 [Over 1000 Thread] このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。