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


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

D言語 Part16



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の入門講座)

477 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 23:43:39 ]
>>476
Boost の lambda とか言われたままに採用せずに、あんなもん言語仕様のひとつに組み込めよ、と思う。
なんでもかんでも template で generic programming って間違った進化だろ。
で、こういうこと言うとパラダイムシフトできないアホグラマがどうのとか。
スレ違いだからこのへんにするが。

478 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 23:45:23 ]
C++についていけなかった香具師らはRubyに逃げた

479 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 23:47:58 ]
>>477
まあ今の言語の群雄割拠は地球の歴史でいうと先カンブリア紀のようなもんだからなぁ


480 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 00:04:41 ]
パーサーが実質世界に一つしかなくてしかもオープンソースというのは
C++ からしたら天国じゃないか

481 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 00:23:46 ]
同じ事が近いコーディングコストで達成できるのであれば、言語仕様は小さい程いい。
何でもかんでも言語仕様に取り込みゃいいってもんじゃない。

482 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 00:28:54 ]
>>481
構文や意味に誤りがあった場合にまともなエラー表示ができていない。
達成できてるとは言い難い。

483 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 00:30:20 ]
コンパイラが実装しなけりゃ絵に描いた餅。
export の二の轍を踏むだけ。

484 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 00:32:13 ]
Dの設計・言語使用に携わっている人たちが、そもそもC++についていけなかった件について。

485 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 00:32:45 ]
export は実装が難しすぎたからだろ。
lambda の実装ごときに何の問題があると。



486 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 00:34:34 ]
>>449
forumに書き込んでる暇があれば自分で移植しろという感じだな

487 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 00:35:32 ]
この様子だと、Dは実用とか稼動とかとは程遠いですね。
けっきょくは、better c++ なんでしょうか。
また1年後ぐらいにこのスレにきますわw

488 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 00:36:50 ]
>言語仕様は小さい程いい。
D見るとつくづくそう思うよ。
バグは言語仕様に対して指数関数的に増えるからな
const周りの仕様変更でfinalメンバ関数の挙動がおかしくなったりとか
そういうのにぶつかると絶望感感じるよ。

489 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 00:38:38 ]
仕様が増えれば、それだけ実装コストがかかるのは当然だろ。
言語は実装されて初めて意味を持つんだから、普及させたけりゃ仕様は少ない方がいい。
さらに、覚える方も楽だしね。

さらに、D の設計思想にある 「構文解析と意味解析を分離する」 が達成されていない C++ で
新たに仕様を増やしたときの実装コストはいかほどのものかちったぁ考えようぜ。

boost をそのまま取り込むとなれば実装コストは名前ちょっといじる程度。
この差は非常に大きい。

490 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 00:41:29 ]
>>477
仕様に組み込みたい気持ちは分かりますが、Cの言語仕様にラムダはいかんでしょ。
あなた、プログラム言語のことをちゃんと学んでないようですね。
パラダイムとかテンプレートもいいたいこと分かるんですけど、世の中にはもっとキモイのがいるんで、
そういうの見ると少しはC++のそれも理解できるかとw

正規表現で不定方程式を解く

491 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 00:45:32 ]
それは理解できるが、lamda プログラミングは素晴らしい!なんて語りながら
現実があれじゃどうかと思うぜ。あんなのIOCCCに応募するようなコードだろ。
マクロでマイ言語作って叩かれた25年前から何も変わってない。

492 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 01:16:36 ]
Cのコンパイラも書いたことない奴らがDの設計思想とかぬかすなよ
おこちゃまはwinでrubyでいいからw

493 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 01:17:26 ]
Dスレにまでいつものが湧くようになったか。
スルーしとけ

494 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 01:17:43 ]
windowsならvbaで決定だな。

495 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 01:19:57 ]
>>491
ラムダは制御には向いてませんよ。Cは制御に向いてますよ。
あなたに必要なのは、そういうところだと思います。



496 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 01:20:02 ]
>>487
仕事で使ってる俺から言わせてもらうと
実用とか稼働とかとはほど遠いから趣味で使うのがいいよ
あと1年後じゃ無理だから5年後においでw

497 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 01:22:07 ]
>>484
誤れ!アンドレイ・アンドレスクに誤れ!

498 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 01:31:45 ]
それにしても、クロージャ実現したことだし、
そろそろDにもラムダ記法導入して欲しいよね。

499 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 02:23:07 ]
>>497
誤ってるのはお前の書いた名前だw

500 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 06:06:19 ]
アインシュタインがオナニー言語を超えてるの、みたいな事を昔言ってた人が再び降臨したのか

501 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 06:38:16 ]
更新があったのかと思ったじゃないか
あーもーつまんね

502 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 07:27:12 ]
結局なんなの
実の無い話があっただけ?

