D言語 Part34©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
ちょっとしたexeで.NETとかないわーと思ったけど、GUIならまあしょうがないのか
人によってちょっとしたexeの範囲も違うんだな VisualD残念過ぎるな
エクスプローラからのフォルダやファイルの管理がゴミすぎる
見た目通りにフォルダが出来てないし、どこにファイルが作られるのかもわからんのがやばい。
まずはこういう基本的なことからまともに作ってけよ。 ちょっとしたってのは
メモ帳やviで書けるレベルの100行にも満たないって
レベルだったんだけど・・・
IDEを使うレベルは
ちょっとしたじゃないイメージ 基本的にWindowsユーザーは作業用VisualStudioを常時開いてるからな。
ちょっとした作業は適当にC#で書いてそのままVisualStudioから実行してる。
実際にはexeを作ってすらいない。スクリプトを書いてるような感覚で使てる。 いや結構そういう感じだわ俺
実行するとたまに結果が微妙に違うなと思ったら、普段VS上からデバッグバージョン実行してて、リリース版上書きするの忘れてるだけだったり 質問はここでいいですか?
Windows で DLL を作ろうとしています。
https://wiki.dlang.org/Win32_DLLs_in_D
を見てやってみましたが、コンパイルできず、LNK1561 になります。
dmd -m32mscoff -ofx86\test.dll dllmain.d test.def
dmd -m64 -ofx64\test.dll dllmain.d test.def
リンカが MS のものを使っているためこのエラーが出ると思うのですが、
エントリーポイントをどのように指定すればよいのかわかりません。
わかる方ご教示いただけませんでしょうか。
DMD のバージョンは 2.076.0、VS のバージョンは 15.3.4 です。 defなしでも同じ結果になりました:
LINK : fatal error LNK1561: エントリー ポイントを定義しなければなりません。 -shared で 32bit、64bit とも作成できました。
ありがとうございました。 dmd2\samples\d\mydll\build.bat
には入ってなかった(戦慄)
-shared って割と最近の変更だしな これでGUIアプリ作るならウィジェットはナニを使えば良いんだー やめとけ
と一蹴したいところだが、あえて勇者に DlangUI を勧めてみよう ファイル、フォルダの命名規則がクソすぎる
別に無視してもかまわんだろうけど https://github.com/Dgame/Dgame
クソ命名規則を無視している優良プロジェクト
みんなもクソ命名規則は無視しよう private this()
だけでコンパイル通るのが糞だわ。
{}が無いのに。
ライブラリ作った時点では何もないのに
リンク時にエラーとして出てくるとかやめれ。 単体テスト書いてそれを通すまでがライブラリ作成ですよ 連想配列に環境依存のバグがありそう
使ってるクソライブラリが端末によってエラーになるし糞かよ 2.077.0
テンプレート使うと修飾名がありえないほど長くなるという昔からの問題が改善された
ライブラリとか一通り注意すべし あれはGC使いたくない&ランタイムのデカさが気にならない巨大アプリ特化みたいなところある
Dの対抗はgoとかnim システムプログラミング言語なのでアプリ特化ってことは無いよ
下層も上層も両方いける スレ違いかも知れないが、D言語初心者だけど質問しても良い? D言語に関する質問はどこのコミュニティがオススメですか?
stackoverflowもteratailもあまり活発ではなさそうなので
D言語のエラー・バグ・問題の解決方法|teratail
https://teratail.com/tags/D%E8%A8%80%E8%AA%9E
新着の 'd' 質問 - スタック・オーバーフロー
https://ja.stackoverflow.com/questions/tagged/d >>781
rustは巨大なランタイムとツールチェインがネックになって
ガチのシステムプログラミングには使えないと踏んでる
あと小物にも向かない。lsやechoみたいなコマンドが何MBもあったら嫌だろう それってコンパイラが進化してもどうにもならんことなの? >>788
lsやechoをrust,d,c++,go,swiftで書いて比較でもしたの? rust はダイナミックリンクすれば小さくなるよ。 実際のとこは知らんがしばらくRust追っててランタイムが巨大とか初めて聞いたわ
試しにいくつかreleaseでビルドしてみたが大量のcrate使ってるやつは10MB超えてて
少なめの奴は300KBくらいだった
まあそりゃライブラリコミコミなら大きくなるわな ま、スタティックリンクで数kbからにならないとCの置き換えは不可能 C++を駆逐すると思っていた時期が私にも有りました 標準ライブラリの関数の名前の付け方がJavaっぽくて嫌なところ以外は好きだよDくん 2.078.2
dwt もアップデートされたらしいぞいぞい
>>800
Win なら Visual D 2.079
新機能大爆発なのに人がおらんぞー
そういえば公式の D Tour に日本語訳ついててのけぞった
https://tour.dlang.org/tour/ja/welcome/welcome-to-d >>802
Tour のインストールしましょー!のページで 2.074 にリンクされてるのを見てしまった
(ノ∀`)アチャー いやだってもうオワコンだろこれ
というか始まってもないというか 個人的に00年代前半の頃はC/C++後継として期待してたんだけどな
なにやっとんねんと言いたい
勿体無い 聞こえるぞ
D3 を唱えようといううぉるたんの鼓動が… Rustやったことないけど
どうせ綺麗なメタプログラミングパズル解いてホルホルしてるだけで終わるだけの
実用的じゃない言語だと思う。
Caml書いてた俺だからわかる。 C/C++の後継は完全にGoにもってかれたね
うぉるたんはどう考えてるのか知らないけど goroutineが有効な用途ならともかく
それ以外はD言語のほうが遥かにいいと思うんだけどなあ。何が命運を分けたのか rubyの埋め込み文字列みたいなのできる?
"hoge=#{hoge}"
みたいなの >>815
頻繁に変わる言語仕様も問題と言えば問題だけど
やっぱ一番はライブラリっつーか周辺やろ… Dはクラス使えばいいのかと思いきや構造体推奨ってのが初見殺しすぎる >>820
推奨ってことはない
俺はほとんどクラスしか使わないしGC上等
まあクラスの派生とか皆無だし
vtable も邪魔に思えてきたけどw それを言うならD言語だってC++の後継にはなんないわけで
そしてDとgoは割と被ってる。方向性は逆を向いててもターゲットとしている領域が goって他のVM使わない静的言語と何が違うんだよ。
実行速度が早いと言われているOCamlと何が違う? Cとの競合をはっきり掲げる Zig とかいう LLVM 言語が出てきてるな
https://ziglang.org/
Cのヘッダをそのまま読み込む?とかすげーこと書いてる…
まだ情報少ないし俺は調べないけど興味ある人よろ いい言語ですね!
前に進めてください!!
(感涙) いつの間にやら契約プログラミングのbody使う場面でdoを使えって話になってるな DがしっかりしてればGoだのRustだのでてくる余地はなかったのに 所詮はコミュニティベースの開発だからな
GoogleやMozillaみたいな企業ベースに対抗するのはコアメンバーのモチベーションや運に依存する
そういう意味ではRubyやPythonってすげーな Dで作ったWindowsコンソールアプリで標準出力に文字列が流れ続けてるところに
例:while ( true ) { writeln( "hoge" ); }
クリックで文字列選択したあと右クリックすると
Access Violationで落ちる現象どうにかならんもんか
writeだろうがlogger.logだろうがprintfだろうがputsだろうが落ちる
VCのCコンソールで作ったコンソールアプリだとこんな事起きないのに
これの対策がtry-catchでErrorクラスをトラップとか馬鹿げてる 落ちない場合もあったんで最小コードを探ってみたところ
これ↓だと>>837の操作をしても落ちなかった
import core.sys.windows.windows;
import std.stdio;
void main()
{
SetConsoleOutputCP( CP_UTF8 );
while ( true ) writeln( "ほげ" );
}
出力が"hoge"だとSetConsoleOutputCP呼び出しの有無に拘わらず落ちる
SetConsoleOutputCPを呼んでいない場合は出力の内容に拘わらず落ちる
SetConsoleOutputCPを呼んでいる場合は出力が"ほげ"だと落ちないが"ほげhoge"だと落ちる
どうしてそんな事になるのかワケワカメ [[[ ][ ]]]\[[]] [[[]]]],[[[ [][] ] >>837>>839
再現しませんでした
Windows7(32bit)
DMD32 D Compiler v2.074.1
LDC - the LLVM D compiler (1.3.0): based on DMD v2.073.2 and LLVM 3.9.1
試したコンパイルコマンド
dmd -w -m32 main.d
dmd -w -m32 -debug main.d
dmd -w -m32 -O main.d
ldc2 -w -m32 main.d
ldc2 -w -m32 -O main.d
試したコード
import std.stdio;
void main() {
while (true) {
writeln("hoge");
}
} ■ このスレッドは過去ログ倉庫に格納されています