StandardOutput.ReadLine() doesn’t work until the app exits??? – C# / C Sharp answers
http://bytes.com/topic/c-sharp/answers/612388-standardoutput-readline-doesnt-work-until-app-exits
Launching a process and displaying its standard output / General / C# Официальный сайт справочников World C++, World C#, ASM World
http://netcode.ru/dotnet/?lang=&katID=30&skatID=261&artID=7026
win32 GUI app that writes usage text to stdout when invoked as “app.exe –help” – Stack Overflow
http://stackoverflow.com/questions/54536/win32-gui-app-that-writes-usage-text-to-stdout-when-invoked-as-app-exe-help
AllocConsole()和AttachConsole()_编程笔记
http://hi.baidu.com/wuxicn/blog/item/1a14874602a2ce016a63e5c2.html
控制台应用程序与Windows应用程序_Happiness of Programing
http://hi.baidu.com/silyt/blog/item/5a67373ebb38d93870cf6cc3.html
在GUI程序中使用控制台的两种方法-方法.2 – 笔记 – 南郁 – CSDN学生大本营
http://student.csdn.net/space.php?uid=112600&do=blog&id=12217
让WPF窗体程序支持命令行方式运行的三种方式_雨枫技术教程网
http://www.fengfly.com/plus/view-83237-1.html
如何让WinMain程序像main程序一样在console中输入输出 — 编程爱好者论坛存档帖
http://www.programfan.com/club/showpost.asp?id=7517
CodeProject: QuickWin – Turn a console application into a Windows program. Free source code and programming help
http://www.codeproject.com/KB/dialog/quickwin.aspx
Code, Software …
http://www.rootsilver.com/2007/08/how-to-create-a-consolewindow
WinMain(windows程序的运行原理以及VC++的实现过程)_Ctrl+C
http://hi.baidu.com/neteasier/blog/item/f48075fa9cfdb716a9d31157.html
strcat_s 和 strcat 的区别_百度知道
http://zhidao.baidu.com/question/102856857.html
终于学会strcat_s了_dtx08_新浪博客
http://blog.sina.com.cn/s/blog_60c90f4b0100f2j3.html
先ps一句:网络这个东西是好,但是也容易以讹传讹。大家都图省事,结果把假的。错误的东西都传博出去了。
strcat_s脱胎于strcat,用于两个字符串的链接,strcat(str1,str2)直接返回新的str1.
但在vs2005后,为了安全起见,重新添加了些功能和api和以前不同。比如strcat_s.
为什么是安全起见呢?对于老的你添加str2的时候如果st1溢出怎么办?很明显这就是需要改进的地方。
所以新的strcat_s规定,有三个参数,必须指定str1的大小。所以应该这么来
char string[20]=”123″;
strcat_s(string,sizeof(string),”456″);
printf(“%s”,string);这样20个元素,足够装下123456了。
VC 取得程序所在目录的方法 – 晴阳Blog – 博客园
http://www.cnblogs.com/cnLiou/archive/2009/04/29/1445800.html
char pLocalPath[255];
memset(pLocalPath, 0, sizeof(pLocalPath));
GetModuleFileName(AfxGetInstanceHandle(), pLocalPath, sizeof(pLocalPath));
pLocalPath[strrchr(pLocalPath, '\\') - pLocalPath] = ‘\0′;
AfxMessageBox(pLocalPath);
以下函数是网上有人写好的, 稍微复杂点:
CString CXXXXXXApp::GetCurDir()
{
TCHAR sDrive[_MAX_DRIVE];
TCHAR sDir[_MAX_DIR];
TCHAR sFilename[_MAX_FNAME],Filename[_MAX_FNAME];
TCHAR sExt[_MAX_EXT];
GetModuleFileName(AfxGetInstanceHandle(), Filename, _MAX_PATH);
_tsplitpath(Filename, sDrive, sDir, sFilename, sExt);
CString homeDir(CString(sDrive) + CString(sDir));
int nLen = homeDir.GetLength();
if(homeDir.GetAt(nLen-1) != _T(‘\’))
homeDir += _T(‘\’);
return homeDir;
}
Adding Console I/O to a Win32 GUI App
http://www.halcyon.com/~ast/dload/guicon.htm
基于对话框的应用程序也可以有命令行输出窗口 – ziren235的专栏 – CSDN博客
http://blog.csdn.net/ziren235/archive/2006/11/13/1381736.aspx
基于对话框的应用程序也可以有命令行输出窗口_阿笨猫的窝
http://hi.baidu.com/abenmao32032/blog/item/1c736450e53520551138c27a.html
RedirectIOToConsole(“ “);
MFC中重载std::cout就可以使用cout – 沙加的日志 – 网易博客
http://ygdljg.blog.163.com/blog/static/54601046200893042229423/
MFC中重定向stdout,可以使用cout了! – swordzjj的专栏 – CSDN博客
http://blog.csdn.net/swordzjj/archive/2007/12/05/1918811.aspx
VC点滴 之 WinMain(windows程序的运行原理以及VC++的实现过程) – C/C++
http://www.host01.com/article/software/cc/20060917232844235.htm
Win32应用程序下的自定义消息使用问题 VC/MFC / 基础类 – CSDN社区 community.csdn.net
http://topic.csdn.net/t/20030313/12/1525734.html
VC中自定义消息实现_流水不腐 户枢不蠹
http://hi.baidu.com/dongxiang2007/blog/item/33b6831b7c6d2bf8af5133bc.html
Console: Demonstration of the Console Functions
http://msdn.microsoft.com/en-us/library/aa263818(VS.60).aspx
创建CMD进程,并且不关闭,怎么样读取CMD中信息显示到控件上。
http://topic.csdn.net/u/20091017/01/14ecfe58-80f4-4d1c-87e1-14038f9ddd4b.html?37868
Win32 vs QT vs GTK vs Wxwidgets? – Yahoo! Answers
http://answers.yahoo.com/question/index?qid=20081024053658AAFeO2h
GTK, Qt ou wxWidgets ? « Forum informatique & développement – yAronet – Attention : forum addictif !
http://www.yaronet.com/posts.php?sl=&s=114193
[GUI, python] which GUI toolkits?? TK vs. QT vs. wxWidgets vs. GTK….. – Ubuntu Forums
http://ubuntuforums.org/showthread.php?t=825451
Comparison of GTK+, Tcl/Tk, Qt, wxWidgets
http://mail.gnome.org/archives/gtk-app-devel-list/2006-October/msg00086.html
wxWindows, GTK+ or Qt? – CodeCall Programming Forum
http://forum.codecall.net/c-c/5923-wxwindows-gtk-qt.html
The Design of Software – wxWidgets or Qt or Gtk or ???
http://discuss.joelonsoftware.com/default.asp?design.4.685165.12
The Unix Geek: GTK vs QT
http://theunixgeek.blogspot.com/2007/10/gtk-vs-qt.html
The Unix Geek: GTK vs QT
http://theunixgeek.blogspot.com/2007/10/gtk-vs-qt.html
嵌入式QT开发笔记(4):QT2中用选框添加ListView项目_夏儿:芳菲歇去何须恨…_新浪博客
http://blog.sina.com.cn/s/blog_53013a8c0100a0yq.html
Ubuntu中文论坛 • 查看主题 – [问题]用Kdevelop作为QT集成开发环境的疑问
http://forum.ubuntu.org.cn/viewtopic.php?p=853611
wxGtk
网友已编译好的Qt开源版下载(含Debug库) Qt中文论坛 —— Qt专业技术网站 – powered by phpwind.net
http://www.qtcn.org/bbs/read.php?tid=11800
【最新下载】Qt最新版本4.4.3 OpenSource版下载链接以及MinGW编译器下载 Qt中文论坛 —— Qt专业技术网站 – powered by phpwind.net
http://www.qtcn.org/bbs/read.php?tid=1075
Qt在各种平台及IDE环境下的安装帖集合 Qt中文论坛 —— Qt专业技术网站 – powered by phpwind.net
http://www.qtcn.org/bbs/read.php?tid=4853
QT的编译安装(以4.2.3 for windows为例) Qt中文论坛 —— Qt专业技术网站 – powered by phpwind.net
http://www.qtcn.org/bbs/read.php?tid=7844
Eclipse + MinGW + Qt开发环境设置 – lansh – 博客园
http://www.cnblogs.com/lansh/archive/2008/02/14/958808.html
Beta – Qt Creator – Lightweight IDE
http://www.qtsoftware.com/developer/qt-creator
使用VC2005编译真正的静态Qt程序 Qt中文论坛 —— Qt专业技术网站 – powered by phpwind.net
http://www.qtcn.org/bbs/read.php?tid=13825
Windows下Eclipse + CDT + MinGW + integration+Qt配置笔记 Qt中文论坛 —— Qt专业技术网站 – powered by phpwind.net
http://www.qtcn.org/bbs/read.php?tid=15400
Qt Labs Blogs » Qt Creator and Christmas Holidays
http://labs.trolltech.com/blogs/2008/12/29/qt-creator-and-christmas-holidays/
进度记录 – Chloe Rei 的人参笔记 – 博客大巴
http://chloerei.blogbus.com/logs/31912209.html
windows下QT4和dev-c++编程环境的搭建 – 紫色☆游侠的日志 – 网易博客
http://blog.163.com/huangkai_275/blog/static/277549742008917102210678/
qtcreator的几点问题 Qt中文论坛 —— Qt专业技术网站 – powered by phpwind.net
http://www.qtcn.org/bbs/read.php?tid=13681
Qt Creator正在使用阶段_天之涯,海之角
http://hi.baidu.com/%CC%EC%BA%A3%D2%BB%CF%DFgyh/blog/item/54ff6517601fb5064a90a7cd.html
最新Eclipse&CDT + MinGW + Qt 在XP下的安装 Qt中文论坛 —— Qt专业技术网站 – powered by phpwind.net
http://www.qtcn.org/bbs/read.php?tid=10185
Qt4 with Visual Studio Qt中文论坛 —— Qt专业技术网站 – powered by phpwind.net
http://www.qtcn.org/bbs/read.php?tid=4186
【转载】Qt4.1.1 OpenSource for VC2003, VC2005, BCC的安装 Qt中文论坛 —— Qt专业技术网站 – powered by phpwind.net
http://www.qtcn.org/bbs/read.php?tid=3449
【原创】Qt 3.3.5 for win 在msvc下编译实例 Qt中文论坛 —— Qt专业技术网站 – powered by phpwind.net
http://www.qtcn.org/bbs/read.php?tid=2251
QT + CodeBlocks 环境搭建 Qt中文论坛 —— Qt专业技术网站 – powered by phpwind.net
http://www.qtcn.org/bbs/read.php?tid=11847
QT for windows — QT4+MinGW+CodeBlocks集成_孔令春学习网
http://hi.baidu.com/klcstudy/blog/item/023b9fb1dcf66d53082302b4.html
用codeblocks编译Qt的入来!
http://topic.csdn.net/u/20081005/20/52234c32-5c0a-4a15-8d3b-d520bfa279d4.html
对于codeblocks的求助! – Tonkv的博客
http://www.tonkv.cn/read.php/28.htm
Dev-Cpp/Mingw32 环境介绍(1)(转)_landuochong
http://hi.baidu.com/landuochong/blog/item/0cd790869db9223a67096eb6.html
QT中的SOCKET编程_landuochong
http://hi.baidu.com/landuochong/blog/item/08268100cf5b6783e950cda9.html
正文 – 彻底告别Linux下没有C/C++好用IDE的时代 – Linux文库
http://doc.linuxpk.com/67220.html
CodeBlocks
Window下安装配置QT开发环境(Devcpp QT)_landuochong
http://hi.baidu.com/landuochong/blog/item/65869e01fba233021d9583ab.html
Window下安装配置QT开发环境(Devcpp QT)_VC技术文章_VC_软件编程
http://www.diybl.com/course/3_program/vc/vc_js/2008625/128189.html
Qt图形用户界面编程技术入门 – 跟用户互动-开发频道-IT技术-天极网
http://dev.yesky.com/348/8146848_3.shtml
Qt图形用户界面编程技术入门 – 搭建Qt开发环境-开发频道-IT技术-天极网
http://dev.yesky.com/348/8146848_1.shtml
Qt简体中文
http://www.qiliang.net/qt.html
关于Qt开发 技术文档 技术文档 :::浪漫满屋:::
http://wangshirun.bokee.com/viewdiary.13633457.html
如何用QT开发应用软件 Linux/Unix社区 / 程序开发区 – CSDN社区 community.csdn.net
http://topic.csdn.net/t/20061106/09/5135353.html
[ZZ]QT开发常见问题_XCH
http://hi.baidu.com/dweng/blog/item/41f6f922e24f8bf1d7cae28d.html
Eclipse + MinGW + Qt开发环境设置 – lansh – 博客园
http://www.cnblogs.com/lansh/archive/2007/11/14/958808.html
http://trolltech.com/developer/downloads/qt
游戏开发工具浅谈
http://job.17173.com/content/2008-10-30/20081030174833105.shtml
Maya UI 裏的 Callback &line; DRAKE
http://drakeguan.org/content/maya-ui-%E8%A3%8F%E7%9A%84-callback
快速配置Linux + Eclipse + wxWidgets开发环境 – 真的有外星人吗? – BlogJava
http://www.blogjava.net/nokiaguy/archive/2009/01/archive/2009/01/25/252555.html
不會騎馬的匈奴 &line; [轉錄][程] [心得] 知名 GUI lib 簡評 (GTK+, Qt, wxWidgets)
http://blog.bs2.to/post/fireelf/11445
Qt 转向 LGPL之后,wxWidgets 路在何方 – B O O M W O R K S – CSDNBlog
http://blog.csdn.net/boomworks/archive/2009/01/22/3850073.aspx
wxWidgets VS QT–无限精彩的机器视觉世界
http://mvtec.bokee.com/6113463.html
GTK+ 、wxWidgets、Qt 什么更好 – VC – 重庆IT商网
http://www.cqzol.com/programming/vcinfo/200901/576336.html
GTK+ 、wxWidgets、Qt 比较 – GUI编程
http://www.ajaxstu.com/GUIbiancheng/293147.html
GTK+ 、wxWidgets、Qt 哪个更好
http://topic.csdn.net/u/20081209/18/49bdeb07-9984-4063-9b7c-d34cf551e5e2.html
wxWidgets 101 – 10 Porting from MFC or QT to wxWidgets or QT – 磨劍錄 (A Coder\’s Log) – C++博客
http://www.cppblog.com/chefZ/archive/2008/11/15/66972.aspx
What GUI lib to choose: GTK, TK, WX, QT, other?
http://help.lockergnome.com/linux/GUI-lib-choose-GTK-TK-WX-QT–ftopict355987.html
[vtkusers] Which one to use?! Fltk? GTK? WxWidgets..?!
http://www.vtk.org/pipermail/vtkusers/2004-June/074420.html
Ultimate++
http://www.ultimatepp.org/www$uppweb$idess$en-us.html
Ultimate++ 又一个跨平台的图形库 – LinuxSir.Org
http://www.linuxsir.org/bbs/thread228669.html
wxWidgets, TK or GTK???? – LinuxQuestions.org
https://www.linuxquestions.org/questions/programming-9/wxwidgets-tk-or-gtk-674293/
Ultimate++
Cross-Platform Application with GUI: GTK+, Qt, wxWidgets or other? – Web Hosting Talk – The largest, most influential web hosting community on the Internet
http://www.webhostingtalk.com/showthread.php?t=749285
Que choisir pour déveloper en C++ : wxWidget, Qt, GTK, …? – Forum des développeurs
http://www.developpez.net/forums/d26186/c-cpp/bibliotheques/choisir-d-veloper-cpp-wxwidget-qt-gtk/
WxWidgets Compared To Other Toolkits – WxWiki
http://wiki.wxwidgets.org/WxWidgets_Compared_To_Other_Toolkits
Cross-Platform Application with GUI: GTK+, Qt, wxWidgets or other? – DesignersTalk
http://www.designerstalk.com/forums/programming/43223-cross-platform-application-gui-gtk-qt-wxwidgets-other.html
FOX-Toolkit: Introduct
http://study.qqcf.com/web/530/126049.htm
FOX-Toolkit: Introduct
http://study.qqcf.com/web/530/126049.htm
Cross platform arena: Qt vs wxWidgets [Archive] – Ubuntu Forums
http://ubuntuforums.org/archive/index.php/t-625974.html
GUI application
http://forum.soft32.com/linux/GUI-lication-ftopict439957.html
FLTK Vs GTK Vs Wxwidgets Vs Qt – GIDForums
http://www.gidforums.com/t-8113.html
CodeProject: Pretty WinAPI Class. Free source code and programming help
http://www.codeproject.com/KB/library/PrettyWinApiClass.aspx
CodeProject: GuiToolkit MFC Extension. Free source code and programming help
http://www.codeproject.com/KB/library/guitoolkit.aspx
Beyondata – MFC Free Code
http://www.beyondata.com/pwc.html
VC 界面库皮肤库_遥远的桥
http://hi.baidu.com/coolzdp/blog/item/f0c036a85aa878b7ca130c7a.html
VC界面库_wookt的空间
http://hi.baidu.com/wookt/blog/item/5f03ba02ec6891eb09fa93a7.html
仿VC界面如何在程序启动时隐藏左边与下边的窗口? VC/MFC / 基础类 – CSDN社区 community.csdn.net
http://topic.csdn.net/t/20060915/22/5025604.html
使用免费界面库 AppFace For VC 0.2 为VC++6.0界面添加皮肤_心木吧–程序员自己的家
http://hi.baidu.com/xinmu%5Fnet/blog/item/38d605ad7bd6130e4b36d607.html
使用SkinMagic Toolkit美化界面_L!ang \’Blog ^_^
http://hi.baidu.com/whenisee/blog/item/5936c4fccd5019f9fc037fa3.html
VC编程实现IE风格的界面_网络技术(编程)
http://hi.baidu.com/hacknothack/blog/item/7d85b226ea4469108a82a188.html
Qt中文网
http://www.qtcn.org/bbs/home.php
Qt Development Tools — Qt – a cross-platform application and UI development framework
http://www.qtsoftware.com/products/appdev/developer-tools/developer-tools
Qt Development Tools — Qt – a cross-platform application and UI development framework
http://www.qtsoftware.com/products/appdev/developer-tools/developer-tools?currentflipperobject=a64248a53b397e297e91cc5a54a9fcd3
【预览】QT与VC.NET2003的集成 Qt中文论坛 —— Qt专业技术网站 – powered by phpwind.net
http://www.qtcn.org/bbs/read.php?tid=1132&fpage=0&toread=&page=2
Qt4.4.3与vs2005集成问题 Qt中文论坛 —— Qt专业技术网站 – powered by phpwind.net
http://www.qtcn.org/bbs/read.php?tid=14219&fpage=3
Xpsp3下QT + Eclipse 问题 Qt中文论坛 —— Qt专业技术网站 – powered by phpwind.net
http://www.qtcn.org/bbs/read.php?tid=14057&fpage=3
【共享】用KDevelop开发Qt4程序 Qt中文论坛 —— Qt专业技术网站 – powered by phpwind.net
http://www.qtcn.org/bbs/read.php?tid=1947&fpage=0&toread=&page=2
Eclipse 中没有 qt 的代码补全功能 Qt中文论坛 —— Qt专业技术网站 – powered by phpwind.net
http://www.qtcn.org/bbs/read.php?tid=15090
唐朝后宫的官职???关于宫女和太监和内卫的_百度知道
http://zhidao.baidu.com/question/55517408.html
唐玄宗开元年间,对妃嫔称号另作更改:
三夫人:惠妃、丽妃、华妃。正一品。
芳仪六人。正二品。
美人四人。为正三品。
才人七人。为正四品。
尚宫、尚仪、尚服各二人。正五品。
Code::Blocks下使用QT Qt中文论坛 —— Qt专业技术网站 – powered by phpwind.net
http://www.qtcn.org/bbs/read.php?tid=13629
是大家一个劲的围着上帝飞,就好
Sawin软件研发之窗:Python几种开发工具介绍
http://www.sawin.cn/doc/SP/MultiLanguage/blueski683.htm
三味中国-python, Zope,Plone之间的关系和安装
http://www.china3view.com/blog/post/321.html
三味中国-我的Python IDE和有关编译python的问题
http://www.china3view.com/blog/post/322.html
用 Eclipse 和 Ant 进行 Python 开发
http://www-128.ibm.com/developerworks/cn/opensource/os-ecant/index.html
Wingware Python IDE – The Intelligent Development Environment for Python Programmers
http://wingware.com/
Wingware\’s Python IDE
我怎样为python开发选择IDE?为什么是集成开发环境komodo? – 我学python &line; experience with the python language – DonewsBlog
http://blog.donews.com/ygao/archive/2005/10/29/606670.aspx
简明 Python 教程 / 最初的步骤 / 使用源文件
http://linux.chinaitlab.com/manual/Python_chinese/ch03s04.html
推荐几款PYTHON编辑器[原] – Python – 承影论剑
http://blog.chinaunix.net/u/15586/showart.php?id=473344
python 学习: – MEYE – BlogJava
http://www.blogjava.net/MEYE/archive/2008/02/04/179270.html
python 学习: – MEYE – BlogJava
http://www.blogjava.net/MEYE/archive/2008/02/04/179270.html
limodou的学习记录 – Python
http://blog.donews.com/limodou/category/2135.aspx
什么是Tkinter?
http://octopus.cdit.edu.cn/~yf17/tkintrobook/whats-tkinter.htm
Python_百度百科
http://baike.baidu.com/view/21087.htm
如何使用wxPython设计gui_PPLBOY 的 BLOG
http://hi.baidu.com/pplboy/blog/item/7eb11709cf451e84d0581be8.html
python+wxpython+boa,几经折腾,终于尘埃落定_PPLBOY 的 BLOG
http://hi.baidu.com/pplboy/blog/item/6be8678b6c49a5799f2fb4f5.html
GUI programming with wxPython 之 XRC(3)_Je pense donc je suis
http://hi.baidu.com/madrigar/blog/item/3f35b17ee65dfd3d0dd7da6d.html
GUI programming with wxPython 之 XRC(4)_Je pense donc je suis
http://hi.baidu.com/madrigar/blog/item/15274b903f14ea88a977a420.html
杂草人的Python学习笔记(笔记不是教程,中文,wxPython,GUI)_weedor工作室
http://hi.baidu.com/weedor/blog/item/db1caa1eab8ba91d41341795.html
[python-chinese] wxPython GUI生成器
http://www.zeuux.org/pipermail/zeuux-python/2004-December/006675.html
wxPython GUI循序渐进&line;python&line;python共享世界&line;circle&line;我色&line;模糊网
http://group.movo.tv/m8/circlediarylook/Sff80808115d9dff10115da11c301031e.html
为python做贡献,BitTorrent源代码分析 – Python – ChinaUnix.net
http://bbs.chinaunix.net/thread-556756-1-1.html
请介绍一下wxPython, 我刚学。 – Python – ChinaUnix.net
http://bbs.chinaunix.net/viewthread.php?tid=700812
UliPad — 一个 Python 的IDE_简
http://hi.baidu.com/fufay/blog/item/5ed94d3169c6cf18ebc4afd4.html
使用Eclipse+PyDev+EclipseHtmlEditor搭建Django开发环境 – 一叶障目 – 51CTO技术博客-领先的IT技术博客
http://ddkangfu.blog.51cto.com/311989/63876
我的Python GUI之旅 – 江湖 – 51CTO技术博客-领先的IT技术博客
http://meiweier.blog.51cto.com/298258/58072
使用UliPad进行Django项目开发 – 一叶障目 – 51CTO技术博客-领先的IT技术博客
http://ddkangfu.blog.51cto.com/311989/63978
Ulipad的CPU占用率经常会很高,30%-40%。 – python-cn`CPyUG`华蟒用户组 &line; Google Groups
https://groups.google.com/group/python-cn/browse_thread/thread/1969bc1874607ec8
如何安装Ulipad – 未名空间(mitbbs.com)
http://www.mitbbs.cn/article_t/Programming/31155804.html
UliPad — 一个 Python 的IDE_简
http://hi.baidu.com/fufay/blog/item/5ed94d3169c6cf18ebc4afd4.html
IT民工甲: 跨平台GUI开发库
http://still3stone.spaces.live.com/blog/cns!1F105E223F23E54C!952.entry
创建本机的跨平台 GUI 应用程序(重述)
http://www-128.ibm.com/developerworks/cn/java/j-nativegui2/
跨平台的C++ GUI库——wxWidgets 简介 C和C++ 想飞的翅膀 – powered by phpwind.net
http://www.glive.org/guet/simple/index.php?t600.html
Century Embedded Technologies Nano-X SDK and Developer\’s Guide
http://embedded.centurysoftware.com/docs/nx/index.html
Beginner FLTK Tutorial
http://www3.telus.net/public/robark/#inheritedwindow
Building FLTK Under Microsoft Windows
http://embedded.centurysoftware.com/docs/nx/fltk-intro-build-win.html
基于Linux的源代码开放浏览器
http://www.21control.com/RTOS/Linux/200512/RTOS_20051213233353.html
mingw-w64 with fltk to build native windows x64 GUI program – drangon zhou 的 沙漠龙城 – CSDNBlog
http://blog.csdn.net/drangon_zhou/archive/2007/10/01/1809183.aspx
跨平台的GUI库 :: upsdn论坛(PMP/MP4消费性电子产品开发)
http://forum.upsdn.net/index.php?prog=topic::flat&tid=2039&go=newer
一开始的选择是wxWidgets,但是研究了一段时间后发现不好解决的问题越来越多,终于放弃。最头疼的就是C++类的事件传递,wxWidgets内部使用的是一个类似MFC的方法,所有传递事件的类全部要从一个根类继承,这样就导致创建的类和wxWidgets绑定过甚,复用性大大降低,同时由于wxWidgets的目标不仅仅是GUI,造成其包含功能过多,其内部结构非常复杂,虽然是 OpenSource,但要若要修改其代码还是很困难的。综上所述,wxWidgets并不符合我的要求,从而被排除在外。
之后研究的QT,老牌的跨平台GUI开发库,工具很多,开发也很人性化,qtdesign很像Delphi的界面开发方式,代码带有强烈的linux风格,但是看看附带的库文件又实在让人有些泄气,尺寸大,发布麻烦。所以在试用了一段时间后还是放弃了。
跨平台的GUI库 :: upsdn论坛(PMP/MP4消费性电子产品开发)
http://forum.upsdn.net/index.php?prog=topic::flat&tid=2039&go=newer
跨平台的 GUI 库_甲壳虫
http://hi.baidu.com/mjting/blog/item/9a67b6101aad7003203f2e61.html
wxWindows – a C++ cross-platform GUI library with Win32 and X-Windows Back-ends. LGPL.
http://www.wxwindows.org/
Qt – a C++ cross-platform GUI library with Win32 and X-Windows Back-ends. A very encompassing API. Dually Licensed GPL/QPL for X-Windows and there\’s a binary only release for Win32. Developing commercial applications with it will require a license from its vendor, Troll-Tech.
http://www.trolltech.com/
Qt 的 已经有免费 Win32 版本, 请见:
http://kde-cygwin.sourceforge.net/qt3-win32/index.php
Mozilla\’s XUL – a C++ cross-platform GUI library for X-Windows, Win32 and MacOS based on XML. Triply Licensed under the MPL, LGPL and GPL.
http://www.xulplanet.com/
ParaGUI – a GUI library based on the SDL framework. LGPLed.
http://www.bms-austria.com/projects/paragui/
Borland\’s VCL – The GUI library behind Delphi and C++ Builder. Proprietary License, which is free for use for developing Open-Source Programs.
http://www.borland.com/
The FOX Toolkit – a C++ toolkit that runs on UNIX, Windows and MacOS X. Renders its own controls, so does not have the system-wide native look and feel, but OTOH has a consistent one across all platforms.
http://www.fox-toolkit.org/
The GUI Toolkit, Framework Page
http://www.atai.org/guitool/
mjting.
请教哪里有一些好用的跨平台的GUI库? C/C++ / C++ 语言 – CSDN社区 community.csdn.net
http://topic.csdn.net/t/20050605/03/4060000.html
wxWidget
gtk
gtkmm
qt
跨平台的GUI 库 – 心灵咖啡○οo… – 优友地带 UUZone
http://www.uuzone.com/blog/uu_uvxwvnb/133937.htm
跨平台的C++ GUI库——wxWidgets编译_C++实例教程_C++_软件编程
http://www.diybl.com/course/3_program/c++/cppsl/2008826/137615.html
圣斗士星矢的状态模式和观察者模式-Java频道-中国IT实验室
http://java.chinaitlab.com/model/758444.html
深入浅出Java设计模式之状态模式__Java教程,Java源码,Java代码,Java源码下载,Java实例,Java安全漏洞,
http://www.zhujiangroad.com/html/soft/s2679.html
用设计模式固化C#程序-微软开发专栏-C#-天极网
http://www.yesky.com/222/1717222_2.shtml
设计模式之State
http://www.zhmy.com/more.asp?id=118506
設計模式之State_伟子的空间
http://hi.baidu.com/weizier/blog/item/ec8dc55c49346542fbf2c0d1.html
设计模式之State(4) – 设计模式 – 技术应用 – 豆豆网
http://tech.ddvip.com/2006-11/116429968711971_4.html
CSDN技术中心 设计模式之State——交通篇(原创)
http://dev.csdn.net/article/42/42533.shtm
C#的 EventHandler 及 Dispatcher.Invoke 转到 vb.net
http://topic.csdn.net/u/20080120/21/05b8d9ec-5f14-4ead-902e-8a96d9ae0824.html
运用Dispatcher和Broadcasting设计模式到实际的开发中 – 东北虎的网络空间站 – CSDNBlog
http://blog.csdn.net/tiger9452/archive/2006/04/25/676441.aspx
字符串Dispatcher模式
chrome源码解析系列:Chrome消息系统(1)_睡神 一个人的空间_新浪博客
http://blog.sina.com.cn/s/blog_4fdff8f20100atxd.html
20080804 GUITOOLKIT 编译 static lib
http://www.yippeesoft.com
1、增加VC路径
D:\\vs2005\\VC\\include
D:\\MSSDK\\Include
2、add VisualStylesXP.cpp
VisualStylesXP.h to GuiLibStatic project
3、GuiLibStatic project 设置为 RELEASE
4、改用 多线程DLL
修改代码:
GuiToolBarWnd.cpp
改为:static int AFXAPI _AfxGetDropDownWidth()
GuiToolBarWnd.cpp
改为 static int _afxDropDownWidth = -1;
GuiDockContext.cpp
改为 AFX_STATIC void AFXAPI _AfxAdjustRectangle(CRect& rect, CPoint pt);
// &leftsign;
// int nXOffset = (pt.x < rect.left) ? (pt.x – rect.left) :
// (pt.x > rect.right) ? (pt.x – rect.right) : 0;
// int nYOffset = (pt.y < rect.top) ? (pt.y – rect.top) :
// (pt.y > rect.bottom) ? (pt.y – rect.bottom) : 0;
// rect.OffsetRect(nXOffset, nYOffset);
// &rightsign;
Project Dependencies
Project : CCuiAccess
Depends on:
unselect GuiLib, select GuiLibStatic
生成 GuiTk115Static.lib
编译 CGUIACCESS
将GUILIB的 #pragma comment(lib,"GuiTk115.lib")
改为 GuiTk115Static.lib
编译 运行 OK
““““““““““““
http://topic.csdn.net/t/20050906/17/4253280.html
guilib(guitoolkit) 如何使用它的静态库?有高手实现过吗?
http://topic.csdn.net/t/20040816/18/3280024.html
DEBUG时没问题,RELEASE时出现afxver_.h(130) : fatal error C1189: #error : Please use the
http://hi.baidu.com/ruoxinjiu/blog/item/6515933e4a73cb3b70cf6ce7.html
编译时的错误(一)—可能有用
http://www.vtk.org/pipermail/vtkusers/2005-May/079905.html
[vtkusers] How to debug the linker errors of the console application
http://www.codeproject.com/KB/library/guitoolkit.aspx
GuiToolkit MFC Extension
http://topic.csdn.net/t/20040620/22/3108411.html
连接过程中出现nafxcwd.lib和mbctype的问题,请问哪位高手知道如何解决?
http://www.pcreview.co.uk/forums/thread-1432196.php
Reply
Linker error __argv, __argc, __mbctype
http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q148652
A LNK2005 error occurs when the CRT library and MFC libraries are linked in the wrong order in Visual C++
http://bytes.com/forum/thread285203.html
Static MFC in DLL (linker error)
http://archive.netbsd.se/?ml=mysql-plusplus&a=2006-02&t=1753713
Will MySQL++ will build under MFC?
http://www.gamedev.net/community/forums/topic.asp?topic_id=136470
Linker Errors (Again)
http://bytes.com/forum/thread282082.html
Linker error __argv, __argc, __mbctype
http://cboard.cprogramming.com/archive/index.php/t-10844.html
MFC: Multi-threaded DLL Errors & Related Syntax :: C++
http://blog.csdn.net/jiangxinyu/archive/2007/09/12/1782432.aspx
error LNK2001: unresolved external symbol _main解决办法
http://bbs.bc-cn.net/thread-139605-1-1.html
error LNK2001: unresolved external symbol??
http://hi.baidu.com/isbx/blog/item/cc4f0e2405c83e36c9955915.html
error LNK2001: unresolved external symbol解析
lnk2001:unresolved external symbol。。。为不确定的外部符号,如果连接程序不能在所有的库和目标文件内找到所引用的函数、变量或标签,将产生此错误消息。一般来说,发生错误的原因有两个:一是所引用的函数、变量不存在、拼写不正确或者使用错误;其次可能使用了不同版本的连接库。
lnk1120 你可以尝试在[Project] –> [Settings] –> 选择"Link"属性页,
在Project Options中将/subsystem:console改成/subsystem:windows
http://www.winu.cn/viewthread.php?tid=4945
GuiLib Toolkit MFC Extension
http://www.cnblogs.com/xcvm/archive/2007/03/13/346013.html
GuiToolkit 1.1.5编译的一点说明
你在guilib库工程下,打开资源编辑器的位图里面有三个位图ID分别为
IDB_GUI_DOCKBAR
IDB_GUI_DOCKBAROFFICE
IDB_GUI_MDIICONS
然后你把这些位图加载到你想要的例子程序当中,再是把guilib库工程GuiLibRes.h下的相应的ID的值,替换为在例子程序中生成的这些位图的ID的值,然后再重新编译就可以了
http://hi.baidu.com/redtramp/blog/item/ccc6bac305133d57b219a871.html
VC免费界面库GuiToolKit的编译
http://www.liuzhongshu.com/code/guitoolkit.html
GuiToolkit
http://69.10.233.10/KB/library/lua.aspx
Using Lua to control your application
http://support.microsoft.com/kb/148652
在 Visual C++ 中以错误的顺序链接 CRT 库和 MFC 库时出现 LNK2005 错误
http://www.codeguru.com/forum/archive/index.php/t-199089.html
Click to See Complete Forum and Search –> : nafxcwd.lib errors
http://www.zeroc.com/forums/help-center/1716-link-error-when-adding-mfc-header-dll-project.html
Link error when adding MFC header in dll project
http://genial.ycool.com/post.130646.html
今天编写程序的时候,发现一个错误是:
nafxcw.lib(appcore.obj) : error LNK2005: "public: __thiscall CWinApp::CWinApp(char const *)" (??0CWinApp@@QAE@PBD@Z) already defined in mfc42d.lib(MFC42D.DLL)
注意 already defined in mfc42d.lib(MFC42D.DLL
记得好像在哪里见过介绍,说是因为matlab目录下也有一个MFC42D.DLL, 所以这引起了该错误的发生。
后来在Setting 得C/C++ --》General中加入
,_AFXDLL
在include中加入:
mfc42d.lib msvcrtd.lib
就可以了
LINK : warning LNK4098: defaultlib "MSVCRT" conflicts with use of other libs; use /NODEFAULTLIB:library
在忽略库中加入: msvcrt.lib就可以
http://www.codeguru.com/forum/archive/index.php/t-137642.html
Link error Problem with STL, Help!!
http://www.daniweb.com/forums/thread9052.html
Using MFC in a Static Library
http://forums.msdn.microsoft.com/en-US/vclanguage/thread/8cdbb019-1dc9-4b9c-a1c7-1dd7d4c2ba0e/
LNK2005 – delete already defined in nafxcwd.lib
http://www.eggheadcafe.com/forumarchives/vcmfc/oct2005/post24543519.asp
10/28/2005 2:53:36 PM Re: Linker errors
http://www.adobeforums.com/webx/.3bc8f1d4
Topic
Interlancer Sample Code Not Working
http://zjliu2001.blog.163.com/blog/static/422271542007104105117849/
Matlab6.5与VC6混合编程
http://zir5.blog.163.com/blog/static/984879420075183312793/
VC++ 中 link 2005的问题 (二)
http://www.softwelt.com/Know/KnowDetail-425975.html
问题:VC6静态连接的一个问题!!!!?
http://blog.csdn.net/ablo_zhou/archive/2007/07/20/1700531.aspx
VC6编译和链接的两个头疼问题
http://rs122.rapidshare.com/files/110633235/GuiLib1.6.zip
Re: Does anyone knows whew I can download the 1.6 which works in VS 2005? member mc13213 16:21 26 Apr \’08
http://rapidshare.com/files/110633235/GuiLib1.6.zip.html[^]
20080530 asp.net mvc gui
http://www.yippeesoft.com
QuickGUI编辑器系列—从文件中读取并解析
http://www.aspcool.com/lanmu/browse1.asp?ID=6891&bbsuser=aspnet
http://www.aspcool.com/lanmu/browse1.asp?ID=6880&bbsuser=aspnet
让客户端看不见你的Javascript脚本
http://www.aspcool.com/lanmu/browse1.asp?ID=6867&bbsuser=aspnet
平台架构–用户系统
http://www.aspcool.com/lanmu/browse1.asp?ID=6797&bbsuser=aspnet
收发短信的选择:短信猫、企信通系统还是MAS.
http://www.aspcool.com/lanmu/browse1.asp?ID=6763&bbsuser=aspnet
为什么要自己写控件页不用网上成熟的控件呢?
http://www.aspcool.com/lanmu/browse1.asp?ID=6756&bbsuser=aspnet
ASP.NET MVC+LINQ开发一个图书销售站点(1):需求分析
http://www.aspcool.com/lanmu/browse1.asp?ID=6759&bbsuser=aspnet
ASP.NET MVC+LINQ开发一个图书销售站点(4):创建一个ASP.NET MVC应
http://www.cnblogs.com/chwkai/archive/2005/12/29/307761.html
用Blog和Wiki搭建IT团队的知识库
http://tech.it168.com/msoft/2008-04-24/200804241000727_1.shtml
Silverlight 2数据操作(2)——使用ASP.NET Web Service进行数据CRUD操作(下)
http://weblogs.asp.net/kencox/archive/2007/08/07/speed-test-a-no-code-linq-based-asp-net-3-5-page.aspx
Speed Test: A No-Code LINQ-Based ASP.NET 3.5 Page
http://www.cnblogs.com/shanyou/archive/2008/03/20/1115421.html
asp.net mvc脚手架代码生成工具
http://www.aspcool.com/lanmu/browse1.asp?ID=6655&bbsuser=aspnet
Rails框架流行在他的设计理念
http://www.aspcool.com/lanmu/browse1.asp?ID=6538&bbsuser=aspnet
错误 1 在应用程序级别之外使用注册为 allowDefinition=\’MachineToApplication\’ 的节是错误的。如果在 IIS 中没有将虚拟目录配置为应用程序,则可能导致此错误。
http://code.google.com/p/extsharp/
Write ExtJS code in C#
http://www.designbeauty.cn/Article.aspx?id=7a9ef94e-c80b-4ee5-ba49-61aa7c28ab00
Write Ext code in C# with ExtJS/ASP.NET/Script#
http://www.cnblogs.com/jillzhang/archive/2008/01/20/1045934.html
发布一个用于Oracle数据库间数据复制的组件-OraSyner
http://www.qqread.com/dotnet/z411950.html
Microsoft Sync Framework系列(八):微软同步框架中的自定义数据同步基础
http://www.cnblogs.com/JustDI/archive/2008/05/07/1184085.html
话说微软刚出的同步框架Sync Services
http://hi.baidu.com/fly135/blog/item/37f3942b5d3df6f9e7cd404d.html
用ext搭建的 进销存界面
http://www.cnblogs.com/beginor/archive/2007/08/18/860782.html
介绍一下ExtJS JavaScript Framework
http://www.cnblogs.com/shanyou/archive/2008/03/20/1115421.html
asp.net mvc脚手架代码生成工具
http://blog.joycode.com/saucer/archive/2006/08/24/81383.aspx
ASP.NET ActionPack
http://www.aspcool.com/lanmu/browse1.asp?ID=6538&bbsuser=aspnet
Web项目架构设计
http://www.aspcool.com/lanmu/browse1.asp?ID=6513&bbsuser=aspnet
请跟我来–使用Ext搞个原型
http://www.aspcool.com/lanmu/browse1.asp?ID=6512&bbsuser=aspnet
彻底的Ajax
http://www.aspcool.com/lanmu/browse1.asp?ID=6524&bbsuser=csharp
请跟我来–Ext数据应用开发的几板斧
http://www.cnblogs.com/QPG2006/archive/2008/01/04/1025508.html
请跟我来–使用Ext+llano快速搞定CRUD
http://www.twinforms.com/aspmvc-home.htm
http://www.topdata.cn/tech/p433/J43353249.shtml
最美的MVC,ORM方案原来在别处–Ruby on Rails
http://blog.joycode.com/saucer/archive/2006/08/30/82230.aspx
跟踪ASP.NET ActionPack/SubSonic
http://www.cnblogs.com/lingfeng_314/archive/2008/01/15/Design.html
Web项目架构设计-商业逻辑层
http://www.dedecms.com/web-art/JSPjiaocheng/20060411/22546.html
最美的MVC,ORM方案原来在别处–RubyonRails
http://weblogs.asp.net/jgalloway/archive/2006/08/30/SubSonic-_2800_formerly-ASP.NET-ActionPack_2900_-_2D00_-Microsoft-should-ship-this-with-Atlas.aspx
Microsoft should ship SubSonic (formerly called ActionPack) with Atlas
http://www.rubyonrails.org/screencasts
Creating a weblog in 15 minutes
http://www.cnblogs.com/xuzhong/archive/2007/07/11/813958.html
BizTalk Workspace内容介绍
20080319 web wse gui
http://www.yippeesoft.com
http://www.itpower.net.cn/Programming_Language_php/shiyongwse-Web-Services-Enhancements–bafuwuqiduandewenjianchuandaokehuduan/index.html
使用wse(Web Services Enhancements )把服务器端的文件传到客户端
http://liufeng.jiancss.com/archives/879813/
在Web Service中的异步开发模式
使用 Web Services Enhancements 2.0 进行编程
http://www.itpower.net.cn/Programming_Language_php/shiyong-Web-Services-Enhancements-2-0-jinxingbiancheng/index_4.html
http://www.111cn.cn/boke/blog/show.php?fid=5800&id=77&uid=dengxion
[WSE]Web Service—后台侦听服务通过WSE2.0建立订阅/发布关系
http://www.newasp.net/tech/net/11503.html
[WSE]Web Service—后台侦听服务通过WSE2.0建立订阅/发布关系
http://ms.mblogger.cn/mnm0756/posts/13744.aspx
介绍 Web 服务增强 2.0 消息处理 API
https://bpcatalog.dev.java.net/nonav/solutions.html
Java BluePrints Solutions Catalog
http://www.kmnet.net/Doc/10/800/
基于WEB 的实时事件通知方案
http://www.cnblogs.com/program/archive/2007/06/01/768147.html
在Web Service中的异步开发模式
http://www.enet.com.cn/article/2006/0816/A20060816166006_4.shtml
技巧:服务器端异步 Web 方法
http://www.vckbase.com/document/viewdoc/?id=1235
关于如何换肤、子类化的解决方案
通常人们是从那些快餐式的编程书籍上学习编写页面的,也就是在页面上写一两行文字、放上一个控件看看效果,最多不过是多放几个这种干巴巴的东西堆在一起。这与实际的网站界面相差太远了,就好像在一个只有几把锤子扳子的小作坊中学习造汽车,不能做出好产品。
实际上,好的页面应该用以下方法开发出来:
1. 各类相关人员深刻了解需求。
2. 美工作出精美的、有创意的(主要是静态)画面。可能结果仅是一张bmp图片。所谓“漂亮”的网页,要照顾到用户对颜色、风格的要求,并且往往搞“大块”的图像,同时又有大块的空余,这样的反差造成视觉冲击。
3. 关键的一步——切图。切得好(既少又准确)才能为编程创造条件。常用的网页图像编辑工具都有切片功能。切片之后就生成了html(中间包含了很多< table>)和一大堆图片,图片通常作为table中<td>的内容或者背景。
4. 改文件名后缀,然后在编程开发工具中打开这个html页面。可以看到原图。但是从代码或者大纲窗口可以看到已经很“破碎”了。保留< table>布局和大部分图片,选取需要根据数据库动态发布内容的<td>元素,把它里边的东西“删除”,然后放上 spaceholder或者其他控件或者其他自定义控件(例如自定义的文章显示控件)。
5. 接下来就是写一点代码让页面接受外界参数,根据这个参数指挥内部的控件显示内容。
可见,页面是“先搭架子”然后再填入少量代码,时间花费基本上是1:1的(根据项目情况不同会不同)。绝不是从一个空白的aspx开头去手工拼凑html代码。前期的美工设计很重要。而且,也不应该刻意去找“会编代码”的美工。
csdn这个页面,如果不是asp的,如果是aspx的,那么可以说太没有创意了。asp的结构化不好,因此写出这么“土气”的页面情有可原。
明白了这个道理,大概就明白当时间实在太紧的时候很多“高手”怎么“设计”网站了吧!
对,就是到互联网上找到一些风格符合的网页,然后偷下来把其中的TD内容“抠掉”换上自己的内容。
网站设计,是从高处着眼,从内容管理、对业务的对象和流程的理解、各种业务的工作“引擎”的设计和开发入手的。把一本“ASP.NET高级编程”之类书反复看明白了,可能还很不够。
至于Web方式的管理应用程序,则反而不应该在页面上放上大块的图片和留白,甚至连小小的LOGO也没必要每个页面都放一个,以免干扰用户的操作。仅用大块的背景颜色分出操作区块来就很不错了。并且这类页面需要额外增加一些灵活的、仿窗口的风格,需要程序员自己开发一些与窗口控件功能相当或者更强的自定义控件。同时几乎所有界面应该都应该从数据库或者类型定义中自动生成,而不需要RAD工具。
http://www.popbb.net/develop/t588/200754684.shtml
服务器端异步Web方法_编程
http://industry.ccidnet.com/art/1077/20030925/693817_1.html
无刷新的聊天室的制作兼谈组件制作和ClientSide Script(一)
http://www.it315.org/articles/web/web1.htm
Server Push详解
http://www.newasp.net/tech/program/19991.html
server push具体实现(转)
http://bbs.aspoo.com/dispbbs.asp?BoardID=8&replyID=47478&id=6945&skin=0
GUI设计相关资料
http://edocs.bea.com.cn/wls/docs100/webserv_adv/callback.html
WebLogic Web Service:高级编程
http://www.chinaz.com/Program/.NET/040462962007.html
利用AJAX和ASP.NET实现简单聊天室
http://yuzhengzhe.spaces.live.com/Blog/cns!68EBED8273528C74!180.entry
UChat – 基于AJAX技术的ASP.NET聊天室
http://www.codeproject.com/KB/ajax/UChat.aspx
Building an AJAX based chat room in ASP.NET
http://www.cnblogs.com/JustDI/archive/2007/07/03/804218.html
必须用到和不必使用ajax的地方
http://www.cnblogs.com/JustDI/archive/2007/07/02/803158.html
充分利用ASP.NET的三种缓存提高站点性能
http://www.cnblogs.com/JustDI/archive/2007/07/02/802574.html
应用框架的设计与实现学习手札之类工厂服务——反射
http://www.codeproject.com/KB/applications/Generate_UI_For_Metadata.aspx
Generate UI For Metadata
http://www.codeproject.com/KB/showcase/intro_to_soa.aspx
Intro to SOA Regression Testing: A Hands-on Approach
http://www.codeproject.com/KB/ajax/magicajax.aspx
Magic AJAX: Applying AJAX to your existing Web Pages
http://www.codeproject.com/KB/showcase/VGTaskDialog.aspx
Building Office Business Applications
http://dev.csdn.net/article/25/25657.shtm
.net下分层架构系统的开发技术规范(2)
http://www.cnblogs.com/shanyou/archive/2008/02/15/netmassdownloader.html
v.NET Mass Downloader -整体下载.NET源码
http://www.cnblogs.com/wf225/archive/2007/08/10/850218.html
GridView 实现自定义分页、排序、查询、添加、编辑、多选删除 之代码规范
http://dev.csdn.net/article/24/24179.shtm
DotNet项目组编码规范
http://www.cnblogs.com/jyk/archive/2008/01/15/1040413.html
使用了继承、多态还有工厂模式和反射,但是还是没有OO的感觉。[已经增加了实现的代码]
http://www.cnblogs.com/lzppcc/archive/2008/01/14/1038977.html
FineMessBox弹出窗口js (修改版,增加对Firefox支持)
http://www.cnblogs.com/cnyyl/archive/2007/09/21/902036.html
GridView 实现自定义分页、排序、查询、添加、编辑、多选删除、导出、突出显示等常见应用实现
依据具体的实际情况,平台应涵盖的内容是不同的,这里讲的架构内容具有一定的通用性,但不一定就适合你的需要!这里只是概要说明,详细说明留意后继的文章。
l 用户系统:行业里早已经有passport之类的东西,然而总是感觉功能不健全,部署复杂,扩展困难。这里需要提供一个可伸缩的,分级管理的用户系统。包括用户库,用户组两个子系统。用户组的存储可以依据不同的应用有各独立的存储空间(数据表)。
l 授权系统:.Net里也有类似的东西,还是不够用。在这里进行了高度的抽象,一切授权使用视作对某一特定资源的授权,包括高级别的管理权限的分配。另外一点是存储上的分布,每一种资源都有各自的授权信息表,这种资源可以是存储在物理上分布的多个物理库内。
l 许可证验证系统:这个意思简单不多说,唯一要说的是许可证为每个登录成功的人发放,并作为票据访问WS,WS依据该票据对客户端进行身份验证。
l 服务验证系统:为了保护WS,与许可证验证系统一起使用。
l 服务地址冗余系统:简化客户端对WS访问的配制过程,并提高系统的稳健性。
l 数据库冗余系统:WS和数据库之间是分离的,通过该系统WS可访问到正确的数据库,同时提高系统的稳健性。
l 工作流系统:这个目前可能有些局限性,只适合于审批流程。依赖于平台的用户系统及容器系统(一个通用设计的数据表,可以管理类似目录树,用户组,各种分类信息的平台基础功能)。技术细节甚多,是基于WF实现的,有意请参见我的博客http://llxxbb.cnblogs.com。旨在提供一个易用客户端,客户可图形化设计流程的工作流平台。
l 数据迁移:一个大型的数据库应用系统在上线后,随着时间的推移,数据库容量会是一个不大不小的问题。应用的数据库逻辑只有应用才可以清楚的描述,要做一个与应用无关的数据迁移系统必须要有高度的可配置性,才可能真正的通用起来。这可以是一个独立的工具,也可以进行封装以纳入平台的数据库管理。
l ……
http://www.cnblogs.com/fox23/archive/2008/03/18/translate-wcf-for-device-developers.html
轻量级的Ajax解决方案——DynAjax的JQuery版
http://www.cnblogs.com/kaima/archive/2008/03/17/1110368.html
轻量级的Ajax解决方案——DynAjax:直接在客户端调用C#类的方法
http://www.cnblogs.com/kaima/archive/2008/03/15/1104541.html
http://hi.baidu.com/heiru/blog/item/8aabd11bc01a0dd1ac6e75cc.html
AjaxPro在ASP.NET中的应用简介
http://www.open-open.com/67.htm
http://blog.csdn.net/swifth/archive/2006/04/28/695043.aspx
echo2 学习笔记 总结
http://hi.baidu.com/eqer/blog/item/0645533d87e6d2ee3c6d9755.html
gwt和echo2的对比
首先,要在两个类别中选择,一个是编译类,一个是非编译类别。
Echo2/GWT是将JAVA代码编译成JAVASCRIPT,乍看很方便,不用掌握JS也能做出炫目界面。但这只适于不会或者不想了解JS的情况,对于还是想完全控制和定制界面的项目就不适合。
另外,有一种观点认为JAVA->JS转换是一种低级语言向高级语言转换,本身没有意义。有点像去学汇编,然后再找个工具把汇编语言代码转换成C代码来用。我虽然没完全想通这个观点,不过,我一直用C/C++,这几年才逐渐发现JAVA确实是一种进化。没准别人说的是对的呢?
在Echo2和 GWT中,GWT大部分工作是在客户端,尽量少跟SERVER打交道,适合大型网站运用;ECHO2信奉“用到才加载”的信条,所以会有大量向 SERVER的访问,适合企业应用。另外,个人觉得ECHO2是个更全面的的一站式框架,界面也非常炫。但它的开发工具要收费。
再谈非编译类别,它们包括DOJO、PROTOTYPE、JQEURY,下面一一介绍:
先说PROTOTYPE,它比较轻量极,能让你的代码更加简化。最经典莫过于“美圆函数”:
document.getElementById(’elementid’) 变成$(’elementid’)
它加强了JS语言的可开发性,降低了学习JS的门槛。
DOJO最吸引人的是它的事件系统和丰富的可定制组件。它可以用形如下面的语句为各种HTML元素加入事件:
dojo.event.connect(someNode, "onclick", doStuff);
正由于DOJO提供了强大功能,它分成了许多包,可以分别包含使用。
JQUERY也提供了美圆函数,它的插件系统也提供象DOJO的组件,但它没有PROTOTYPE那样简洁,也没有DOJO这么多的组件供使用,但它兼收两家优点,并且个头不大,文档也算完整,所以说它介乎于前述两者之间。
所以,如果你需要非常完整的工具组件请用DOJO,如果你想优化你的JS代码,提高书写技巧请用PROTOTYPE,如果你想两者兼顾就用JQUERY。
http://my.donews.com/woodstudio/category/ajax/dojo/
http://hi.baidu.com/qxlife/blog/item/9f7a04dbd83d4e65d1164e10.html
Eclipse安装AJAX环境(ATF,DOJO,Extjs…)
标签:gui, web
20071122 linux minigui
http://www.yippeesoft.com
主要参照:
http://blog.chinahr.com/blog/jiaxiao/post/32132
丝路花语 放飞理想,友谊长存!
编译:
make menuconfig
去掉了JPG什么得。。。。
没有安装到默认,自行指定,搞的比较麻烦,因为考虑原来得交叉编译
编译应用
gcc -o helloworld helloworld.c -I/home/sf/kvm/miniguiinstall/include/ -L/home/sf/kvm/miniguiinstall/lib/ -lminigui -lmgext -lm -lpng -lpthread -ljpeg -lttf -static
修改
仔细看一下你的配置文件MiniGUI.cfg与实际字体或其它资源文件路径是否一致,以及该路径下对应文件是否存在或名称是否是否正确
静态库的连接用法的确是 gcc -L libpath -llibname。
比如你的静态库放在 $HOME/lib目录下,静态库的名称是 libmylib.a,你的程序是 myproc.c 则gcc的用法是 gcc -L$HOME/lib -lmylib myprog.c -o myproc。
但是看你提问中又有dlopen函数,那么如果按以上的连接,肯定会找不到dlopen这个函数,因为这个函数是专门用于调用动态函数库 .so 的。所以你连接时必须要用 gcc -shared -L$(HOME)/lib -lmylib myproc.c -o myproc,其中-shared表示是调用动态连接库。这样gcc就不会报告dlopen找不到的错误了。但是这样的动态函数库后缀名应该是 .so的。
在调用动态连接库时,静态的库也是可以调用的。要注意的一点,如果你的$(HOME)目录下同时有 mylib.a 和 mylib.so,那么编译器会调用 mylib.so
你可以在编译配置文件时查找头文件和库文件,并按非标准的附加形式让C的预处理器和连接器通过。如下所示: CPPFLAGS=-I/path/to/include LDFLAGS=-L/path/to/library ./configure 如你使用csh及相容的Shell脚本作为你登录的脚本,则应该设为: env CPPFLAGS=-I/path/to/include LDFLAGS=-L/path/to/library ./configure
NEWGAL: Video mode smaller than requested.
NEWGAL: Set video mode failure.
GDI: Can not initialize graphics engine!
GDI: Error in loading raw bitmap fonts!
GDI: Can not initialize raw bitmap fonts!
DESKTOP: Initialization of GDI failure!
InitGUI failure when using /home/sf/kvm/mg-samples-1.6.9/src/MiniGUI.cfg as cfg file.
仔细看一下你的配置文件MiniGUI.cfg与实际字体或其它资源文件路径是否一致,以及该路径下对应文件是否存在或名称是否是否正确
偶然机会,认识了Minigui,就有忍不住想一探深浅的冲动。于是,在搜索了一些相关资料后就蠢蠢欲动了。首先就在自己的LINUX操作系统下建立 MiniGUI环境,几天摸索下来,竟然也成功了。还知道了MiniGUI的资源网站(http://www.minigui.org/重要)。下面就将自己的建立步骤写下,其中,我将自己所有下载的压缩文件都存放在/root/study/目录下,没有特别说明就不再重复了:
1.从http://www.minigui.org/res.shtml网站上下载相应的软件压缩包:
libminigui-1.3.3.tar.gz
minigui-res-1.3.tar.gz
mg-samples-1.3.0.tar.gz
mde-1.3.0.tar.gz
还要从相应的网站上下载qvfb-1.0.tar.gz压缩文件。
2.我在/root/software/下建立了minigui目录
cd /root/software/
mkdir minigui
3.解压qvfb-1.0.tar.gz压缩文件,并编译该工具包。
tar zxvf /root/study/qvfb-1.0.tar.gz (解压后生成qvfb-1.0文件夹)
cd qvfb-1.0
./configure
make
make install
qvfb& (出现一qvfb应用程序,则编译成功)
4.安装资源文件,进入minigui目录下,解压minigui-res-1.3.tar.gz
tar zxvf /root/study/minigui-res-1.3.tar.gz
cd minigui-res-1.3.3
make install
5.配置安装MiniGUI,进入minigui目录下,解压libminigui-1.3.3.tar.gz
tar zxvf /root/study/libminigui-1.3.3.tar.gz
cd libminigui-1.3.3
make menuconfig (配置相应的设置)
出现一配置工具,配置完退出后选种“Yes”退出。
make
make install
当系统停止输出后,该步骤将MiniGUI库安装到默认目录/usr/local/lib/目录下。此时查看/etc/ld.so.conf,如果内容中没有/usr/local/lib这一行,则在该文件的最后填加该行。
填加该行完成后,必须运行
ldconfig (不运行该命令,到后来做samples会出现问题)
6.编译运行演示程序,解压mg-samples-1.3.0.tar.gz压缩文件
cd /root/software/minigui
tar zxvf /root/study/mg-samples-1.3.0.tar.gz
cd mg-samples-1.3.0
./configure
make
之后,在/usr/local/etc/目录下找到MiniGUI配置文件MiniGUI.cfg,按照下面的配置改写:
[system]
gal_engine=fbcon改为gal_engine=qvfb
ial_engine=console改为ial_engine=qvfb
[qvfb]
defaultmode=640×480-16bpp
改完后保存退出即可。
cd /root/software/minigui/mg-samples-1.3.0/src
qvfb&
设置一下qvfb,选择File/configure,选择640×480,16bit。按Ctrl-c键退出,不要关闭qvfb运行程序。
./helloworle
好了,你可以看到运行在qvfb内的MiniGUI程序了。
假如运行成功,那么恭喜你了,你已经在linux操作系统下建立了MiniGUI环境了。
20071017 memory leak c++ new malloc CEGUI
http://www.yippeesoft.com
使用 memleak 检查和调试内存泄漏
http://blog.iyi.cn/hily/archives/2007/09/_memleak.html
memleak 的原理是利用 C 语言的宏调用来替代原有的函数调用,比如我们在代码中调用 malloc(s),实际是调用了:dbg_malloc(s),这个宏定义在 memleak.h 中给出:
#define malloc(s) (FILE_LINE, dbg_malloc(s))
memleak 维护了一个链表,在这个链表中保存着程序中对内存函数调用的记录,这些函数包括:malloc、calloc、realloc、free。每次调用这些函数时,就会更新这个链表。
有了这个表,我们就可以在适当的位置调用 memleak 提供的函数,显示一些重要的信息,包括 malloc、calloc、realloc、free调用的次数,申请及分配的内存数,调用的文件和位置等等,信息非常详细。有了这些功能,我们就很容易定位内存使用的错误源。
http://www.linuxquestions.org/questions/showthread.php?t=281830
"It\’s not an extra new-line, each line should be terminated by an "end of line" tag, and this is \\n under unix.
On MacOS, this used to be \\r, perhaps the reason why gcc is more tolerant on newer releases of this O/S."
– 有人思考过 –
"do you know real reason of that?"
– 马上就有人提出质疑 –
"There\’s probably still some ancient compilers out there (maybe even very old versions of GCC?) that want each line to end with a newline or else they crash. My guess is that GCC is just trying to help you make your code compatible with these dino\’s."
– 接着就有人提出自己的观点 –
"Actually, gcc warns about it because it has to according to the standard. Check out this link for a brief description: http://gcc.gnu.org/ml/gcc/2003-11/msg01568.html
If you have a compiler that doesn\’t warn you about the lack of a newline character then that compiler doesn\’t meet the standards. Burn the disc it came on and get a real compiler."
– 很快,依靠大家的力量,借助网络,答案浮出水面 –
"The C language standard says
A source file that is not empty shall end in a new-line character, which shall not be immediately preceded by a backslash character.
Since this is a "shall" clause, we must emit a diagnostic message for a violation of this rule.
This is in section 2.1.1.2 of the ANSI C 1989 standard. Section 5.1.1.2 of the ISO C 1999 standard (and probably also the ISO C 1990 standard)."
CEGUI(Crazy Eddie’s GUI http://www.cegui.org.uk)是一个自由免费的GUI库,基于LGPL协议,使用C++实现,完全面向对象设计。CEGUI开发者的目的是希望能够让游戏开发人员从繁琐的GUI实现细节中抽身出来,以便有更多的开发时间可以放在游戏性上。
CEGUI的渲染需要3D图形API的支持,如OpenGL或Direct3D。另外,使用更高级的图形库也是可以的,像是OGRE、Irrlicht和RenderWare,关键需求可以简化为二点:
1. 纹理(Texture)的支持
2. 直接写屏(RHW的顶点格式、正交投影、或者使用shader实现)
CEGUI(Crazy Eddie’s GUI http://www.cegui.org.uk )是一套开源的使用C++开发的游戏界面库, 基于LGPL协议. 它能减少游戏开发中繁琐而大量的UI开发工作量. 现有很多游戏开发都会利用或者是借鉴它.
在学习了解CEGUI之前, 先把CEGUI源代码的环境搭建起来. CEGUI使用了几套开源库Freetype(http://sourceforge.net/projects/freetype), Glut(http://www.opengl.org/resources/libraries/glut), Xerces(http://xml.apache.org). 更全的信息资料大家可以去相应的网站上面了解. 下载相关库或者源代码后, 先在IDE中设置好, 那么就可以先编译CEGUI.
注意在使用freetype库时, CEGUIBASE工程链接会报错,提示为CEGUIBase error LNK2001: 无法解析的外部符号 _otv_module_class. 解决方法是在Freetype工程中打开ftmodule.h文件, 把FT_USE_MODULE(otv_module_class)这句代码注释掉,然后重新编译既可.
使用 cegui 来制作界面 , 不论在何种平台下 , 有基本的三大步骤要做 :
1, 创建一个 CEGUI::Render 实例
2, 创建 CEGUI::System 对象
3, 调用各种方法来渲染用户界面
第一步 , 在我使用的 ogre 环境下使用以下代码来创建 CEGUI::Render 实例
Ogre3D
CEGUI::OgreCEGUIRenderer* myRenderer =
new CEGUI::OgreCEGUIRenderer(myRenderWindow);
第二步相当简单 , 可使用
new CEGUI::System(myRenderer);
第三步,基本上来讲,大部分平台下,如 direct3D, OpenGL, 我们在渲染循环的尾部调用
CEGUI::System::renderGUI 来开始界面的渲染。如果我们使用 ogre3d 引擎,这一步不需要
我们显示的执行。因为 ogre 引擎已经考虑了。
CEGUI ,全称 "Crazy Eddie\’s GUI System" ,是一个专门的用户界面库,开源并且免费,它支持 DirectX8 、 DirectX9 ,除了可以作为 OGRE 的界面外挂,还支持另一个免费开源的 3D 引擎 Irrlicht 。由于它功能的相对强大和灵活, OGRE 的开发团队一直在推荐 OGRE 用户使用这个 CEGUI 来开发用户界面,逐渐抛弃 OGRE 本身过于简陋的 GUI 插件。尤其是在行将到来的新版本 OGRE 1.5 的声明中特别强调了这一点,尽管这个版本仍然暂时保留内置 GUI 系统,但 OGRE 1.5 将会是最后一个保留内置 GUI 的版本。 OGRE 看来似乎将专注于向一个纯粹的、然而富于协作和扩展性的图形引擎发展,这应该得益于它的庞大的社群支持,使得很多事情可以通过外挂一些更专业的引擎来实现,物理引擎使用 ODE 、 Tokamak 、 NovodeX ,网络引擎使用 openTNL 、 RakNet 、 eNet ,声音引擎使用 FMod 、 OpenAL ,以及这个界面引擎,使用 CEGUI 。外挂现成模块的好处就是可以专注于一个方面,开发一个五脏俱全的游戏引擎并不是个容易的事情,市面上最负盛名的几个商业引擎的开发, Unreal 、Renderware 、 Lithtech ,往往要耗费数百人年,并且在这些商业引擎中同样会使用外挂的商业库,在这个年代,没有人可以从头创建一切。
debugging memory leaks on uClinux專案程式已經膨脹到超過 50 個 .c, 外加 link 一份超大 C++ binary object, 這麼大的程式要在uclinux 上debug memory leak還真麻煩……
<br />
<br />好啦, 我承認當初不應該輕易打破 portability原則, 搞得現在沒辦法在 x86 debug.
<br />
<br />uclibc 好像有提供一些支援, 看到了這個
<br /><em>>make menuconfig</em>
<br /><strong><em>uClibc development/debugging options</em></strong>
<br /><strong><em> Build malloc with debugging support </em></strong>
<br /><strong><em></em></strong>
<br />希望這招有效, 明天來驗證
<br />
20071016 gui ide 可视化
http://www.yippeesoft.com
eclipse 可视化java组件开发利器
一直做基于j2ee的web应用,开发工具用的eclipse,最近项目中需要一个可视化的工具,要用swing
了。可是eclipse中不支持swing的可视化开发。又不想用D版的JBuilder。
从网上找了一个eclipse的插件——Visual Editor.
VE简介:
Visual Editor是一个开源的eclipse编辑器。它同JDT、PDE等其它eclipse的工具项目一样,
是一个全新的eclipse工具项目。它可以进行可视化的编辑java GUI程序,也能编辑可视化的
Java Bean组件。它能与eclipse的Java Editor集成在一起,当在Visual Editor中编辑图形
界面时,会立即反馈到java Editor中的代码。反之亦然。
其官方网站介绍
The Eclipse Visual Editor project is a vendor-neutral, open development platform supplying frameworks for creating GUI builders, and exemplary, extensible tool implementations for Swing/JFC and SWT/RCP. These tools are exemplary in that they verify the utility of the Eclipse Visual Editor frameworks, illustrate the appropriate use of those frameworks, and support the development and maintenance of the Eclipse Visual Editor Platform itself.
The purpose of the Eclipse Visual Editor Project is to advance the creation, evolution, promotion of the Eclipse Visual Editor platform, and to cultivate both an open source community and an ecosystem of complementary products, capabilities, and services. In particular, the Visual Editor Project intends to be useful for creating GUI builders for other languages such as C/C++ and alternate widget sets, including those that are not supported under Java.
下载与安装
Visual Editor的官方网站 http://www.eclipse.org/vep/去下载适合你的操作系统平台和
eclipse、jdk版本的ve吧。
swt-designer
软件和插件应该都安装成功,产品配置和install.log里都没发现问题,可是新建Visual
Editor的界面的顶部写的不是Creat a new java Class using the Visual Editor而是New Java
Visual Class,不懂。
软件版本:jdk1.4.2,eclipse 3.0.1,emf-sdo-runtime-2.0.1,GEF-runtime-3.0.1,VE-SDK-1.0.2.1
Visual Editor 的内幕
Visual Editor 的第一个具体实现,作为一个针对 AWT/Swing 的 GUI 构建器,对于 GUI 开发人员来说已经是足够令人满意的了,但是如果您是那种希望了解内幕的开发人员,那么还可以看到许多东西:Visual Editor 利用一些非常有趣的技术,这些技术本身都是有用的。如果您对于构建自己的图形化编辑器或者对工具建模感兴趣的话,那么现有的 Visual Editor 实现对于您可以完成的事物来说只是一个线索。
Visual Editor 所利用的最为明显的工具是 GEF,即图形化编辑框架(Graphical Editing Framework)。GEF 建立于本地 Eclipse 图形化工具集 SWT 之上,以使得开发一个图形化编辑器或者所见即所得文本编辑器更为容易。如果您熟悉 SWT (或者 AWT/Swing,在这方面它们是类似的)中的图形原语,那么您会知道绘制和处理任意的形状(比如矩形、箭头和椭圆)是比较困难的,更不用说管理它们之间的关系以及它们所代表的数据模型了。
GEF 被划分为两个部分:第一部分是 Draw2D 插件,这是一个轻量级的绘图和呈现包,用于帮助您绘制图形。第二部分是 GEF 插件,除了其他工具以外,这一部分中还增加了选择和创建工具、工具选项板,以及用于在数据模型和视图之间进行映射的控制器框架。
GEF 是一个模型无关的框架,但是作为 Visual Editor (以及其他生成代码的图形化工具)的一部分,它在后台使用 Eclipse 建模框架(Eclipse Modeling Framework, EMF),以在模型、Java 类和图形化表示之间进行映射,其中模型是使用 XML 元数据交换(XML Metadata Interchange, XMI)在内部存储的。EMF 的重要特性之一是它确保所有这些映射都是一对一的;所以尽管 XMI 可以被认为是模型的标准表示,但是在代码和图形之间来回切换并不会丢失任何信息。这就是为什么 Visual Editor 只需要保存模型的一种表示(即 Java 源代码),以及开发人员可以自由地在图形化编辑器之外编辑该源代码的原因。
我也来推荐一个可视化的 GUI 设计工具 Sally(http://sallyide.sourceforge.net)
自已写的JAVA GUI BUILDER
JAVA选修课的作业,由于时间短,写的很不完整,只有基本添加控件和修改属性。不能保存,也不能生成代码,不过实现这两个功能都不是什么难事了。但是要做得像VE那样就有点难度了,因为要实时对JAVA代码进行解析(词法分析、语法分析、自动机……想想就头大)。
原本觉得神秘的GUI设计器就这样一点点的写了出来,发上来供有兴趣有朋友交流参考。
开发环境:windows xp sp2 + jre 1.5.04 + eclipse 3.2
注:代码中使用了一些JAVA5.0的新特性,因此无法在1.4下通过编译。
OVERVIEW
"Sally – A Simple C++ IDE" is a simple development environment for WindowsXP. The program is written in the C# programming language, and requires the Framework .Net 1.1 to run. It might work on Win98, ME, NT, 2000, but it has not been tested yet.
The Framework .Net 1.1 can be downloaded here: FRAMEWORK .NET 1.1 (~20Mb) and can be installed side by side to other versions (older or newer) of the .Net Framework.
SmartWin++是纯粹的c++ Gui库。
支持操作系统:windows,wince,linux暂时不支持
支持编译环境:visual c++,dev cpp
使用技术:标准c++,boost++,win32 api
限制:不支持activeX/COM/.NET,仅仅是一个图形库而已
特点:类型安全,没有扩展编译信息,使用c++而不是c,轻量级的,基于模板的,可维护的,现代的,静态链接,简单易学,支持winCe,自由而且免费
SmartWin的设计是为了做为MFC的替代品而出现的.
[下转]
SmartWin++ is a 100% free C++ GUI library for developing Windows applications, it\’s free both as in "free beer" and as in "free speech", you can freely use SmartWin++ for commercial applications and for Open Source applications thanx to its BSD license!
SmartWin++ was initially made to replace MFC and WTL but today thanx to WineLib it can also be used on non-Windows systems. SmartWin++ is a modern designed C++ library, it uses STL where possible and boost where needed, but if you download SmartWin++ you don\’t need to bother downloading boost, everything you need is bundled in the download except for the C++ compiler.
Good compilers can be found for free either at Microsoft (Visual C++ 2003 Toolkit) or at Bloodsheds (Dev-C++).
"Sally – A Simple C++ IDE" is a GPL multi-compiler C++ IDE for WindowsXP/2000.
What makes it different from other similiar programs is a .Net style Visual GUI Designer for native C++ application that can be used with both Mingw and Visual C++ compilers (it\’s based on the emerging static library SmartWin++). No extern dlls (or the .Net framework) are required to run the executables and native windows application can be made with virtually no C++ code. Moreover, it has an embedded icon and image editor that is able to edit, convert and save images in the following formats: .ico,.bmp,.gif,.tiff,.png,.jpg.
It\’s a very useful solution for users of the Mingw or Visual C++ compiler that want to develop native applications for the Windows operating system with a visual GUI designer for free!
The program is written in the C# programming language, and requires the Framework .Net 1.1 to run. It might work on Win98, ME, NT but it\’s not been tested yet.
NOTE: "Sally – A Simple C++ IDE" needs write access to the installation directory.
A "NO-INSTALLATION-PACKAGE" is available to download for all the people that have problems with this issue (or that just want to test if the program works on their system).
Matisse — 最佳的 Java GUI builder 之一,用户界面非常简单。它使在 Java 中构建 GUI 的体验就像 Visual Basic 的体验一样。它允许您在所有平台上自由创建专业的外观和行为。
Java Gui Builder可以为你的应用程序减少用于建造GUI的代码量。使用一个XML描述,Java Gui Builder将建造能够主流代码接受的应用程序窗口、控件、和对象。
官方网站:
http://sourceforge.net/projects/jgb/
Matisse是NetBeans中新一代的UI设计工具,Matisse将是一个支持Swing显示布局的工具,通过Matisse开发者可以轻松的设计基于Swing的应用。
开发者将可以轻松的设计更加漂亮的UI。JSR 209将实现“移动Swing”,将来Matisse有可能支持JSR 209。
由此可见,在Eclipse的竞争下,Netbeans终于开始加快自己的脚步了。
具有震撼力的demo:
http://www.netbeans.org/files/documents/4/475/matisse.html
Jigloo GUI Builder JAVA的GUI编辑插件
主页 http://cloudgarden.com/jigloo/
Eclipse GUI 开源项目:Visual Editor Project
下载链接:
Eclipse 平台入门:IBM 官方文档
Eclipse 3.1.1:点击这里
Eclipse 3.1.1 语言包:点击这里(两个包都要下载,否则汉化不完全,安装方法请查找本站日志)
Visual Editor 1.1.0.1:点击这里
利用 Eclipse Visual Editor 项目构建 GUI:IBM 官方文档
安装步骤(以 Eclipse 3.1.1 为例):
1、下载 Eclipse SDK 3.1.1 并解压,无需安装。
2、安装当前版本的 Eclipse 和相关支持类库(在 VE 的下载页面有当前版本的支持类库):EMF Build 2.1.0 和 GEF Build 3.1。
3、然后下载 Visual Editor 1.1.0.1 版本:VE-SDK-1.1.0.1.zip。
4、下载的都是 ZIP 压缩文件,在 Eclipse 关闭时,分别把 EMF Build 2.1.0、GEF Build 3.1、VE-SDK-1.1.0.1 分别解压,请将其压缩包中的 plugins 和 features 目录下的内容解压到 Eclipse 安装目录的相应文件夹。
5、若安装后启动 Eclipse 始终没有“Visual Class”项目,请关闭 Eclipse,把 Eclipse 安装目录中的 Configuration 目录里除了 Config.ini 的其他文件夹删除。
6、启动 Eclipse 新建项目,然后在工具栏上的“新建 Java 类”图标上,点击右边的小箭头,下面的扩展菜单上会出现“Visual Class”。这就是一个 Visual Editor 的入口。
7、成功!^___^
sally IDE 真的很sample啊
皮皮鲁 @ 2006-12-21 16:33
很sample!!, 啥东东都要自己弄,配了2天终于可以用VC++2005的编译器来编译东西了,不过编译Sally 自带的基于smartwin++的工程还是不行, 用mingw编译倒是一切顺利,没啥问题,但是说到mingw就郁闷(集成的是gcc3.4.5) ,编译东西真的是很慢,慢得要死啊!而且编译出来的东西巨肥大,strip过后还是比VC编译出来的(for release)的大很多!还有mingw带的windres,居然不能解析路径中的空格,真是@##@¥&#¥,这个问题把我郁闷坏了,也或许是我搞得不对头吧,唉……
看来大多数时候,免费的东西就是不好用啊!
Win32 Visual C++ IDE v0.01
Visual GWin++ is an open source, free Win32 visual C++ IDE. It
can be used to visually create windows and controls on those
windows, then generate the C++ code for those forms and compile
it using the free g++ compiler. It is currently developmental
software, but it is stable and can create full applications.
可视化C++开发工具
Visual GWin++
http://www.calcmaster.net/visual-c++/
版本号: 6.9 Beta (4.9.9.2)
软件语言: 多国语言(含简体中文)
运行环境:Microsoft Windows 95, 98, NT 4, 2000, XP
软件大小: 28.7 MB
软件分类: 外国软件 / 免费版 / 编程开发
软件说明:wx-Dev-C++ 6.9(上图) 是Dev-C++5.0(下图)的扩充版本,由Colin Laplace制作。这个版本可以使用视觉设计帮你建立对话(dialog)和框架(frame),功能上比Dev-C++更加强大。
Dev -C++是很棒的Windows
下小型C/C++IDE。完全免费,支持中文界面(安装后,设置的时候选Chinese就可以了)。如果不习惯用BC3.1或觉得BC3.1比较古老不支
持一些新的 C++语法的话用这个不错做些小东西、小试验很不错,它也比较适合学习 C++的新手使用。
Dev-C++.png
Dev-C++官方网站:http://www.bloodshed.net/
Http下载地址:http://www.bloodshed.net/dev/devcpp.html
wx-Dev-C++:http://wxdsgn.sourceforge.net/
标签:gui, ide20070919 Minigui 触摸屏 校准
http://www.yippeesoft.com
[quote]
如何使用MiniGUI进行屏幕校正?
简单回答
用户只需调用一个API接口:
SetMouseCalibrationParameters( const POINT* src_pts, const POINT* dst_pts),
就可以实现校正的功能。
详细回答
校正的原因
从触摸屏设备读出的数据不能直接当作屏幕的像素坐标值。因为现在的触摸屏设备大部分是利用电阻原理设计的,并且从触摸屏设备里读出的数据是由A/D 转化的,与屏幕像素坐标数据没有直接匹配的关系,只是一个线性关系。如果不校正的话,当点击触摸屏上的某个点,处理程序就不能得到点击点正确的像素坐标值,自然也就不会作出正确的相应,所以需要校正。
校正的原理
当MiniGUI的输入设备为触摸屏设备时,从设备中读出的坐标值与实际点击的坐标遵循y=ax+b关系式 (a、b 为系数,x为从设备中读出的坐标数据,y为实际的屏幕坐标) 所以得到那两个系数值就可以正确的校正鼠标,采用Minigui的一个函数接口就可以完成这些步骤:
SetMouseCalibrationParameters ( const POINT * src_pts, const POINT * dst_pts )
其中dst_pts 是5个屏幕坐标点,src_pts 为5个从设备中读出的坐标点。
比如:
POINT src_pts [5] = &leftsign;&leftsign;5, 10&rightsign;, &leftsign;600, 20&rightsign;, &leftsign;620, 450&rightsign;, &leftsign;20, 470&rightsign;, &leftsign;310, 234&rightsign;&rightsign;;
POINT dst_pts [5] = &leftsign;&leftsign;0, 0&rightsign;, &leftsign;639, 0&rightsign;, &leftsign;639, 479&rightsign;, &leftsign;0, 479&rightsign;, &leftsign;320, 240&rightsign;&rightsign;;
利用这些数据,就可以求出 a,b的系数值,并且自动校正鼠标的坐标。
校正的实现
* 线程版:
只需参考mg-simple 里的helloworld.c文件,调用了SetMouseCalibrationParameters函数接口。
* 进程版:
与线程版类似,不同的地方是SetMouseCalibrationParameters 函数接口是在服务器端调用。
校正小技巧
src_pts5个点的采样:写一个主窗口的例子,在回调函数中填入下面的代码,同时主窗口的风格不要添加标题栏,并且将窗口设置成和屏幕一样的大小。
case MSG_LBUTTONDOWN:
x = LOWORD (lParam);
y = HIWORD (lParam);
dst_pts [nClickCount].x = x;
dst_pts [nClickCount].y = y;
nClickCount ++;
[/quote]
论点:MINIGUI不可能实现正常触摸屏校准程序
前提:
一般液晶屏大小为320*240等
一般触摸屏数据超过该范围
如果你人品极佳,触摸屏数据能够象MINIGUI的WIKI例子一样那么正好,那么请BS我。
论证:
MINIGUI IAL层捕获触摸屏数据,处理后发送给界面应用程序。
那么:
如果发送的是经过校准的屏幕坐标,那么校准程序就没有意义
如果发送的是触摸屏坐标,那么。。
根据MINIGUI的文档,你不可能捕获到LBUTTONDOWN
如果你试图使用NCLBUTTON,那么你会发现坐标数据是屏幕最大值而不是触摸屏值
我承认我人品不好,找不到MINIGUI 例子里面那么正好和液晶屏吻合的触摸屏。
/**
* \\def MSG_LBUTTONDOWN
* \\brief Left mouse button down message.
*
* This message is posted to the window when the user presses down
* the left button of the mouse in the client area of the window.
/**
* \\def MSG_NCLBUTTONDOWN
* \\brief Left mouse button down message in the non-client area.
*
* This message is posted to the window when the user presses down
* the left button of the mouse in the non-client area of the window.
20070912 minigui 触摸屏 tslib 资料
http://www.yippeesoft.com
(rockins注:这里给出的只是摘要,完整内容见PDF附件。由于某些原因,对PDF文档的权限作了口令限制。)
摘要:本文给出了一种通过tslib为MiniGUI提供触摸屏的IAL引擎的方法。测试情况表明,该方法能够有效工作。同时,由于tslib作为高层接口所具有的抽象能力,这种方法也应该能够在多种其它平台上工作。
关键字:MiniGUI、触摸屏、IAL引擎、tslib、ARM-Linux
修改 MiniGUI.cfg ,如下
[system]
# GAL engine
gal_engine=fbcon //这里修改
# IAL engine
ial_engine=dummy // 这里修改,我不知道你会用什么触摸屏,所以就用dummy肯定不会错
mdev=/dev/touchscreen/0raw //解摸屏,如果前面是 dummy ,则这里改不改无所谓
mtype=none
[fbcon]
defaultmode=240×320-16bpp // 根据你的LCD大小自己设置,设置错误minigui 就启动不了
ial_engine 一开始建议用 dummy ,先让 minigui 跑起来,以后再把 触摸屏 加进去,保证尽可能减少错误的发生
Tslib编译安装
Arm2410自带tslib库。tslib.tar.gz, k�i8i1biA
Arm2410+Redhat+armv4l-unknown-gcc+minicom P?M&rightsign;ijXWj
1 解压缩tslib库文件
2 环境配置,编译
export TSLIBDIR=./tslib //源文件文件夹
export TSLIBINST=./tslib-install //安装目录 ughi1ff]
export LD_LIBRARY_PATH=$TSLIBINST/lib
smd
./configure –host=armv4l-unknown-linux –prefix=$TSLIBINST CC=armv4l-unknown-linux-gcc
Make –j4
Make install
3开发板环境配置
在开发板/mnt/yaffs下建一个touchscreen 的目录
将 */tslib-install 文件夹下的文件拷贝到touchscreen中
ts-uptech.o也考到touchscreen 中
配置环境变量
export TS_ROOT=/mnt/yaffs/touchscreen
export TSLIB_TSDEVICE=/dev/input/event0 // //指定触摸屏设备节点文件
export TSLIB_CONFFILE=$TS_ROOT/etc/ts.conf //配置文件
export TSLIB_CONSOLEDEVICE=none //tslib运行需要的控制台,这里就是LCD屏幕
,//设定控制台设备为none,否则默认为/dev/tty,
export TSLIB_CALIBFILE=$TS_ROOT/etc/ts-calib.conf //校正文件
export LD_LIBRARY_PATH=$ LD_LIBRARY_PATH:$TS_ROOT/lib //库文件
export TSLIB_PLUGINDIR=$TS_ROOT/share/ts/plugins //插件路径
HS yQM n0
insmod ts-uptech.o //加载驱动
ts_calibrate 校正坐标 五点校正
出现的问题:运行ts_calibrate 后出现tsconfig: Success,但是屏幕上不出任何东西,网上查了一下,原来是TSLIB_PLUGINDIR这个环境变量的值写错了。修改后正常运行 3UVt&rightsign;SnD5
参考:http://blog.chinaunix.net/u1/33412/showart_282396.html
工作笔记——Tslib的编译和触摸屏测试
1.编译
前段时间非常的郁闷…因为在运行生成校准程序ts_calibrate时总是出现一个错误:ts_open:Inappropriate ioctol for device
后来无数折腾后经过nanfansky指点才知道是自己板子的触摸屏驱动不支持ioctl操作,狂汗…
重新编译tslib
cd tslib-1.3
export CC=/usr/local/arm/2.95.3/bin/arm-linux-gcc //指定交叉编译器
./autogen.sh //生成config文件
export PATH=/usr/local/arm/2.95.3/bin:$PATH
echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache
./configure –host=arm-linux –cache-file=arm-linux.cache –enable-inputapi=no
vi src/ts_read_raw.c //修改内容如下
make
****************************************************
在make之前,为了支持触摸屏,打开src/ts_read_raw.c文件,查看触摸屏驱动程序数据结构,看与ts_read_raw.c结构中的哪个一样,就将代码中的 char *defaulttseventtype="UCB1×00"; 修改为 自己板子上对应的驱动结构。
因为我的驱动对应的是h3600_ts_event结构
typedef struct &leftsign;
unsigned short pressure;
unsigned short x;
unsigned short y;
unsigned short pad;
&rightsign; TS_RET;
所以修改为:
char *defaulttseventtype="H3600";
************************************
如果不修改源代码,也可以在后面的测试中重新指定环境变量
export TSLIB_TSEVENTTYPE=H3600 //通过这个对tslib中的设备结构体定义
*****************************************************
如果你触摸屏驱动程序支持ioctl操作,上面的configure操作中的–enable-inputapi=no]你可以删除。
然后就可以make了
*************************************************
2.测试:
2.1 我在/root/share下新建了一个tslib目录,只copy了一些需要的文件
mkdir /root/share/tslib
mkdir /root/share/tslib/tests
mkdir /root/share/tslib/plugins
mkdir /root/share/tslib/lib
mkdir /root/share/tslib/etc
cp /root/2410s/tslib-1.3/tests/.libs/ts_* /root/share/tslib/tests/ //几个所需的测试文件,比如生成的校准文件,测试文件等等
cp /root/2410s/tslib-1.3/src/.libs/libts-0.0.so.0* /root/share/tslib/lib/ //几个所需的库文件
cp /root/2410s/tslib-1.3/src/.libs/libts.so /root/share/tslib/lib/ //几个所需的库文件
cp /root/2410s/tslib-1.3/plugins/*.so /root/share/tslib/plugins/ //触摸屏插件模块库
cp /root/2410s/tslib-1.3/etc/ts.conf /root/share/tslib/etc/ //配置文件
2.2 连接板子
执行minicom
mount –t nfs –o nolock 192.168.0.155:/root/share /mnt/nfs使板子mount上PC,共享路径/root/share
2.3 做链接
ln -s /dev/fb/0 /dev/fb0
//帧缓冲设备板子上为/dev/fb/0,但程序默认为/dev/fb0,所以做了一个链接/dev/fb0到/dev/fb/0
ln -sf /dev/touchscreen/0raw /dev/ts
//qtopia要打开/dev/ts,你没有这个文件, 所以 dev下边应该有触摸平的节点,
相当于, qtopia启动要找 /dev/ts, 但是你只有/dev/touchscreen/0raw,
所以你把ts链接到你的触摸屏的文件就可以了!
我得触摸屏设备节点文件为/dev/touchscreen/0raw
所以,建立链接 /dev/ts 到/dev/touchscreen/0raw
(这里要自己针对自己板子具体的文件进行设置,要不然也会报错)
2.4 指定环境变量
export QWS_MOUSE_PROTO=TPanel:/dev/touchscreen/0raw
export T_ROOT=/mnt/nfs/tslib
export LD_LIBRARY_PATH=$T_ROOT/lib //指定tslib库文件路径
export TSLIB_CONSOLEDEVICE=none //tslib运行需要的控制台,这里就是LCD屏幕 ,设定控制台设备为none,否则默认为/dev/tty,
export TSLIB_FBDEVICE=/dev/fb0 //指定帧缓冲设备
export TSLIB_TSDEVICE=/dev/touchscreen/0raw //指定触摸屏设备节点文件
export TSLIB_CALIBFILE=$T_ROOT/etc/pointercal //指定触摸屏校准文件pintercal的存放位置
********************************************************************
注:qte的/src/kernel/qwsmouse_qws.cpp里面校准文件默认打开是在/etc下面为/etc/pointercal,
可是我得板子的根文件系统为只读,所以我放在/mnt/nfs/tslib/etc下面了,
所以在交叉编译qte的时候需要修改qwsmouse_qws.cpp
**************************************************
export TSLIB_CONFFILE=$T_ROOT/etc/ts.conf //指定TSLIB配置文件的位置
export TSLIB_PLUGINDIR=$T_ROOT/plugins //指定触摸屏插件所在路径
2.5 校准
运行校准程序校准屏幕(5点校准)
cd $T_ROOT/tests
./ts_calibrate //板子上陆续出现5个光标,点击完毕后会生成校准文件pintercal存放在$T_ROOT/etc/下面
********************************************
ts_calibrate是一个应用程序,在屏幕上画几个按钮,将用户点击后从ts驱动获得的数据和
屏上的坐标位置通过一套算法来获得校准数据写到一个校准文件里。
******************************************
3. 可能遇到的错误分析:
在测试的时候,运行./ts_calibrate又出现了令人十分之郁闷的错误:
ts_config: Success
追查后应该是在打开ts_config中出现了错误(居然报Success,无欲至极)
在网上发现多是这个错误(这是1.4版本的错):
Couldnt load module input
No raw modules loaded
tsconfig: Success
我没有上面那两行的错误,不过应该是一样的错误原因
那么错误就定位在 ts_config 里。并且可以进一步确定是在加载插件模块时出的错
查询了ts_load_module.c这个文件发现网上和自己的不太一样(网上公布的源码是1.4或者是0.1.1的吧)我的是1.3的
我下载了tslib-0.1.1的后重新实验 就发现错误的是这样子的(第一个错误是由ts.conf所决定的)
Couldnt load module pthres
No raw modules loaded
tsconfig: Success
阅读了tslib 的原代码,知道了cstdlib 库里的一个函数: getenv
是用来得到指定系统环境变量的值。是为了测试 tslib 是否得到正确的环境变量。
其环境变量默认的值在readme中有注明。
加载插件模块时出出错分析:
ts_calibrate会打开ts_config
ts_config函数里首先会读取 tslib 配置文件(ts.conf,由 TSLIB_CONFFILE环境变量指定,在tslib/etc下面),
然后根据这个文件逐个加载插件库
1.3版本的ts.conf内容为
module mousebuts
moudle variance xlimit=50 ylimit=50 pthreshold=3
moudle dejitter xdelta=1 ydelta=1 pthreshold=3
moudle linear
ts_config又会调用ts_load_module加载库。从这个函数里,程序先是得到配置文件中指定加载的模块名,
然后根据模块名构造了一个 so 文件文件名,然后调用了系统函数 dlopen 加载库!
Linux 下的加载dlopen 类似于 Windows 下动态链接库的函数:dlopen
错误就应该出在构造的库文件名是错误的—其指定的文件不存在
—从而导致 dlopen无法加载。所以才提示找不到文件或目录!
那么这样就是应该把需要的mousebuts.so variance.so dejitter.so linear.so应该复制到/tslib/plugins中
(上面修正后作了这一步,就可以拉,就不会出现错误拉)
**************************************
这里来谈一谈tslib-1.4,和1.3有一点点不一样,主要是配置文件的差别
一般来说,tsllib-1.4种一个完整的ts.conf配置文件如下所示:
module_raw input
module pthres
module variance delta=30
module dejitter delta=100
module linear
出现这个错误
Couldnt load module input
No raw modules loaded
tsconfig: Success
第一行告诉tslib从linux的输入设备读取数据,需要用到input这个模块,也就是plugin目录下的input.so文件,
所以你的TSLIB_PLUGINDIR一定要配置正确,让tslib能够找到模块文件。
其他参数分别控制触摸点的连续下压、变化宽度、轨迹变化和线性校准。
也是要把其对应的需要的几个库文件复制到/tslib/plugins中
第二行导致"No raw modules loaded."的原因有两个:
注意:一是你的ts.conf中没有指定module_raw,自带的ts.conf的所有module_raw都被注释掉了,
# Uncomment if you wish to use the linux input layer event interface
# module_raw input
# Uncomment if you\’re using a Sharp Zaurus SL-5500/SL-5000d
# module_raw collie
# Uncomment if you\’re using a Sharp Zaurus SL-C700/C750/C760/C860
# module_raw corgi
# Uncomment if you\’re using a device with a UCB1200/1300/1400 TS interface
# module_raw ucb1×00
# Uncomment if you\’re using an HP iPaq h3600 or similar
#module_raw h3600
# Uncomment if you\’re using a Hitachi Webpad
# module_raw mk712
# Uncomment if you\’re using an IBM Arctic II
# module_raw arctic2
你应该打开至少一个module_raw选项,有人就选择了input,去掉了它的注释
得到module_raw input
另一个原因就是你没有正确配置TSLIB_PLUGINDIR,tslib从你指定的目录中没有找到plugin需要的模块文件,
请检查你的路径和文件。
标签:gui, lib, minigui, tslib, 触摸屏, 资料20070813 GhostDoc SandcastleGUI
http://www.yippeesoft.com
使用SandcastleGUI让使用文档更加专业
好用的Help档产生器–NDoc的作者Kevin Downs在2006年7月宣告不再投入NDoc Open Source Project的开发,最终NDoc的。让Kevin决定退出的理由之一是微软推出了SandCastle
SandCastle目前最新的版本是Dec 2006 CTP,不像NDoc是个具有完整介面的GUI工具,主要为两只命令列工具程式(MrefBuilder & Build Assembler),要建立CHM档得透过一连串的Command Line操作,对用惯NDoc的人来说挺不人性化的,所幸开发社群已有人写出整合SandCastle的GUI介面,例如: SandCastleGUI1.3
资源:
2.2 下载以下工具并安装:
HTML Help Workshop
Sandcastle -June 2007 Community Technology Preview (CTP)
Sandcastle Help File Builder1.4.0.1
VS2005代码文档生成
在VS2003里可以方便的使用NDOC生成代码文档,但NDOC不支持2005,所以只能用其他方法了。微软官方的文档生成工具Sandcastle+ htmlhelp非常强大,不过是命令行的,使用不大方便。不过有人写了GUI,例如SandcastleGui和Sandcastle help File Builder( 用过比较好用)。
Sandcastle+Html work shop + Sandcaste help file builder使用:
1. 下载Sandcastle(TCP),HTML Work Shop,Sandcastle Help File Builder 并安装。
2. 生成文档.
。首先要为项目生成一个XML文件,在VS2005的C#项目–属性–生成–项中勾选XML documentation file,设置XMl文件名,设置完毕,再次生成该项目,就可以生成属于它的XML文件了。
。然后打开我们已经安装好的Sandcastle Help File Builder并对它进行设置
。点击Add按钮,选中项目生成的exe,dll,xml文件
。保存该项目后点击Namespaces按钮,选中想要生成帮助文档的Namespace
。设定Dependencies选项,把项目中所引用到的dll文件加载进去
。设置HtmlHelp1xCompilerPath为HTML Help Workshop的安装路径,设置SandcastlePath为Sandcastle的安装路径
。设置文档的输出路径OutputPath,默认输出路径在项目所在目录的Help文件夹下
。最后点击顶头菜单Documentation下拉菜单中的Build Project选项(或直接使用快捷键Ctrl+Shift+B)即可生成所需的帮助文档
经过以上步骤,您就可以成功的为您的项目生成帮助文档了。
使用GhostDoc为代码生成注释文档
介绍:
GhostDoc是Visual Studio的一个免费插件,可以帮助开发人员编写XML格式的注释文档。
C#中XML格式的文档注释好处多多:Visual Studio会在很多地方显示这些注释内容(例如,编辑器的工具提示或对象浏览器),还有一些工具(比如NDoc或微软的文档工具Sandcastle)也可以利用这些注释生成具有良好外观的帮助文件。这些都让XML格式的注释看上去很美——但很不幸,你首先得编写大量简单、乏味的注释。
GhostDoc可以做什么?
GhostDoc为Visual Studio中的C#代码编辑器安装了一个新的命令。在编辑源文件时,只需将光标置于要添加文档的方法或属性内部,然后通过热键(默认为Ctrl+ Shift+D)或右键菜单中的Document this菜单项调用命令,GhostDoc就会插入一段XML格式的注释。你也许会想到在方法或属性前面键入"///"时的类似效果,但是后者只能创建一段空的注释构造,而GhostDoc则能够生成大部分实用的注释。
如果你的类成员是用于实现接口或重写基类的成员,GhostDoc会使用既存的文档,不论这些接口或基类来自何处。这样你就可以重用大量的微软编写的文档 ——是否想起了在实现IEumerable接口时,需要考虑如何为GetEnumerator()方法添加注释。
如果没有既存的文档可用,GhostDoc会试着”猜测”如何为你生成注释。这主意初看起来也许有点奇怪,不过在特定条件下(后面会提到) GhostDoc做的很不错。有时候它”猜测”的结果会不太准确,甚至有些搞笑,但平均下来,修改这些生成的文档还是要比完全手工去写省了不少时间。
GhostDoc事实上并”不懂”英语,那为何它生成的文档却常常令人相当满意?其中的基本原理颇为简单,GhostDoc假定你的代码遵从微软类库开发人员设计规范:
1. 你的代码使用Pascal或Camel命名法为由多个单词组成的标识符命名
2. 你的方法名通常以动词开头
3. 你在标识符中不使用缩写
如果你能够遵从这些规则(比如,使用ClearCache()而不是Clrcch()),同时使用一些自解释的标识符名称,那么GhostDoc就能派上用场了,它把标识符分割为几个单词,将它们组合来生成注释,也许并不完美,却给你一个良好文档的开始。
文本的生成使用可定制的规则和模板,除了内置的规则,还可以定义新的自定义规则来扩展或替换既有的规则(为你的自定义规则提供更高的优先级或禁用内置规则)。
上面提到过,GhostDoc并”不懂”英语,但它会尝试使用某种机制来提高生成注释的质量:
1. 动词的处理机制(GhostDoc假定方法名的首个单词为动词):Add->Adds,Do->Does,Specify->Specifies;
2. "Of the"排序组织机制:ColumnWidth -> Width of the column.
3. 一些特殊形容词的特殊合并机制:例如,MaximumColumnWidth->”Maximum width of the column”而不是”Width of the maximum column”
4. 对首字母缩写组成的常量的自动检测,并通过一个列表来处理其它的一些首字母缩写术语
5. 使用一个单词列表,以决定何时不使用”the”:AddItem -> Adds the item, BuildFromScratch -> Builds from scratch
下面是应用GhostDoc的一些例子:
/// <summary>
/// Determines the size of the page buffer.
/// </summary>
/// <param name="initialPageBufferSize">Initial size of the page buffer.</param>
/// <returns></returns>
public int DeterminePageBufferSize(int initialPageBufferSize)
&leftsign;
return 0;
&rightsign;
/// <summary>
/// Adds the specified item.
/// </summary>
/// <param name="item">The item.</param>
public void Add(string item)
&leftsign;
//does something
&rightsign;
/// <summary>
/// Appends the HTML text.
/// </summary>
/// <param name="htmlProvider">The HTML provider.</param>
public void AppendHtmlText(IHtmlProvider htmlProvider)
&leftsign;
&rightsign;
是不是惊人的准确?
GhostDoc生成注释的质量很大程度上取决于标识符命名的质量,所以长期使用GhostDoc,也会让你学会编写一致的和自解释的标识符,不亦乐乎?
GhostDoc不能做什么?
GhostDoc很强大,但也不能对它有太高的期望。它生成注释的方式也许不能很好地符合你个人的注释风格。GhostDoc也不能一次性为整个代码文件生成注释,只能每次为一个成员生成注释——GhostDoc如此设计,是因为不管怎样总需要你去检查它生成的每段注释。
GhostDoc的配置:
在Visual Studio菜单栏中选择Tools->GhostDoc->Configure GhostDoc。
其中包含如下几个属性页:
1. Rules : 修改,删除,添加文本生成规则
2. Acronyms : 指定将哪些单词视为首字母缩写词
3. "Of the" Reordering : 指定触发重新排序行为的单词
4. "No the" Words : 指定哪些词前不使用”the”
5. Options : 配置GhostDoc的其它选项
GhostDoc下载地址:http://www.roland-weigelt.de/ghostdoc
参考原文地址:roland-weight的文章
VS2005 XML注释生成XML文档文件 」
→Nocky 发表于 2007-5-5 20:36:00
1.类库项目-属性-生成-输出 复选框 XML 文档文件 保存路径
重新生成项目后 查看该文件
2.开始-所有程序-Microsoft Visual Studio 2005
-Visual Studio Tools – Visual Studio 2005 命令提示
进入后输入 csc /help
参看 输出文件-/doc:<file> 要生成的XML文档文件
3.查看 工具-选项-文本编辑器-C#-高级
XML文档注释 复选框 为///生成 XML 文档注释
20070724 MiniGui lua 脚本化
http://www.yippeesoft.com
初步试验呢一下 OK
function C2L_DialogBoxProc (hDlg, message, wParam, lParam)
所有对话框处理流程
if(message==0×0011 and DlgId==DlgIdMain and wParam==0×33) then
DlgId=DlgIdExit
return 0
end
主菜单窗口如果按3退出
if(message==0×0011 and DlgId==DlgIdMain ) then
return 0
end
if(message==0×0011 and DlgId==DlgIdInput and wParam==0×34 ) then
strInPut=L2C_GetDlgItemText(hDlg,102)
return 0
end
输入窗口按4退出
可以根据消息类型等参数处理,同C程序
return 1
end
function MainWin()
L2C_DLGTEMPLATE(2,"选择菜单")
定义对话框
L2C_CTRLDATA(0,"1、逃跑","static",10,10,100,50,101)
L2C_CTRLDATA(1,"2、进入","static",10,70,100,100,101)
放置界面控件
DlgId=DlgIdMain
L2C_SHOWDIALOG()
显示对话框
end
function InputWin()
L2C_DLGTEMPLATE(2,"输入密码")
L2C_CTRLDATA(0,"请输入密码:","static",10,10,240,40,100)
L2C_CTRLDATA(1,"","textedit",10,60,240,40,102)
DlgId=DlgIdInput
L2C_SHOWDIALOG()
end
主流程
while DlgId~=DlgIdExit do
if(DlgId==DlgIdInput or DlgId==nil) then
MainWin()
end
if(DlgId==DlgIdMain) then
InputWin()
end
end
~~~
minigui-dev-1.6.9-win32.tar.gz
点击下载
这是针对 Win32 平台的 MiniGUI V1.6.x 开发包(MiniGUI-Threads 运行模式)。关于安装和使用方法,请阅读该软件包中的 README 文件。
~~~~~~
http://blog.sina.com.cn/u/49e0285a010004ff
【原创】VC6.0下做MiniGUI开发教程
~~~~~~
http://blog.codingnow.com/2006/07/lua_windows_api.html
用 lua 调用 Windows 的 API
实现之后,运行会出现对话框,但是对话框确定后会异常
~
http://www.ucgui.com/zuoping.asp
嵌入式的一些资料的下载(ucgui/ucos等)
http://blog.csdn.net/flashvan/archive/2006/06/19/812446.aspx
lua学习(五)
http://blog.jiu8.com/archives/260
《Programming in Lua中文版》8.Compilation, Execution, and Errors
http://blog.csdn.net/xiaohan13916830/archive/2004/07/03/32936.aspx
操作系统中任务调度的实现
http://hotou.bokee.com/529644.html
PYOS重写
http://www.ucgui.com/bbs/dispbbs.asp?boardID=9&ID=1461&page=1
用 wxWidget 构建跨平台的 GUI
http://www.ucgui.net/
http://www.codingnow.com/2000/download/lua_manual.html
Lua 5.1 参考手册
by Roberto Ierusalimschy, Luiz Henrique de Figueiredo, Waldemar Celes
http://www.codeproject.com/library/lua.asp
Using Lua to control your application
http://lua-users.org/wiki/LuaLinks
Lua Links
http://lua-users.org/wiki/LuaAddons
Lua Addons
http://wxlua.sourceforge.net/
What is wxLua
http://home.pacbell.net/atai/guitool/
The GUI Toolkit, Framework Page
http://blog.jiu8.com/archives/272
《Programming in Lua中文版》15.Packages
http://lua-users.org/lists/lua-l/1998-12/msg00013.html
How to traverse a Lua table in C?
http://forums.ps2dev.org/viewtopic.php?t=4795&sid=b22b122d20dc304e0116d884c62883f3
Drawing images with transparent parts
hMsgBox=CreateWindow(20,20,200,100,"Notice")
http://www.cppblog.com/yuanyajie/articles/13877.html
极其坏的代码,体验了一些CEGUI的功能
http://wiki.ps2dev.org/psp:lua_player:tutorial
Lua Player Tutorial
如果是在windows平台上开发你需要:
1)写一个dll,其所有的导出函数都必须是如下类型:
typedef int (*lua_CFunction)(lua_State *L);
比如,你的一个导出函数是
int MyCFunc(lua_State *L);
2)在Lua脚本里使用package.loadlib来加载你的C函数。假设你的dll叫做xxx.dll(且在Lua可搜索的路径上),你可以这么写:
f = package.loadlib("xxx.dll", "MyCFunc");
3)调用你的函数。类似下面这样:
f(a, b, c, …)
这是最简单的一种Lua脚本调用C函数的方式。实际上你还可以有更加强大和丰富的调用方法供选择,当然复杂度也将提高。
http://www.nongnu.org/cinvoke/index.html
C/Invoke is a library for connecting to C libraries at runtime. This differs from the typical method of interfacing with C, which involves writing static definitions which are then compiled to a machine-dependant format. C/Invoke provides a runtime facility to build descriptions of C functions and to call them, passing them appropriate data and retrieving results. C/Invoke provides a central repository of code to handle the platform-dependant details of marshaling C parameters and return values. Currently C/Invoke has been ported to GCC (GNU/Linux, *BSD) on the x86 and amd64 architectures, Microsoft Windows on x86, Mac OS X on PowerPC, and Solaris on SPARC. The development team is interested in adding more ports as they gain access to more diverse hardware.
http://lua-users.org/wiki/LibrariesAndBindings
Libraries And Bindings
20070723 minigui demo
http://www.yippeesoft.com
#include <stdio.h>
#include <string.h>
#include <minigui/common.h> /* 包括MiniGUI 常用的宏以及数据类型的定义 */
#include <minigui/minigui.h> /* 包含了全局的和通用的接口函数以及某些杂项函数的定义 */
#include <minigui/gdi.h> /* 包含了 MiniGUI 绘图函数的接口定义 */
#include <minigui/window.h> /* 包含了窗口有关的宏、数据类型、数据结构定义以及函数接口声明 */
#include <minigui/control.h> /* 包含了 libminigui 中所有内建控件的接口定义 */
#include <minigui/mgext.h>
#include <string.h>
#include <fcntl.h>
#include <time.h>
#include <pthread.h>
#define IDOK 100 //定义控件ID号
static DLGTEMPLATE DlgFirstRun = &leftsign; //定义主窗体模板,DLGTEMPLATE为结构
WS_BORDER &line; WS_CAPTION, //窗体风格(宏的含义参看)
WS_EX_NONE, //扩展风格(与窗体风格同,见windows.h)
0, 0, 320, 240, //面板范围
"caption", //caption内容
0, 0, //图标,菜单
1, NULL, //本面板控件数量,控件列表指针
0&rightsign;; //一直为0就好了
static CTRLDATA CtrlFirstRun[] = &leftsign; //控件列表CTRLDATA为结构
&leftsign;
CTRL_BUTTON, //种类(编程指南51页)
WS_VISIBLE &line; WS_TABSTOP,//风格
40, 150, 95, 28, //范围
IDOK, //控件ID号
"Ok", //内容
0 //一直为0就好了
&rightsign;
&rightsign;;
//面板回调函数(几个开关语句的嵌套)
static int DialogBoxProc (HWND hDlg, int message, WPARAM wParam, LPARAM lParam)
&leftsign; //作为面板回调函数的参数时,wparam传的是控件ID。
switch (message)
&leftsign;
case MSG_INITDIALOG: //初始化
break;
case MSG_COMMAND: //命令
switch (wParam) //以控件ID号区分
&leftsign;
case IDOK:
PostQuitMessage (hDlg);
break;
&rightsign;
break;
&rightsign;
return DefaultDialogProc (hDlg, message, wParam, lParam);//返回总是这句
&rightsign;
int MiniGUIMain (int argc, const char* argv[])
&leftsign;
DlgFirstRun.controls = CtrlFirstRun; //将控件与窗体关联起来
DialogBoxIndirectParam (&DlgFirstRun, HWND_DESKTOP, DialogBoxProc, 0L);
//创建窗体,我们将在下面分析
return 0;
&rightsign;
~~~~~~~~
#include <stdio.h>
#include <string.h>
#include <minigui/common.h>
#include <minigui/minigui.h>
#include <minigui/gdi.h>
#include <minigui/window.h>
#include <minigui/mywindows.h>
static const char* en_text = "If you see this text, MiniGUI on this board is OK now.";
static char msg_text [256];
static RECT msg_rc = &leftsign;10, 50, 300, 80&rightsign;;
static const char* syskey = "";
static int last_key = -1;
static int last_key_count = 0;
static int HelloWinProc(HWND hWnd, int message, WPARAM wParam, LPARAM lParam)
&leftsign;
HDC hdc;
RECT rc;
syskey = "";
switch (message) &leftsign;
case MSG_CREATE:
strcpy (msg_text, "No message so far.");
break;
case MSG_TIMER:
printf ("Timer expired, current tick count: %ul\\n", GetTickCount ());
sprintf (msg_text, "Timer expired, current tick count: %ul.", GetTickCount ());
InvalidateRect (hWnd, &msg_rc, TRUE);
break;
case MSG_LBUTTONDOWN:
printf ("The left button pressed.\\n");
strcpy (msg_text, "The left button pressed.");
InvalidateRect (hWnd, &msg_rc, TRUE);
break;
case MSG_LBUTTONUP:
printf ("The left button released.\\n");
strcpy (msg_text, "The left button released.");
InvalidateRect (hWnd, &msg_rc, TRUE);
break;
case MSG_PAINT:
KillTimer (hWnd, 100);
SetTimer (hWnd, 100, 500);
printf ("BeginPaint.\\n");
hdc = BeginPaint (hWnd);
#if 1
rc.left = 10; rc.top = 10;
rc.right = 300; rc.bottom = 40;
printf ("DrawText1.\\n");
DrawText (hdc, en_text, -1, &rc, DT_LEFT &line; DT_WORDBREAK);
printf ("DrawText2.\\n");
DrawText (hdc, msg_text, -1, &msg_rc, DT_LEFT &line; DT_WORDBREAK);
#else
TextOut (hdc, 10, 10, en_text);
TextOut (hdc, 10, 50, msg_text);
#endif
EndPaint (hWnd, hdc);
printf ("EndPaint.\\n");
return 0;
case MSG_SYSKEYDOWN:
syskey = "sys";
case MSG_KEYDOWN:
if(last_key == wParam)
last_key_count++;
else
&leftsign;
last_key = wParam;
last_key_count = 1;
&rightsign;
printf ("The %d %skey pressed %d times.\\n", wParam, syskey, last_key_count);
sprintf (msg_text, "The %d %skey pressed %d times", wParam, syskey, last_key_count);
InvalidateRect (hWnd, &msg_rc, TRUE);
return 0;
case MSG_KEYUP:
printf ("The %d key released.\\n", wParam);
sprintf (msg_text, "The %d key released", wParam);
InvalidateRect (hWnd, &msg_rc, TRUE);
return 0;
case MSG_CLOSE:
KillTimer (hWnd, 100);
DestroyMainWindow (hWnd);
PostQuitMessage (hWnd);
return 0;
&rightsign;
return DefaultMainWinProc(hWnd, message, wParam, lParam);
&rightsign;
#ifdef _MISC_MOUSECALIBRATE
static void mouse_calibrate (void)
&leftsign;
POINT src_pts [5] = &leftsign;&leftsign;5, 10&rightsign;, &leftsign;600, 20&rightsign;, &leftsign;620, 450&rightsign;, &leftsign;20, 470&rightsign;, &leftsign;310, 234&rightsign;&rightsign;;
POINT dst_pts [5] = &leftsign;&leftsign;0, 0&rightsign;, &leftsign;639, 0&rightsign;, &leftsign;639, 479&rightsign;, &leftsign;0, 479&rightsign;, &leftsign;320, 240&rightsign;&rightsign;;
SetMouseCalibrationParameters (src_pts, dst_pts);
&rightsign;
#else /* _MISC_MOUSECALIBRATE */
static void mouse_calibrate (void)
&leftsign;
/* do nothing */
&rightsign;
#endif /* !_MISC_MOUSECALIBRATE */
int MiniGUIMain (int argc, const char* argv[])
&leftsign;
MSG Msg;
HWND hMainWnd;
MAINWINCREATE CreateInfo;
#ifdef _LITE_VERSION
SetDesktopRect(0, 0, 1024, 768);
#endif
mouse_calibrate ();
CreateInfo.dwStyle = WS_VISIBLE &line; WS_BORDER &line; WS_CAPTION;
CreateInfo.dwExStyle = WS_EX_NONE;
CreateInfo.spCaption = "Hello, world!";
CreateInfo.hMenu = 0;
CreateInfo.hCursor = GetSystemCursor(0);
CreateInfo.hIcon = 0;
CreateInfo.MainWindowProc = HelloWinProc;
CreateInfo.lx = 0;
CreateInfo.ty = 0;
CreateInfo.rx = 320;
CreateInfo.by = 240;
CreateInfo.iBkColor = COLOR_lightwhite;
CreateInfo.dwAddData = 0;
CreateInfo.hHosting = HWND_DESKTOP;
hMainWnd = CreateMainWindow (&CreateInfo);
printf ("The main window created.\\n");
if (hMainWnd == HWND_INVALID)
return -1;
ShowWindow(hMainWnd, SW_SHOWNORMAL);
printf ("The main window showed.\\n");
while (GetMessage(&Msg, hMainWnd)) &leftsign;
TranslateMessage(&Msg);
DispatchMessage(&Msg);
&rightsign;
MainWindowThreadCleanup (hMainWnd);
return 0;
&rightsign;
#ifndef _LITE_VERSION
#include <minigui/dti.c>
#endif