503 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 07:40:38 ]
オナニー文章の中には頻繁にオナニー呼ばわりが登場する、
という毎度の傾向がまた一つ見られただけです。

504 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 08:34:10 ]
DMD 1.020 って事は GDC だとまだクロージャは使えないの?

505 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 18:09:03 ]
shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=all
これでもみておちつこうぜ



506 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 21:25:55 ]
g++に負けるのかー

507 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 21:32:53 ]
C++ ごとき風前の灯

shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=all&calc=Calculate&xfullcpu=1&xloc=1

コードが冗長過ぎだもんね

508 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 21:40:55 ]
>>507
生温い
ttp://tinyurl.com/39ap2z

509 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 22:34:47 ]
HDDが消去されます

510 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 22:48:14 ]
あるDLLからインポートライブラリ作って、ダイナミックリンクし、
このDLLの関数をmainから直に呼べば問題なく動くのに、
オブジェクト指向なラッパとして、クラスを作ってメンバ関数から呼ぶと起動すらできずに実行時エラー
「アプリケーションを正しく初期化できませんでした (0xc0000005)。」が出る。
このクラスをプログラム内で一回も使っていなくても、定義しただけで起動できなくなる。

こんな奇妙な現象に悩まされているのですが、一体どんな原因が考えられますか。

511 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 23:22:58 ]
>>510
再現コード+DLLを、どっかにアップしたらどう

512 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 00:28:08 ]
>>511
すみません。原因はわかってしまいました。

クラス定義があると、どうやらモジュールコンストラクタで使っているDLLよりも、
クラスのメンバ関数で使っているDLLが先にロードされて、
そのロード順の違いによって問題が出たり出なかったりするようです。

COM周りは本当によく分かりません。

513 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 12:41:58 ]
jscriptをちょっとだけやったことがある程度なのですが、
Winsockで簡易的なHTTPサーバーを作ろうと思い、
ためしにCで書かれたサンプルをDにしてみているのですが、
sockaddr_in型からsockaddr型への変換のところで詰まりました。

サンプルは
www.geekpage.jp/programming/winsock/http-server.php
のものです。

どうすればsockaddr_in型からsockaddr型への変換ができるのでしょうか。
Cでは (struct sockaddr *)&addrで変換しているようです。

514 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 13:14:18 ]
普通にcast(sockaddr *)すればいいんでない?

515 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 13:20:32 ]
>>514
ああ、それっぽいことをしていたのに真っ先に試すべきそれをやってませんでした。。。
どうもです。



516 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 06:32:42 ]
ヲルタンは1.0と2.0のコンパイラのソースをどうやって
管理してるんだろうなぁ
いつも更新同時にでるし。
#ifdefでわけてるだけなのかな

517 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 08:26:55 ]
>>516
ソース嫁

といいつつ見てみたけど #if V2 で分けてるだけに見えるな

518 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 11:29:14 ]
phobosに入れてもらおうと思ったらどうしたらいいのだろう
たまに誰かのがマージされてるみたいだけど

519 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 11:47:52 ]
をるたんに直談判

520 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 19:08:18 ]
518じゃないけど、
>>519
まじっすかwwwなぜdsourceにいったんだろうw

521 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 00:06:30 ]
変数に対するfinal指定がなくなってる…
コンストラクタで一度だけ初期化できるフィールドってどうやって書けばいいんだ

522 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 00:10:21 ]
finalとconstはinvariantと違って使い分けの基準が分かりにくい

523 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 00:11:32 ]
const 関連ごちゃごちゃしすぎて D 2.0 使う気が起きないっす。

524 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 03:21:59 ]
周辺ライブラリがきちんとconst/invariant修飾されるようになれば
使いやすくなると思うんだけどな

525 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 04:26:52 ]
たしかにD2.0はまだ未成熟のように感じる。
最低でもconst/invariant関連の仕様がいい具合になるまでは
D1.0+Tangoで当面様子見するのがいいかも。



526 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 07:18:04 ]
std.string内関数、引数がstringなのがうざすぐる

527 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 09:28:06 ]
phobos自体、,009の新しいルールに則ってなくて一部コンパイル通らんしな…

528 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 09:54:35 ]
それphobos2.libってどうやって作ってるの?

529 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 11:52:33 ]
Dはてんこもり過ぎね?
誰かD--言語のドラフト書いてくれよ

530 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 13:42:25 ]
>>526
同意。せめてin char[]にして欲しい。
おかげで無駄なキャストがわらわらと必要に

531 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 16:24:10 ]
D:\foo\bar\hoge\..\..\abc\def.txtという相対指定も含んだパスから
D:\foo\abc\def.txtというパスを取得する簡単な方法はありませんか?

532 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 22:16:30 ]
\ でsplitして .. があったら左側を消せば。

533 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 23:07:01 ]
.\..\.\..\

とかがあるんじゃね?

とか打ってみたらリズムが良くてわらた

534 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 23:15:00 ]
string shorten_path(string orig_path) {
string[] path = [];
foreach(dir; orig_path.split("\\")) {
if(dir == ".")
continue;
if(dir == ".." && path.length > 1) {
path.length = path.length-1;
continue;
}
path ~= dir;
}
return path.join("\\");
}

こんな感じでどうだろ

535 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 23:22:00 ]
string normalizePath(string path) {
auto a = path.split(`\`), b = new string[a.length], idx = 0;
foreach(e; a) {
switch(e) {
case ".":
break;
case "..":
if(--idx < 0) throw new Exception("invalid");
break;
default:
b[idx++] = e;
}
}
return b[0 .. idx].join(`\`);
}



536 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 23:25:43 ]
被ったorz

537 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 23:57:02 ]
534だけど
if(dir == ".." && path.length > 1) {

if(dir == ".." && path.length > 0 && path[$-1] != "..") {
でした。

538 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 13:03:37 ]
>>534-537
どうもです。
パスの正当性チェックを加えて使います。

539 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 14:37:06 ]
>>538
ま、WindowsならそのものずばりなAPIがあったりするが。

540 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 15:01:16 ]
>>539
似たような処理で、linuxやwebの不正なパスも調べようとしているので。
もしできれば参考までにその関数名を教えてくれると助かります。

541 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 17:16:46 ]
>>540
PathCanonicalize()
あ、不正かどうかのチェックではなく、相対指定の削除の方な。

542 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 20:56:30 ]
>>526, 530
dout.printf("%d\n".dup, 10);
.dupうぜええ

543 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 22:16:25 ]
>>542
でじこ・うさだ・ぷちこ

544 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 06:41:00 ]
DMD 2.010 & 1.026 リリース

545 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 10:03:31 ]
バグフィックスが主だね



546 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 11:28:13 ]
pureとな
何に使うんだろう

547 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 11:33:35 ]
まさかpure関数か?

548 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 11:56:36 ]
What's New for D 2.010
Jan 20, 2008
New/Changed Features
opAssign can no longer be overloaded for class objects.
WinMain and DllMain can now be in template mixins.
Added pure keyword.

549 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 17:30:10 ]
とりあえず1.026でwin32が通る。

550 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 01:38:01 ]
win32を使おうとすると出る>>110だが、関数ポインタ型の宣言が使っている所よりも後ろになっているところがあって、それが原因みたい。
Func func;
alias void function() Func;
というふうになっていると、そこでエラーになる。
rpcndr.dとか、rpcdcep.dとか。

だから、それを解消するように書き換えてやれば、使えるようになる。
alias void function() Func;
Func func;
というように。

まあ、ちょっと調べれば分かることだけど、とりあえず報告。


551 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 01:43:32 ]
Bugs Fixed
* Bugzilla 1319: compiler crashes with functions that take const ref arguments
* Bugzilla 1697: Internal error: ..\ztc\cgcod.c 2322 with -O
* Bugzilla 1700: ICE attempting to modify member of const return struct
* Bugzilla 1707: '==' in TemplateParameterList in IsExpression causes segfault
* Bugzilla 1711: typeof with delegate literal not allowed as template parameter
* Bugzilla 1713: foreach index with tuples and templates fails
* Bugzilla 1718: obscure exit with error code 5
* Bugzilla 1719: Compiler crash or unstable code generation with scoped interface instances
* Bugzilla 1720: std.math.NotImplemented missing a space in message
* Bugzilla 1724: Internal error: toir.c 177
* Bugzilla 1725: std.stream.BufferedFile.create should use FileMode.OutNew
* Bugzilla 1757: there is an fault in phobos windows api interface
* Bugzilla 1762: Wrong name mangling for pointer args of free extern (C++) functions
* Bugzilla 1767: rejects-valid, diagnostic
* Bugzilla 1769: Typo on the page about exceptions
* Bugzilla 1773: excessively long integer literal
* Bugzilla 1779: Compiler crash when deducing more than 2 type args
* Bugzilla 1783: DMD 1.025 asserts on code with struct, template, and alias
* Bugzilla 1788: dmd segfaults without info
* D.announce/11066: Re: DMD 1.025 and 2.009 releases

552 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 01:44:06 ]
ぺたぺた
やっと最初のやつ直ったのな

553 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 12:44:34 ]
Open Tech Press | プログラマの生産性を高める新たな言語「D」
ttp://www.itmedia.co.jp/enterprise/articles/0801/22/news058.html
これでD言語にも人気が出てくるといいな。

554 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 17:34:28 ]
>>541
へー、WindowsAPIってOSの機能を使うだけって思ってたんですがこういう関数も結構あるんですね。
ありがとです。

555 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 18:26:52 ]
functionをdelegateに変換!みたいなことってできないの?



556 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 18:37:44 ]
>>553
>GDCはDMDとは違って今のところはまだ標準に100%の準拠はしていない。
標準?そんなものあったの?

557 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 18:50:09 ]
>>556
ウォルたんのページに書いてるのが標準。ただし、頻繁に変わるw

558 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 18:56:03 ]
>>555
delegateは実はただの構造体のようなもの。

TR delegate(TA) toDelegate(TR, TA...)(TR function(TA) fn) {
typeof(return) dg;
dg.ptr = null;
dg.funcptr = fn;
return dg;
}

559 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 19:07:24 ]
>>558
それスタックずれる

560 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 19:13:03 ]
じゃあこうかな

TR delegate(TA) toDelegate(TR, TA...)(TR function(TA) fn) {
return delegate TR(TA args){ return fn(args); };
}

561 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 21:49:56 ]
private struct FunctionCaller(R, A...)
{
R call(A args)
{
return (cast(R function (A))this)(args);
}
}

R delegate (A) todg(R, A...)(R function (A) func)
{
FunctionCaller!(R, A) c = void;

auto res = &c.call;
res.ptr = cast(void*)func;

return res;
}


562 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 06:33:07 ]
>>558-561
なんでそんなに詳しいんだ

563 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 12:23:38 ]
>>557
そのアップデート速度がDの魅力。
仕様が10年も変わっていないC++には真似ができない。
ただ、最近はDMDの更新が遅いと思い始めた。病気だろうか。

564 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 13:49:37 ]
>更新が遅い
超わかりすぎるw


565 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 14:07:56 ]
機能追加されるたびに「迷走しすぎじゃね?」とか書き込むけど、バグフィックス中心の更新だとなんか寂しい俺は既に完全調教されているのか。



566 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 15:29:41 ]
>>563,565
よう俺

567 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 16:56:03 ]
さびしがりやさんかわいい

568 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 21:17:05 ]
>>550
その手直しされたファイル群をうpしてくれ

569 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 22:08:47 ]
if (s[$ - 2 .. $] == "\r\n")
if (s[$ - 1] == '\n' && s[$ - 2] == '\r')

文末にCRLFがあるか調べるだけの条件式ですが、
これらは似たようなものなのに、後者の方が6倍ほど速くなるのは何ででしょうか?

570 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 22:23:29 ]
>>569
文字列の比較か整数の比較か。

571 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 23:27:42 ]
>>569
一番大きいのは配列比較関数を呼び出すオーバーヘッドじゃなかろうか。

572 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 01:14:43 ]
>>570-571
いろんな理由があるんですね。
でも、どっちにせよ10000000回まわしてやっと差が二秒出る程度なのであまり気にしないことにします。

573 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 10:40:33 ]
DでつくったCOMサーバにTypelibを埋め込むにはどうしたらいいんだぜ?

574 名前:573 mailto:sage [2008/01/25(金) 10:49:57 ]
言葉足らずすんません
DでつくったCOMをC#からつかってみようと思ったんだけど、
登録できなくて、いろいろしらべたら、タイプライブラリが組み込んでないからだと
思うようになったんです。

以下C++でDのサンプルにあるdserver.dを呼び出す方法です
GUID CLSID_Hello = { 0x30421140, 0, 0, {0xC0,0,0,0,0,0,0,0x46} };
GUID IID_IHello = { 0x00421140, 0, 0, {0xC0,0,0,0,0,0,0,0x46} };
HRESULT hr;
class IHello : IUnknown {
public:
virtual int STDMETHODCALLTYPE Print()= 0;
};
IHello* pIHello;
hr=CoCreateInstance( CLSID_Hello, NULL, CLSCTX_ALL, IID_IHello, (void**)&pIHello);
pIHello->Print();

575 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 14:31:29 ]
IDLを書いて、midlでタイプライブラリにコンパイルして、typelib型のリソースとしてリンクすればいいんじゃなかろうか。



576 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 16:28:14 ]
Ubuntu (amd64) 上でのGDC (amd64) で、Tango使えますか?
↓ここには、バイナリはi686用しか用意してないって書いてますが...
www.dsource.org/projects/tango/wiki/GdcDownloads

ソースから自力コンパイルするといいのかしらん。


577 名前:573 mailto:sage [2008/01/25(金) 16:46:13 ]
>>575
VisualStudioで適当なActiveXプロジェクトをつくって
そこでできたresファイルをDMDにくわせたら・・・
うをを、登録できた!
これで575さんの言うとおりの事をやればいける予感です
 ありがとうございます!






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

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

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