[入门] 有没有达人来做windows com的包装
tuja
2007-04-22
先自我介绍一下,业余程序新手,有一点脚本语言基础,刚接触D,在这里潜水一段时间了,对D很感兴趣,也对D缺少相应支持库感到无奈。 D语言出现也有几年了,但D社区项目很多是半死不活,基础性的工作很少人做。比如windows com的包装就是一个例子。相比我曾接触的其他脚本语言,语言本身和D相比实在不怎么样 但windows包装做得很多很好 社区比D活跃多了 前几天在看大家在讨论用D做开源项目,做什么好,最后决定做词典,还有IDE,这里说一下我个人看法: 1 关于IDE, SciTe 1.73版本起就内置D的词法支持了。配置好SciTE,加上齐全的自动完成,代码提示,或者再用lua做一些扩展,就是一个超强的编辑器。虽然说不上是IDE,一般也是够用了,实在是看不到重复造轮子的必要。 2 关于词典 免费的词典已经有了,用D重新实现一次,除了学习D语言,其他意义不大。 个人觉得,以上项目,远不如在D source上开个com包装的项目,可以让全世界所有用D开发的人受益。别的不说,国内是windows的天下,如果windows com包装得好的话,懂一点其他语言的人立即能用D com做很多事情: 创建IE实例,实现IE编程 调用ImageMagick com,进行超强的图像处理操作 调用 Excel com控制Excel 调用 Word com控制word 调用Ftp软件提供的com 进行ftp操作 .... 这对于在国内推广D可以说是起到非常重要的作用。 一个项目,作用几乎等同于无限的项目。 qiezi说得好“也可以问,为什么不是你在做这些基础工作!” 只是在下才疏学浅,只是业余自学程序,非专业程序员,只有一些极其粗浅的程序基础,虽然很愿意做这项工作,无奈力不从心(至下眼下是希望在各位的帮助下很快有这个能力了。 发这个帖,是希望有人能来挑头做windows com的包装,我愿意跟在后面,尽我的能力,让这个项目能比较长久地活下去,不象Dsource.org很多项目都半死不活很难看。 以下是我和qiezi的一些讨论 tuja 1 天前 请教怎么样创建一个IE 实例?在vbs中可以这样 Set objExplorer = CreateObject("InternetExplorer.Application") objExplorer.Navigate "file:///C:\Scripts\progress.htm" 在D中怎么调用com创建IE? qiezi 23 小时前 js/vbs/vb里面用的CreateObject,使用的是IDispatch接口,通常比较低效,在静态编译型语言里面一般使用起来也不方便,而且要求该组件必须支持双接口,建议使用CoCreateInstance,找到浏览器使用的IID就可以了,目前我没有这方面的例子。DMD所使用的phobos库里面可能并不包括这个接口的定义和IID,可以使用其它项目比如core32,或者是圈子里面其他会员推荐的库。 tuja 21 小时前 照下面介绍下载和安装core32 http://dsource.org/projects/core32 可能是代码太老了,bat文件编译时一大堆的错误。 下面的例子代码看上去很简单: http://dsource.org/projects/core32/browser/trunk/activex/ie.d 但没有办法用啊。D语言看起来好像不错,但在windows下这么麻烦。 oldrev修改版 juno.com.base不知道能不能用来创建IE的实例,谁能举一下例子吗 qiezi 19 小时前 这个是一年前的,D语言这一年的变化太大了,你可以稍作修正试试能不能用,应该只是一些语法上的问题,实际上初学者也是很容易修改D代码的。 麻烦并不是windows的原因,COM是跨语言跨平台的,使用起来肯定比较麻烦一些,主要是没有比较好的包装类。我目前在做XPCOM,哪天完成了可以试试包装COM,不过应该至少还要几个月时间。 非常感谢qiezi百忙之中指点一二。 D要是能方便地创建com,程序新手就能用D做很多事情了,只要有其他语言调用com的经验,就可以做同样的事情,用com处理图像,ftp,IE编程,excel编程,word编程。。。 为什么这么少的人做这些基础工作? |
|
qiezi
2007-04-22
com相关项目在dsource.org上一直有,就是没有坚持维护。
可以从PlatformSDK里面转换,我过我不建议从.h文件转换接口,最好是从idl文件转换,更干净一些。目前xpcom也使用这种方式,不过idl工具不太好使,要是有个D语言的idl parser更好一些。 dsource.org上的codeanalyser是针对D语言解析的,可惜没有通用的解析器,要是有人能发起这样一个项目并且成功实现,就可以省很多事咯。 |
|
qiezi
2007-04-22
tuja 写道 只是在下才疏学浅,只是业余自学程序,非专业程序员,只有一些极其粗浅的程序基础,虽然很愿意做这项工作,无奈力不从心(至下眼下是希望在各位的帮助下很快有这个能力了。 我现在已经后悔几年前抱着这样的想法,总是对自己没有信心,所以很多事情想了个开头就扔下了。这两年来我务实了一些,不再谈大目标,只关注眼前要做的事,有了想法就开始做,即便后来因为其它原因没有完成,我也在这个过程中得到了锻炼。 |
|
tuja
2007-04-22
qizi说的堪称经典!
只是现在暂时缺少win com的基础,不知道如何入手,有人带头就好了。项目最好开到Dsource上,可以从core32接下去做。 D的社区实在是冷,DFL算是一个例外。 |
|
qiezi
2007-04-22
你可以先在core32的项目上做,以后可以往它的论坛上提交patch,也可以申请加入该项目,再开新项目也不太好,除非你所做的和它有非常大的不同。现在上面有好多项目都闲置了。
|
|
DavidL
2007-04-22
呵呵,目前没有自动的引进工具,你所希望的Com封装,就需要自己手工port Delphi现有的一些interface。还有OleControl等。其实我并不觉得有了Com就能推动D语言在国内开发,所以也懒得动手。
如果有兴趣你可以看看Delphi的代码,然后自己port过来,也不会很难,sample里面有dserver,dhello,虽然它们两个编译不通过,不过稍作修改就可以用了。 |
|
tuja
2007-04-22
这些工作迟早得有人做啊,看看一些小的脚本语言多火,就是封装得好啊
|
|
oldrev
2007-04-22
楼主太夸张了,没有C++基础是搞不定这个滴
|
|
tuja
2007-04-22
所以说希望有人来做,我在后面学着做
|
|
oldrev
2007-04-22
意思是搞一个D版ATL? 这要等顶尖大牛出马
|
相关讨论
相关资源推荐
- rails 连接mysql的问题解决
- ruby rails mysql_rails mysql 连接问题
- rails连接mysql_Rails 连接到 MySQL 数据库
- Rails连接oracle数据库
- ruby on rails连接mysql_ruby on rails 连接mysql数据库
- Ruby on Rails框架程序连接MongoDB的教程
- rails_magento:使用 Rails 连接 Magento API
- ubuntu rails mysql_Ubuntu 14.04使用Rails连接MySQL数据库
- rails连接mysql_Rails连接mysql数据库在ubuntu上跑
- rails 连接mysql