D言語 Part34©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
あ、非対称っていうのは勘違いだったかもごめ。
http://dpaste.dzfl.pl/4e7956f36a47
これで解決や!どうもありがとう!
>>341 WindowsでCOMを使った7zipのbindingはもっとすんなりいきましたよ。 自分のクラス(Fuga)を定義していて string へ変換するときに
Fuga f("hage");
string hoge = f;
みたいな書き方をしたいのですが
どんなメソッドを作っておけば良いのですか? Fuga f = new Fuga("hage");
string hoge = f;
です class Fuga {
private string s_;
this(string s) { s_ = s; }
alias s_ this;
} alias s_ this; とは驚きですが
Fuga f = new Fuga("123");
int i = f;
としたときでも i に 123 が入るようになりますか?
条件後出しですみません ちなみに
Fuga f = new Fuga("123");
string s = f; // なら s = "123"; と同じ
int i = f; // なら i = 123; と同じ
という意味です
これも alias だけで出来てしまうんでしょうか? そういうのはたいてい変数に移して終わりじゃなくて、その先があるでしょ
例えば関数に渡すならその関数をテンプレートでうまくまとめるのが D流
単に出力するだけなら writeln(f) ここを参考に
http://www.kmonos.net/alang/wnd/topics/winapi.ja.html
Win32API を使って drag & drop を実装してみたところ
case WM_DROPFILES: の中で
HDROP dr = cast(HDROP)wp;
TCHAR[] buf = new TCHAR[MAX_PATH];
int l = DragQueryFile(dr, 0, buf.ptr, buf.length);
if(l < buf.length) buf[l] = 0;
string bs = to!string(buf[0..l]);
version(Unicode){
writefln("0: %s", to!string(bs.toMBSz()));
string name = bs;
}else{
writefln("0: %s", bs);
string name = fromMBSz(bs.toStringz());
}
writefln("1: %s", name);
とすると
drag & drop したファイル名が 「森鷗(環境依存文字2)外(環境依存文字3)る.ext」 のとき
最後の name の表示が -version=Unicode したときとしないときで結果が違います
toMBSz と fromMBSz とで不可逆なのは判るのですが
MBSz -> UTF8 するときも結果が違うのは何故でしょうか?
(ただし表示は違うのですが同じファイルが対象になってちゃんと動作します) >>351
Multiple AliasThisを使えば可能
もちろんコンストラクタ内で変換して保持とかする必要はあるけど
……なので実装されるのを楽しみに待っててくれよな! >>353 SHIFT-JISに含まれてない文字だから仕方ないとおもわれ。
DragQueryFileAの方ではかわりに 63(ASCIIのハテナマーク)が送られてきてる。
A付関数のことなんて早く忘れるんだ! string valueOf(){ return s_; }
int valueOf(){ return to!int(s_); }
alias valueOf this; >>356
不思議なのは *A バージョンの方でも正常に動作してるって所なんだよね 上は Utf16->Utf8->SJIS で余計な変換してるからじゃないの >>358
A版の内部処理でことごとく文字化けしてるから
文字化けしたファイル名がマッチするせい >>360
わたしもそう思ったんですが
出来上がった hoge.7z ファイルの中の
ファイル名は文字化けしておらず正常なんです >>361
?が1文字マッチのワイルドカードってのは関係してない? あれ、戻り値だけ違う関数ってオーバーロードできたっけ? 宣言はできるけど使えない
左辺値から型推論とかしてくれると嬉しいんだけどね T valueOf(T)(){ return to!T(s_); }
これもうまくいかんな 明示cast必須になるけど
T opCast(T)(){ return s_.to!T; } alias hoge this; しなくてよくなるからありがたいね Advent Calendar面白かったよ。
書いた人たち乙です。 冬休み中にAdventCalendarゆっくり読む
楽しみだなあ。書いた人たち乙〜。 https://github.com/D-Programming-Language/dlang.org/commit/77324039087e9283f40244195857c2f9fd4712eb#diff-59280080f58c2ff747f066c5b0b2fcebL423
- $(LI As a first programming language - Basic or Java is more suitable
+ $(LI As a first programming language - Python or JavaScript is more suitable
時代の流れを感じる
Basicの方が初めてのプログラミングには良いと思うんだがなぁ まあ妥当と思う。Basicって括りがざっぱだけど、
(N-88とかそういう)BASIC → まあやらんでええやろ。行番号とか。ねえ?
VB → PowerShellが出てシリスボミ感がある。
Python → 個人的にはtkinterの存在がでかい。
JavaScript → すぐ遊べる。すぐ自慢できる(←重要
あとは英才教育的な観点からならプログラミンとか? 時代は Elixir ですよ
D でもいいけど
すぐ自慢できるのは Python だろ std.experimental.yeslolitanotouch 64bitのWin32対応DLL作りたいんだけど? あれ途中で切れた。
dmd -m64 -shared mydll.d dll.d mydll.def >>384 それぞれ書かれた時期が違うんじゃまいか DMD で単純な x64 バイナリを作るところまでは行けてるんでしょ?
Win32 DLL も作れるんでしょ?
x64 で Win32 App と結合できるかって話でしょ?
出来ないと思うけど ブリッジ役のDLLも用意して64<-->32間をプロセス間通信でうんたらかんたら >>336
> DのIUnknownの宣言のReleaseの後にダミーのメソッドを、
> ・2個追加することでC++で実装されたinterfaceをDから呼び出すことが、
> ・1個追加することでDで実装されたinterfaceをC++から呼び出すことが、
> それぞれできたのですが、とてもまともな解決策とは思えません。
https://issues.dlang.org/show_bug.cgi?id=15589#comment_text_0
やっぱりダミーを追加するしかないらしい わぁ!どうもありがとう!まだ書きかけ&お粗末ですが、その時の成果物です。
https://github.com/garlic-flavor/D7z
ツッコミ/プルリクお待ちしております。m(_ _)m いつのまにか公式が改装してた
なんかすごくプログラミング言語の公式ページっぽい /r/programming 見てるとほぼ毎日Dの記事があって、ついに時代がきたか感がある scope(exit)はスコープ抜けるときに実行されるけどさ、
呼び出し元のスコープ抜けるときに実行されるような処理を書く方法って存在しないのかな
例えば
foo(){
hoge();
}
で、hoge()の定義内に書いてfoo()の最後に実行されるようなやつ 部品化の概念を否定するその硬派な姿勢、俺は評価するよ >>394-396
scoped型をhogeが返せばいいんじゃね、って思ったけど
もうscoped型って無くなったんだっけ? std.datetime.measureTime がそんなんだったような。 core.sys.windowsのナカミがおきかわっとるー\(・∀・)/ もしかしてdmcって64bitのコンパイルオプションないの? ないっしょ
16bit ならまだあるかもしれない
それに optlink まで含めると 32 ですら騙し騙し使ってる状況 今さらだけどD用のお勧めのGUIライブラリある?
マルチプラットフォームで。 自分でメンテする気があれば正直どれでもいいし
そうじゃなければ D でGUIなんて考えないほうがいい LDCからEmscripten通してHTML5にでも変換したほうがいいんじゃない?(適当) 時代は io.js + Electron ですねわかります ぜんぜんわからない
D普及のために、できるだけわかりやすく情報を提供してください。切に望みます Cのインタフェースがていきょうされていれば、利用できる
これが鍵なんだろうけど、初心者むけではない わからんわからんわからんわからんわからんわからんわからんわからん 自分は何がしたいのか、何ができなかったのか
情報がなければ答えようもなかろう >>408
DlangUI、結構良さそう
使ったことある人いたら感想聞きたい >>408
dクス
やっぱDWTが定番かー
DlangUI、最初のmixinが美しくないなぁ・・・・・・(笑)
>>409
あれ、Dの利点あんまりないですやん>< DでwrapしたPythonObjectでwxPython使ったら意外と便利だったな DFLがマルチプラットフォームになれば文句ないんだがなぁ どうしてもマルチプラットフォームが必要なら
HTML5 でどうにかする方が現実的 もう仕様固まってきて大きな動きないのにサードパーティのライブラリが整備されないのは
Dが今まで積んできた業かな Oh my D-lang, Oh my D-lang,
Oh my D-lang Clementine. ライブラリが整備されないのはなぜ? ユーザーが少ないから
ユーザーが少ないのはなぜ? ライブラリが整備されないから コンパイル時にテキスト読み込んでさ、
行数の数だけ文字列mixinして関数作りたいんだけど
任意回数の文字列ミックスインのループってどう書くんだろう・・・・・・。 >>431
先に文字列加工して最後にまとめてミックスイン出来ないのん? 本家に追いつくのは無理だから mingw で動くように戻しておくれ >>436
過去に仕様変更し過ぎたせいでD言語=仕様変更っていう認識が一般に広まったせいじゃね? >>431
mixin template loop(string s,r...){mixin(s); mixin loop!(r);}
mixin template loop(string s){mixin(s);} 信用は一度失うと取り戻すのは困難ってことさね
D言語について少しでも調べてもらえば今そうでないのはわかることだから、
D言語を知らない人がD言語に触れる機会を増やす・・・
つまりD言語で書かれた一般向けアプリがもっと出ればいいわけだ
よし!あとはまかせたぞ! もう Julia でいいような気がしてきた
手遅れかもな ■ このスレッドは過去ログ倉庫に格納されています