[表示 : 全て 最新50 1-99 101- 201- 2chのread.cgiへ]
Update time : 05/09 20:50 / Filesize : 38 KB / Number-of Response : 207
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

D言語なら俺に聞け



1 名前:デフォルトの名無しさん [05/02/12 10:35:10 ]
D言語一筋で10年ほど勉強しました。
D言語のことなら知らないこと意外ならすべてわかる。
だからなんでも聞いてくれ。
ただし、プライベートなことには答えられねーぞ

39 名前:デフォルトの名無しさん [05/03/05 00:29:35 ]
ああこのサイト見た事ある。
Win9xを馬鹿にしておいてすぐ謝ってた、実はいい人だ。
これを正しく使うにはフォルダとか構成どうするのですか?
二つの区別はわからないが.hをおしえてと言ってたよ。

40 名前:デフォルトの名無しさん mailto:sage [05/03/05 00:33:21 ]
CreateWindowExの方はどうです?

41 名前:デフォルトの名無しさん [05/03/05 00:45:03 ]
>>40
どっちでも同じでした.
というか,下のGetMessageA()から帰ってきていないような気配が・・・.
引数これじゃまずいのかな.

public void messageLoop()
{
MSG msg;
BOOL bRet;
while(1)
{
bRet = GetMessageA( &msg, cast(HWND)null, 0, 0 );
if(bRet == -1)
{
// handle the error and possibly exit
break;
}
else if(bRet == 0)
{
break;
}
else
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
}

42 名前:デフォルトの名無しさん mailto:sage [05/03/05 00:50:04 ]
GetMessageAはAが必要なら
DispatchMessageもA付ける必要があるんじゃないか?

43 名前:デフォルトの名無しさん mailto:sage [05/03/05 00:51:39 ]
windows.dつかってるならその逆とか
GetMessageAのAを外してみるとか?

44 名前:デフォルトの名無しさん mailto:sage [05/03/05 00:51:46 ]
>>42
はいはい知らん子は黙ってようねヨチヨチ

45 名前:デフォルトの名無しさん [05/03/05 00:53:26 ]
boolなら答えは2つしかなさそうだが。

46 名前:32 [05/03/05 00:56:58 ]
>>39
自分は

ttp://hp.vector.co.jp/authors/VA028375/d/lib_dmd_windows.7z

を\dmd\src\phobos\win32 以下および \dmd\src\phobos\win32\ansi 以下に
windows.d があるように展開して,\dmd\src\phobos に
win32.lib と win32a.lib を置いてる.

そしてソースの冒頭で
import win32.ansi.windows; // std.c.windows.windows; // 正規版は後者
として windows.d その他もろもろを読み込んで,

dmd main.d \dm\lib\Gdi32.lib \dmd\src\phobos\win32a.lib

としてコンパイルしている.


47 名前:デフォルトの名無しさん [05/03/05 00:58:01 ]
>>44は答えを書く気が無いくせをしてしゃしゃり出やがる。



48 名前:32 [05/03/05 01:14:59 ]
>>45
ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpwinui/html/_win32_getmessage.asp
MSDNを見ると3種類の値を返すと書かれています.
でも,これでかと思って int にしてみたけど関係ないみたいですね.
やはり

...
printf("0");
bRet = GetMessageA( &msg, cast(HWND)null, 0, 0 );
printf("1");
...
としたらコンソールには 0 しか表示されないです・・・.

49 名前:デフォルトの名無しさん mailto:sage [05/03/05 01:41:36 ]
念のために聞くけど、
CreateWindow関数呼ぶときにWS_VISIBLEをつける。
またはその後にShowWindow関数呼ぶ。
のどちらかを行ってる?

50 名前:32 [05/03/05 01:49:42 ]
>>49
付けてますよ.
なんでだろうなぁ.
以下,一部抜粋.

// ウィンドウクラスの登録
HINSTANCE hInst = GetModuleHandle(null);
WNDCLASS wc;
wc.lpszClassName = "DFRAME";
wc.style = CS_OWNDC | CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = &WindowProc;
wc.hInstance = hInst;
wc.hIcon = LoadIcon(cast(HINSTANCE) null, IDI_APPLICATION);
wc.hCursor = LoadCursor(cast(HINSTANCE) null, IDC_ARROW);
wc.hbrBackground = cast(HBRUSH) (COLOR_WINDOW + 1);
wc.lpszMenuName = null;
wc.cbClsExtra = wc.cbWndExtra = 0;

public void create(char[] inTitle, int inX, int inY, int inWidth, int inHeight)
{
 HINSTANCE hInst = GetModuleHandle(null);
 hWnd = CreateWindow("DFRAME", inTitle, WS_THICKFRAME |
  WS_MAXIMIZEBOX | WS_MINIMIZEBOX | WS_SYSMENU | WS_VISIBLE,
  inX, inY, inWidth, inHeight, HWND_DESKTOP,
  null, hInst, null);
}

51 名前:49 mailto:sage [05/03/05 01:57:42 ]
>>50
ん、RegisterClass関数をちゃんと呼んでる?


52 名前:32 [05/03/05 01:59:22 ]
>>51
あ,ごめんなさい.
ただの assert() だと思ってわざと消しちゃいました.

...
wc.lpszMenuName = null;
wc.cbClsExtra = wc.cbWndExtra = 0;
assert(RegisterClass(&wc));

これが正しいものです.

53 名前:49 mailto:sage [05/03/05 02:06:32 ]
コンパイラオプションに-releaseを加えるとassert文って消えるから、
RegisterClassはassert文の外に出したほうが良いよ。
でも、これが原因じゃないだろうし、分からんなぁ。




54 名前:32 [05/03/05 02:10:15 ]
>>49
49さま,それが原因でした(^^;
ありがとうございます.

55 名前:32 [05/03/05 02:15:55 ]
てことは,コンパイラが型に厳しくなったために発生した
windows.d のコンパイルエラーを取ったら,ちゃんと動いたと.
そういうことのようです.
お騒がせしました(^^;

56 名前:49 mailto:sage [05/03/05 02:19:15 ]
解決したなら良し。
assert文の罠は結構引っかりやすいから、要注意。
......俺もSDL_Init関数で同じ罠にかかった経験あるからな。

57 名前:デフォルトの名無しさん mailto:sage [05/03/05 04:18:14 ]
SDL組み込んだバイナリをデバッガで実行すると、
SDL内部で必ずアクセス違反が出るんだけど、仕様ですか?



58 名前:デフォルトの名無しさん mailto:sage [05/03/05 04:18:47 ]
(普通に実行すると、ちゃんと動いている様には見える。)

59 名前:デフォルトの名無しさん mailto:sage [05/03/05 10:00:38 ]
LinuxのカーネルをDで書き直そうとしようとしてる奴いるか?

60 名前:デフォルトの名無しさん [05/03/05 17:37:38 ]
というかこのスレは1に聞くスレだろ!?

61 名前:デフォルトの名無しさん [05/03/05 21:00:13 ]
>>59
みんな考えることは同じなんだねぇ。。。
ただ、ガーベジコレクションの問題が有って、D自体のソースが公表されないと
難しいと思うんだけど、その辺どうなの?

D側も、OSレベルでアプリケーションのメモリ管理が欲しいと思ってるし、
OS側も、アプリケーションのガベコレを行いたいと思ってる様だけど、
ここに手を付けた人はいないんだよね。。。

D言語という、新しい言語が出来たんだから、だれかが、10年ぶりにピュアに
新しいOSを発表しても面白かろうと思うんだけど、

62 名前:デフォルトの名無しさん mailto:sage [05/03/05 21:22:11 ]

ガベコレ初心者ですか?

63 名前:デフォルトの名無しさん mailto:sage [05/03/05 22:54:27 ]
新しい言語なんか毎年腐るほど産まれているし。

ピュアなのは>61の脳内

64 名前:デフォルトの名無しさん mailto:sage [05/03/06 07:17:55 ]
ピュアに新しいOSだってちょくちょく生まれてるぞ。

65 名前:デフォルトの名無しさん mailto:sage [05/03/06 08:19:59 ]
D言語はピュアな心のモチヌシにしか見えません。

66 名前:デフォルトの名無しさん [05/03/06 15:56:21 ]
今や、ライブラリどころか、勝負はフレームワークやIDEの領域に映ってきてるから、
D言語は来ないだろ…。
言語仕様で勝負する時代はもう10年前に通り過ぎてる。

67 名前:デフォルトの名無しさん mailto:sage [05/03/06 20:28:42 ]
通り過ぎちゃいないだろ。
ただDが凡庸なだけで。



68 名前:デフォルトの名無しさん mailto:sage [05/03/06 20:35:37 ]
VectorCの方が面白そうだよ

69 名前:デフォルトの名無しさん mailto:sage [05/03/07 14:55:59 ]
それただのCコンパイラじゃん

70 名前:デフォルトの名無しさん mailto:sage [05/03/07 15:11:26 ]
タダ!?フリー!?でも今はフリーなだけでは驚かない。

71 名前:デフォルトの名無しさん mailto:sage [05/03/15 16:02:27 ]
スレスト隊長「俺の出番か?」
相談役「まだ早いのかもしれませんよ。」
スレスト隊長「・・・。まあよい。そのうち来るさ。」

72 名前:デフォルトの名無しさん mailto:sage [05/03/16 04:05:30 ]
D言語 Part 6
pc5.2ch.net/test/read.cgi/tech/1109933426/

73 名前:デフォルトの名無しさん mailto:sage [05/03/16 23:17:39 ]
スレスト隊長「↑そちらはまじめなDスレだ!」
隊員A「誘導したら駄目と言うことですか?」
スレスト隊長「そうだ。」

74 名前:デフォルトの名無しさん [2005/05/08(日) 20:08:53 ]
ここウンコすれ

75 名前:デフォルトの名無しさん [2005/05/08(日) 20:11:29 ]
p231.net220148094.tnc.ne.jp/
おkwwwおkwwwwwwwwwっうぇwwwwww
うはっwwwwww

うぇwwwうぇwwwwwwwwww
wっっうぇ
wwwっうぇwwwww




76 名前:デフォルトの名無しさん mailto:sage [2005/07/28(木) 19:03:46 ]
この速度ならぬるぽ

77 名前:デフォルトの名無しさん mailto:sage [2005/07/28(木) 22:07:09 ]
ガッ



78 名前:デフォルトの名無しさん [2005/08/01(月) 21:43:34 ]
D言語スレDat落ちAge

79 名前:デフォルトの名無しさん mailto:sage [2005/08/01(月) 21:48:08 ]
うわ、マジで落ちてる。
油断してた。

80 名前:デフォルトの名無しさん mailto:sage [2005/08/01(月) 22:07:46 ]
超電磁スピンVの字正拳突きって隠しじゃないよね?

81 名前:デフォルトの名無しさん [2005/08/02(火) 23:29:59 ]
本スレがこっちより先に落ちるとかワロスw

82 名前:デフォルトの名無しさん [2005/08/02(火) 23:35:06 ]
しょうがないからこっちを本スレにするか。

C, C++, Java, C# などのいいところを取って、さらにいろいろ付け足したような新しい言語。

・Cライクな文法
・実行形式はネイティブコード
・言語仕様のコンパクトさよりも利便性を追求
・さまざまなOSで使える(Windows, Linux, MacOSX, FreeBSD)
・ガーベッジコレクション
・便利な動的配列や連想配列
・契約による設計
・標準ライブラリPhobos

・今のところv1.0未満につき、未実装・バグはまだだいぶある。
・Win32APIを利用できるので、Win32アプリは作成可能。

DigitalMars D言語公式
www.digitalmars.com/d/
日本語訳
www.kmonos.net/alang/d/
D Front End for GCC
home.earthlink.net/~dvdfrdmn/d/

前スレ
D言語 Part 6
pc8.2ch.net/test/read.cgi/tech/1109933426/

83 名前:デフォルトの名無しさん mailto:sage [2005/08/02(火) 23:55:26 ]
ttp://pc8.2ch.net/test/read.cgi/tech/1122912733/

これは?

84 名前:デフォルトの名無しさん mailto:sage [2005/08/03(水) 01:21:20 ]
なんだ、立ったのか。

85 名前:デフォルトの名無しさん mailto:sage [2005/08/08(月) 03:45:39 ]
やねうらおさんのライブラリ開発が去年の2月15日でいきなり止まってるけど何かあったんんだろうか…

86 名前:デフォルトの名無しさん mailto:sage [2005/08/08(月) 07:37:57 ]
D言語に見切りをつけた。
か飽きた。

87 名前:デフォルトの名無しさん mailto:sage [2005/08/08(月) 13:01:37 ]
ガーン



88 名前:デフォルトの名無しさん mailto:sage [2005/08/08(月) 15:23:43 ]
つーかあんなダサいライブラリいらない。

89 名前:デフォルトの名無しさん mailto:sage [2005/09/25(日) 21:52:32 ]
あの、プログラム初心者なんですけど
クラスの宣言の意味がようわからないので教えてください
a b = new a;
で、どうしてクラス宣言するときnewしないとだめなんですか??
bっていうのはaの型へのポインタなんでしょうか・・・?
今までCしかやったことないのでよくわかりません、助けてください

90 名前:デフォルトの名無しさん mailto:sage [2005/09/25(日) 23:10:46 ]
なぜnewしないと駄目なのかという理由は、classはヒープに確保するというのがD言語の設計だから。
ようするにbはaの型へのポインタ(と似たような)物というわけで、その理解で問題ない。

91 名前:デフォルトの名無しさん mailto:sage [2005/11/25(金) 23:45:35 ]
std.processをimportしようとしたらエラーでるんだけど、バグ??
linuxなんだけど、どうすればできますか?

92 名前:デフォルトの名無しさん [2006/02/14(火) 06:46:36 ]
Dの入門書ない?

93 名前:デフォルトの名無しさん mailto:sage [2006/02/14(火) 16:32:28 ]
>>92
今書けばバイブルになる

94 名前:デフォルトの名無しさん mailto:sage [2006/02/15(水) 01:17:04 ]
>>92
D言語パーフェクトガイド―Windows Linux FreeBSD対応
www.amazon.co.jp/exec/obidos/ASIN/4774122084/



95 名前:デフォルトの名無しさん mailto:sage [2006/02/15(水) 01:23:53 ]
そういえばそんなのあったなw

96 名前:デフォルトの名無しさん [2006/02/18(土) 23:06:20 ]
あげ

97 名前:デフォルトの名無しさん mailto:sage [2006/02/28(火) 09:21:22 ]
サンプルソースがコンパイルできないです。

パスは通したが、未定義シンボルって言われますた



98 名前:デフォルトの名無しさん [2006/03/09(木) 00:04:14 ]
phobosをコンパイルしていないからと思われ。


99 名前:デフォルトの名無しさん mailto:sage [2006/03/09(木) 04:18:09 ]
>>94
もはや古いよ・・・

100 名前:http://www.vector.co.jp/soft/win95/util/se072729.html mailto:http://msdn2.microsoft.com/ja-jp/library/h2k70f3s.aspx [2006/03/18(土) 21:46:12 ]
TextSS のWindowsXP(Professional)64bit化おながいします

もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?

そういや64bitにネイティブ対応している2chブラウザてありましたっけ?





101 名前:デフォルトの名無しさん mailto:sage [2006/04/08(土) 16:36:49 ]
リラテルってオブジェクトと似たようなもんなのか?

102 名前:デフォルトの名無しさん mailto:sage [2006/04/08(土) 22:17:29 ]
りてらるりてらるるるるるるー♪

103 名前:デフォルトの名無しさん mailto:sage [2006/04/10(月) 14:18:59 ]
いてらりゅ


104 名前:デフォルトの名無しさん [2006/07/18(火) 00:39:07 ]
up

105 名前:デフォルトの名無しさん [2006/09/28(木) 18:31:13 ]
ファイルの更新日時はどこでもらえばええですか。

106 名前:デフォルトの名無しさん [2006/09/28(木) 23:24:32 ]
どこまでぐぐった?


107 名前:デフォルトの名無しさん mailto:sage [2006/09/29(金) 15:24:43 ]
ディスプレイに顔がめり込むまで。



108 名前:デフォルトの名無しさん [2006/12/04(月) 18:13:55 ]
はじめてD言語でプログラムしてみたけど
linuxでSDLライブラリがコンパイルできない。

109 名前:108 mailto:sage [2006/12/15(金) 19:31:40 ]
できた〜 リンクが間違ってただけだった


110 名前:デフォルトの名無しさん mailto:sage [2006/12/29(金) 14:13:57 ]
Dって何でこんなにコンパイルが速いんですか?

111 名前:デフォルトの名無しさん mailto:sage [2007/01/11(木) 12:09:55 ]
>>110
びっくりするほど速いよね
フンクソ思いプリプロセッサがないからじゃない。


112 名前:デフォルトの名無しさん mailto:sage [2007/01/11(木) 19:04:34 ]
たしかに早いね〜。でもPascalほどじゃないな。

113 名前:デフォルトの名無しさん mailto:sage [2007/01/12(金) 01:28:07 ]
パスカルってそんなに早くヤッてくれるんだΣ(´□`*)

114 名前:デフォルトの名無しさん mailto:sage [2007/01/13(土) 11:08:23 ]
コンパイル速度に関してはpascalが速い、っていうよりも
Borland Pascalが速いんだよ。

まぁ、言語仕様的にコンパイル速度を上げやすいってのもあるかな。


115 名前:デフォルトの名無しさん mailto:sage [2007/01/13(土) 11:13:32 ]
プログラム書くときに人間が半分コンパイルしてるもんな

116 名前:デフォルトの名無しさん [2007/01/13(土) 12:37:25 ]
ショボい最適化しかしていないのでは

117 名前:デフォルトの名無しさん mailto:sage [2007/01/13(土) 13:07:33 ]
前しか参照しない仕様が効いてるんじゃね?>Pascal



118 名前:デフォルトの名無しさん mailto:sage [2007/01/13(土) 13:30:19 ]
1. 言語仕様が高速化に向いている
2. 最適化がショボい
3. コンパイラのアルゴリズムが洗練されている

この 3 つがコンパイラが高速になる条件だな。
2 はない方がいい条件だけど。

119 名前:デフォルトの名無しさん mailto:sage [2007/01/13(土) 13:51:58 ]
完成品じゃなくて作り途中のためなら
それはそれでいいんじゃね

120 名前:108 mailto:sage [2007/02/15(木) 20:54:51 ]
今度はalsaでpcmが鳴った

121 名前:デフォルトの名無しさん mailto:sage [2007/02/21(水) 16:41:27 ]
DMDはコンパイルが爆速なのに、
GDCは普通のC++のコンパイラ並の速度なのはなんでだぜ?

122 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 03:30:47 ]
>>121
バックエンドがGCCだから
抽象化のためにかなり速度を犠牲にしている

123 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 18:03:39 ]
コンパイル速度を上げられるような言語設計にこだわってるのに、
何か瀬がないな。

124 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 18:13:25 ]
まぁ、本家が力を示せてるから、とりあえずそれで面目は立ってるよ。

それに細かいことを言えば、「コンパイル速度を上げられるような」言語設計というよりは
「コンパイラを比較的楽に作れる」言語設計を目指してるんだと思うし、
そういう風に考えれば、まぁ遅くても「話が違うだろ!」とまでは行かないから安心安心と。

いや、格好いいことじゃないけどね、遅いのは。

125 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 00:47:29 ]
コンパイル速度なんて開発の進捗を遅らせるようなもんでもないしね

126 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 23:40:35 ]
ソースが多くなってくると結構重要。

127 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 00:56:44 ]
そうっすか。



128 名前:デフォルトの名無しさん [2007/03/19(月) 14:02:45 ]
import std.stream;
してるのに
readLine();
が使えない…
project.d(31): Error: undefined identifier writeLine
project.d(31): Error: function expected before (), not writeLine of type int
project.d(32): Error: undefined identifier readLine
project.d(32): Error: function expected before (), not readLine of type int
project.d(32): Error: cannot implicitly convert expression (readLine()) of ty
pe int to char[]
std.stream.readLine();しても
そんなの宣言されてない言われます…
どうしたら標準入力できるのでしょうか。

129 名前:デフォルトの名無しさん [2007/03/19(月) 14:08:02 ]
一応こんな感じに対処しましたがもっとスマートなやり方はありませんか。
char[] s;
s.length = 200;
gets (cast(char*)s);
s.length = std.c.string.strlen(cast(char*)s);

言いそびれましたが
WinXP Home SP2/Digital Mars D Compiler v1.009
環境変数
pathはPath;c:\dmd\dmd\bin;c\dmd\dm\bin;C:\borland\bcc55\Bin;c:\dmd\;
です

130 名前:C言語 [2007/03/19(月) 14:08:57 ]
 ◆ピピー◆
ここでひとつ質問。
C言語で作ったのをコンピャイルして実行ファイルにしたあと、それをダブルクリックしても一瞬で終了しちゃいます。何とかしてシステムの動きを止められないでしょーか?
こんなおばかな僕に誰か救いの手をプリーズ。

131 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 22:05:34 ]
>>130
{getchar();
fflush(stdin);}
{kbhit();}
などなどの方法がある。

132 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 22:06:12 ]
kbhit();はconio.h(console input/output)をインクルードしてね

133 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 22:11:48 ]
荒らしに反応するなよ。

134 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 23:49:32 ]
conioってそういう意味だったのか、こにょやろう。

135 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 03:02:16 ]
>>128
std.sreamのreadLineとかってのは、
Streamクラスのメンバ関数なので、
その(派生)クラスのオブジェクトをまず作らないといけない。
使用例はここにあった。
f17.aaa.livedoor.jp/~labamba/?std.stream#content_1_27

で、標準入出力で遊ぶならstd.cstreamの方を使うといいよ。
buf = din.readLine(); とかいう感じで使える。

136 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 23:24:55 ]
>>135
ぬかった!!
dinだったのか…なるほどでございます。

cstreamを使えばmemorystreamをしなくてもdin.うんたらで出力できるんですね。
これは何というか、標準出力って概念を感じさせない使い方でこれまたエレガント…うっとり

137 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 00:22:14 ]
CのpopenみたいなのをDでやるためにはどうしたらいいですか?



138 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 19:11:11 ]
Cにpopenなどというものはない。
というか、popenつかえばいいのでは。

139 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 10:46:05 ]
素数を出力したいのですが、なぜ3しか出力してくれないのでしょうか?
import std.stdio;
import std.file;
import std.string;
import std.stream;
int main()
{
    int[] i;
    int n;

    i.length = 1;
    i[0] = 3;

    for (n = 5; n < 10000; n+=2)
    {
        foreach (int c, v; i)
        {
            if ((n%v) == 0)
                break;
            if (i.length == (c+1))
            {
                i.length = i.length + 1;
                i[i.length] = n;
            }
        }
    }
    foreach (int c, v; i)
    {
        append ("sosu.txt", toString(v)~"\n");
    }
    return 0;
}






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<38KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef