论坛首页 编程语言技术论坛

D语言,想说爱你不容易

浏览 21886 次
精华帖 (1) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-04-29  
原来已经加了自动改变大小,882行的:
ResizeBrowser(hwnd, LOWORD(lParam), HIWORD(lParam));
注释取消掉就行了。
0 请登录后投票
   发表时间:2007-04-29  
谢谢!!

一直有个问题想请教,D编译出来的exe个头好大,ie.exe就120k,有的脚本语言编译出来exe,带上解释器也就200多k。

难道是D自带GC的原因吗?
0 请登录后投票
   发表时间:2007-04-29  
因为runtime也被编译进去了。你用VC编译一个出来,把msvc**.dll一起算上不得有好几兆亚,
0 请登录后投票
   发表时间:2007-04-29  
编译的奇怪问题:
用build可以成功编译:
bud embed_ie.d win32.lib

直接用dmd却不行:
dmd embed_ie.d win32.lib

Error 42: Symbol Undefined _IID_IoleObject
一共有9个未定义符号。

(我把导入文件位置加到sc.ini中去了)

0 请登录后投票
   发表时间:2007-04-29  
加上uuid.lib和ole32.lib
0 请登录后投票
   发表时间:2007-04-29  
谢谢!
比起vc带上几个dll,那是D的程序小多了。

在ie.d里,我用下面代码取不到属性,不知是怎么回事?
auto re=ie.get("ToolBar");
writefln(&re);

得到的只是12FEFC,不管参数是什么

ie.d全部代码:
module ie;

import std.c.windows.windows; /* for MessageBoxA */
import std.stdio;
import activex; /* for AXO */

void main()
{
    AXO ie = new AXO("InternetExplorer.Application");

    try
    {
        ie.call("Navigate", toVariant(), toVariant(), toVariant(), toVariant(), toVariant("intranet"));
        //http://www.altavista.com/"));

        ie.set("Width", toVariant(850));
        ie.set("Height", toVariant(710));
        ie.set("Top", toVariant(10));
        ie.set("Left", toVariant(10));

        ie.set("ToolBar", toVariant(false));
        ie.set("MenuBar", toVariant(false));
        ie.set("StatusBar",toVariant(false));
        ie.set("Visible",toVariant(true));
auto re=ie.get("ToolBar");
writefln(&re);
    }
    finally
    {
        int ret = MessageBoxA(null, "Message\0", "Title\0", 0);
        ie.call("Quit");
    }
}



0 请登录后投票
   发表时间:2007-04-29  
你这里&re是取地址,它是在栈上分配的,当然每次都是一样的。。

你可以依照activex.d里面的toVariant写一个反向转换的东西,或者找到有空的人帮你写,一有问题就贴出来也不是个办法呀,自己可以学习研究一下,我个人并不打算在这上面耗太多时间,而且也没这么多时间,目前还忙着整dxpcom呢。。。看一下圈子里谁对COM有兴趣,特别是对于使用蹩脚的IDispatch来调用COM有兴趣吧。
0 请登录后投票
   发表时间:2007-04-29  
好的。还是非常感谢你,qiezi!
0 请登录后投票
   发表时间:2007-04-30  
IDispatch虽然效率不高,但是有些公开的组件好像只有通过晚期绑定调用(我的意思是,组件文档中只有晚期绑定的示例),比如ImageMagick图像处理组件,还有其他一些著名的组件,不知道是不是我知道得太少了。
0 请登录后投票
   发表时间:2007-06-01  
可以搞掂C语言的,其它高级语言不在话下...

0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics