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"); } } >>842 すまん、こっちの環境はWindows10(64bit) 、DMD32 D Compiler v2.079.1 だわ でも俺の環境だと2.074.1でコンパイルしても落ちたわ -g -debugオプション付けて>>842 と同様のコードで例の手順やって出るエラーログが以下↓ object.Error@(0): Access Violation ---------------- 0x00425935 in write 0x00421A6D in fflush 0x004028A0 in @safe void std.stdio.File.LockingTextWriter.put!(char).put(char) at D:\develop\dmd2\windows\bin\..\..\src\phobos\std\stdio.d(2788) 0x00402263 in @safe void std.stdio.writeln!(immutable(char)[]).writeln(immutable(char)[]) at D:\develop\dmd2\windows\bin\..\..\src\phobos\std\stdio.d(3582) 0x004021EC in _Dmain at D:\library\projects\d\d_error_test\main.d(6) 0x00402C5B in D2rt6dmain211_d_run_mainUiPPaPUAAaZiZ6runAllMFZ9__lambda1MFNlZv 0x00402C1F in scope void rt.dmain2._d_run_main(int, char**, extern (C) int function(char[][])*).runAll() 0x00402B20 in _d_run_main 0x00402908 in main at D:\library\projects\d\d_error_test\main.d(7) 0x00420775 in mainCRTStartup 0x75538654 in BaseThreadInitThunk 0x774E4B17 in RtlGetAppContainerNamedObjectPath 0x774E4AE7 in RtlGetAppContainerNamedObjectPath ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.1 2024/04/28 Walang Kapalit ★ | Donguri System Team 5ちゃんねる