qiezi的学习园地

AS/C/C++/D/Java/JS/Python/Ruby

  C++博客 :: 首页 :: 新随笔 ::  ::  :: 管理 ::
re: Qt4.3.0编译记录[未登录] qiezi 2008-11-11 20:54
by 姓名 说的多编译几次是可行的。。。
每次都会出现这个错误,但是出错的cpp不同。。。多编译几次就过了
只有需要重新分配内存时,内存地址才会变化。D数组使用类似STL的vector的倍增的分配方式,所以请检查是否达到了重新分配的条件。

关于D语言的评论,请转到http://dlang.javaeye.com,D语言圈子里。
re: 配置D语言编程环境 qiezi 2007-01-02 17:06
D语言这几天就要发布1.0版了,请关注D语言圈子:
http://dlang.javaeye.com
re: [D语言] DMD 0.168发布 qiezi 2006-12-22 19:56
另外,2007年元旦就要发布1.0版了。
re: [D语言] DMD 0.168发布 qiezi 2006-12-22 19:56
喜欢就行了,要大厂商支持做什么?

说没有多少人?目前排名已经上升到14了吧,一个只有5岁的语言,应该不算低了。

到新闻组去看一看吧,里面也有些C++牛人,譬如Andrei Alexandrescu,我知道我没什么眼光,但我知道他们一定比我有眼光。
re: 自己写的一个max函数 qiezi 2006-10-10 00:10
宏就是macro,再讲下去我也说不清了。。
简单看了一下,原因可能是是早先的一个版本中把import默认为private,所以很多符号都找不到了,而以前是public就都能找到。你可以试着把它的源文件里面所有import前都加上个public,我暂时没有时间去测试。
re: [Linux] linux使用流水帐 qiezi 2006-09-27 09:17
仅返回值类型不同的重载是不被支持的,只能使用成员函数模板,这个在C++中有支持,D里面似乎还没有。

D当然可以写,dwt项目里有一个例子,我这里也有一篇SDK的:
http://www.cppblog.com/cpunion/archive/2005/11/11/1061.html
re: [Linux] linux使用流水帐 qiezi 2006-09-25 08:49
你现有的代码已经支持test["b"]=1234了。
只有返回类型不同的函数重载是不被支持的,目前看到的几种C系的语言都不支持这个。
re: [Linux] linux使用流水帐 qiezi 2006-09-24 08:14
看看这个:http://digitalmars.com/d/function.html
你的test函数第1个参数在D里面不需要。
re: [D语言] DMD 0.167发布 qiezi 2006-09-22 15:37
谢谢指正。数组原不打算写进来的,比如:
int[] a = [1,2,3];
这种用法都还没有支持,非要写成2行。
另外多维数组在这个版本里强调的应该是new,应该也不是新鲜玩意。所以数组部分只是简单列了一下。
抱歉我对lua不太熟悉。我试着装了一个lua 5.0.2,然后写了下面的测试:

extern(C){
struct lua_State{}
lua_State *lua_open ();
void lua_close (lua_State *L);
}

void main(){
lua_State* L = lua_open();
lua_close(L);
}

编译指令:
gdc -o luatest luatest.d -llua

编译是可以通过的。不过在我的lua.h和lualib.h中都找不到luaL_dostring,所以没办法进一步测试了。

注意你从头文件转过来的函数声明需要包在extern(C)声明里面。

另外如果你只是想使用lua,dsource.org上面有个dlua项目,应该是转换了很多头文件吧,不过我没仔细看过。
我也不知道为什么会有这个问题,下面这三行代码:
cTest = rb_define_class( " Test " , rb_cObject);
rb_define_method(cTest, " initialize " , cast(func_type) & t_init, 0 );
rb_define_method(cTest, " add " , cast(func_type) & t_add, 1 );
看样子只执行了前面一行,initialize默认是会生成这样一个方法的。
这是从上面拷贝下来的,好像字符串里面被加了空格,不知道你有没有去掉它?

so.c只是启动D运行时环境,不会影响到这个,不启动它只可能某些地方会出现段错误。所以你可以检查一下这个.d文件里是否有不同?
to nojoking:

我已经在我的机器上测试过了,不太明白你这里出现的原因,你测试一下我这里的代码再说。我打了个包: http://www.cppblog.com/Files/cpunion/rubyd_test.zip 你根据你机器的路径修改一下Makefile即可使用。