`
kuan
  • 浏览: 15209 次
  • 性别: Icon_minigender_1
  • 来自: 台灣
最近访客 更多访客>>
社区版块
存档分类
最新评论

利用Poseidon編譯新版的DWT(Base on SWT3.3.2)

阅读更多
如不習慣安裝及使用DSSS,可以試著用Poseidon編譯新的DWT:


1. 首先假設您還沒下載DMD及Tango,請到http://downloads.dsource.org/projects/tango/snapshots/tango-bin-win32-CURRENT-dmd.1.029.zip下載DMD及Tango的同捆包並安裝,假設我安裝在D:\DMD1029Tango底下.

2. 到http://hg.dsource.org/projects/dwt-win/archive/tip.zip下載dwt-win,然後把zip檔中的dwt安裝到D:\DMD1029Tango\import底下(變成dwt-win位於D:\DMD1029Tango\import\dwt)

3. 下載額外的庫到http://downloads.dsource.org/projects/dwt/dwt-win-importlibs.zip並解開到D:\DMD1029Tango\lib底下,並覆蓋原有的庫.

4. 開啟poseidon,開啟專案,把專案目錄設為D:\DMD1029Tango\import\dwt,把專案Type設為Static Library, 並按下最右下的Import All自動載入所有新的dwt的文件.

5. 編譯release版本或偵錯版本請記得把專案名稱重新命名.

6. 到Compiler options設定,如要編譯release版本,就勾選-O -realease -inline,偵錯版本就請勾選-debug -g, 之後也把-op打勾.

7. 到Lib Options,將set page size勾選,並雙擊設定page size,release版設為128;偵錯版設為256

8. 按下OK儲存設定結果,此時parser設定若有選擇Use Autocompletion會開始分析,需要一點時閒,此時會類似當機,請耐心等一下(我的多線程程式碼在這裡老是導致Poseidon crash,我也不知為什麼?....... )

9. 文檔載入後,開啟DWT.d,修改下列源碼:
把:
version(build){
    pragma(link, "advapi32");
    pragma(link, "comctl32");
    pragma(link, "comdlg32");
    pragma(link, "gdi32");
    pragma(link, "kernel32");
    pragma(link, "shell32");
    pragma(link, "ole32");
    pragma(link, "oleaut32");
    pragma(link, "olepro32");
    pragma(link, "oleacc");
    pragma(link, "user32");
    pragma(link, "usp10");
    pragma(link, "msimg32");
    pragma(link, "opengl32");
    pragma(link, "shlwapi");
    //pragma(link, "gdiplus"); // load dynamic
    //pragma(link, "uxtheme"); // load dynamic
}


改成:
version(build){
    pragma(link, "advapi32");
    pragma(link, "comctl32");
    pragma(link, "comdlg32");
    pragma(link, "gdi32");
    pragma(link, "kernel32");
    pragma(link, "shell32");
    pragma(link, "ole32");
    pragma(link, "oleaut32");
    pragma(link, "olepro32");
    pragma(link, "oleacc");
    pragma(link, "user32");
    pragma(link, "usp10");
    pragma(link, "msimg32");
    pragma(link, "opengl32");
    pragma(link, "shlwapi");
    //pragma(link, "gdiplus"); // load dynamic
    //pragma(link, "uxtheme"); // load dynamic
}
else
{
    pragma(lib, "advapi32");
    pragma(lib, "comctl32");
    pragma(lib, "comdlg32");
    pragma(lib, "gdi32");
    pragma(lib, "kernel32");
    pragma(lib, "shell32");
    pragma(lib, "ole32");
    pragma(lib, "oleaut32");
    pragma(lib, "olepro32");
    pragma(lib, "oleacc");
    pragma(lib, "user32");
    pragma(lib, "usp10");
    pragma(lib, "msimg32");
    pragma(lib, "opengl32");
    pragma(lib, "shlwapi");
}


10. 記得把Poseidon內的DMD Path及DMC Path設定到剛安裝的DMD目錄上,按下ReBuild開始編譯!完成後即可得到庫.

11. 其它不同的庫其實也可以應用上述的方法,Enjoy......
分享到:
评论
1 楼 kuan 2008-05-04  
至於這種方式方不方便,我想見仁見智,Poseidon主要是調用DMD來完成所有的工作,就如同在console命令列下指令,我想應該是可以避免一些錯誤,不然也可以在Output視窗內很清楚觀察下的命令列指令為何,除非是Poseidon下的指令錯誤,不然今天若有問題產生,我想是比較容易釐清,畢竟命令列指令都有問題了,更何況其他的方法?



相关推荐

Global site tag (gtag.js) - Google Analytics