...ing logging 4.0

はてなブログに移行しました。D言語の話とかいろいろ。

DWT 事始め

build main -Ic:\d\dmd\import -w -d -gui -names

ってな具合に,とりあえず最小構成のサンプルをコンパイルすることから始めてみた.
setText() を見ると Java 用なんだなぁと思い知らされる.
D言語の機能を最大限に利用したライブラリが欲しいよね,やっぱり.
ちなみにコメントが残ったままなのはご愛敬ということで.
しかしこんなにたくさん .lib をリンクしなきゃいかんもんかね?

以下,ソース.

  • main.d :
version (build)
{
    debug
    {
        pragma (link, "dwtd.lib");
    }
    else
    {
        pragma (link, "dwt.lib");
    }
    
    pragma (target, "hello");
    
    //pragma (link, "hello.res");
    
    pragma (link, "advapi32.lib");
    pragma (link, "comctl32.lib");
    pragma (link, "gdi32.lib");
    pragma (link, "shell32.lib");
    pragma (link, "comdlg32.lib");
    pragma (link, "ole32.lib");
    pragma (link, "uuid.lib");
    pragma (link, "phobos.lib");
    
    pragma (link, "user32_dwt.lib");
    pragma (link, "imm32_dwt.lib");
    pragma (link, "shell32_dwt.lib");
    pragma (link, "msimg32_dwt.lib");
    pragma (link, "gdi32_dwt.lib");
    pragma (link, "kernel32_dwt.lib");
    pragma (link, "usp10_dwt.lib");
    pragma (link, "olepro32_dwt.lib");
    pragma (link, "oleaut32_dwt.lib");
    pragma (link, "oleacc_dwt.lib");
}

//private import dwt.all;
private import dwt.widgets.shell;
private import dwt.widgets.display;
private import dwt.layout.filllayout;

void main()
{
    Display display = new Display();
    Shell shell = new Shell(display);
    
    shell.setLayout(new FillLayout());
    
    //ControlExample inst = new ControlExample(shell);
    //shell.setText(ControlExample.getResourceString("window.title"));
    shell.setText("dfl sample");
    //ControlExample.setShellSize(display, shell);
    
    shell.centerWindow();
    shell.open();
    
    while (!shell.isDisposed())
    {
        if (!display.readAndDispatch())
        {
            display.sleep();
        }
    }
    //inst.dispose();
}