易码技术论坛

 找回密码
 加入易码
搜索
12
返回列表 发新帖
楼主: loglave

关于lava源代码在vc。net中的编译

[复制链接]
发表于 2005-5-24 11:16:00 | 显示全部楼层
目的只是告诉大家,LavaX本身没有什么xxxK的限制。

目前全力于彩色版大屏幕大内存机器的LavaX软件开发中。
[em01]
 楼主| 发表于 2005-5-24 12:40:00 | 显示全部楼层
以下是引用FantasyDR在2005-5-23 22:57:57的发言:
>
点开米有反应啊-_-

我添加了onkeydown的消息,不过好像没反应……所以只能通过鼠标点击按键



发表于 2005-5-24 13:07:00 | 显示全部楼层
试试WM_CHAR消息。
发表于 2005-5-24 21:33:00 | 显示全部楼层
我点开之后,上半段没有任何图像。
楼主用的是托管的C++么?
 楼主| 发表于 2005-5-24 21:57:00 | 显示全部楼层
以下是引用FantasyDR在2005-5-24 21:33:41的发言:

我点开之后,上半段没有任何图像。

楼主用的是托管的C++么?



托管的C++…………不懂…………

第二次使用vc。net编写窗口程序,第一次是写得是勇者斗恶龙的资源编辑器

下面的程序的源代码,不过只是模拟了一部分lava函数(有很多没必要)



基本上我的目的也达到了,对vc。net熟悉很多了[em07]
发表于 2005-5-24 22:21:00 | 显示全部楼层
哦,不是托管的。

那个,head文件名最好用英文的,表用中文^_^bb,否则,在某些编译器上面不好用。

这会我编译了下,可以了^_^
 楼主| 发表于 2005-5-24 22:24:00 | 显示全部楼层
vc.net的工程不是只能在vc。net下编译?
还可以在别的编译器上编译?
发表于 2005-5-24 22:54:00 | 显示全部楼层
如果是c++的代码,调用win32API写windows程序,那么任何一个支持的C++编译器都可以。
VC里面有一些特殊的关键字,.NET里面也多了一些。如果没有用这些,那么就可以在非VC.NET的环境下面编译。
发表于 2006-5-4 02:22:00 | 显示全部楼层
时隔一年,再顶老帖。
呵呵,不多说,上图……






发表于 2006-5-4 07:55:00 | 显示全部楼层
有趣。

不过原来的LavaX源代码必须修改才可在此sim上运行吧?
发表于 2006-5-4 07:59:00 | 显示全部楼层
下一步打算改进LavaX,让语法更接近C。

这样的话不修改也可以模拟了。
[em01]
发表于 2006-5-4 11:41:00 | 显示全部楼层
都是类型相关的修改。Lava有些地方做的和传统概念不一样~~lz的帖子里面大部分都提到了。

首先是数组名称+1在c语言里面是增加sizeof(type)个地址,而Lava里面仅仅是+1。所以如果使用了非char的数组,概念上会很苦恼:)

再比如struct的概念,struct的名称在lava里面直接当作地址指针用了-.-

接下来比较严重的区别是char这个类型,lava里面都是unsigned char,没有负数。而c里面的char是有符号的。

然后是int和long这两种类型在目前的vc.net里面都是当作int32来处理的,lava是int16和int32。

所以改动的时候主要是关于类型的修改和少量地址读取时候的修改。再加上一些强制类型转换就可以了。其实LAVA编译器如果坚持无类型概念的话,可以采用折衷的方法,加入条件编译以及更好的宏定义方式。

比如

#ifdef __C_CODE__

#define BYTE unsigned char

#else

#define BYTE char

#endif

这样写代码的时候明确区分BYTE和char,或者其他类型比如FILE*和char等等,到时候只要改一下#define就可以了:)

可惜现在的LAVA太弱,只能define数字,还不能命令行编译,我只好自己写外部工具折衷了,呵呵。以后代码不再用LAVAIDE写了,因为c->lava简单的替换就可以,lava到c还得一处一处找。
发表于 2006-5-4 13:21:00 | 显示全部楼层
用什么写无所谓,只要生成.lav文件就支持[em01]

LavaX虚拟机与LavaX语言的概念是不同的,以后还会出真C编译到.lav的编译器,甚至可能出basic编译到.lav的编译器。无论什么编译器,结果是一样的,都是生成LavaX虚拟机可执行的.lav文件。
发表于 2006-5-4 18:34:00 | 显示全部楼层
 楼主| 发表于 2005-5-19 12:06:50 | 显示全部楼层 |阅读模式
5月23号更新

哈哈,搞定了大部分函数了,而且成功编译了勇者斗恶龙的源代码

(修改的地方不多啊,主要是

1,使用结构体指针时不能直接使用结构体的名字,需要在名字前加上&,

2,lava里的char实际上是unsigned char,如果你明确知道自己在把char当作unsigned char用,必须把相应的变量定义成unsigned char

3。打开文件时/LavaDate/adf.dat时,需要改成LavaDate/adf.dat



而vc。net里的代码改会lava就更简单,把& 和 unsigned全部替换掉,把char *之类的改成long就可以

关于lava源代码在vc。net中的编译的实现

编译好的勇者斗恶龙程序



我添加了onkeydown的消息,不过好像没反应……所以只能通过鼠标点击按键







以前的

刚写了一天,只搞明白了图形缓冲区的操作



暂时的目标是使得《勇者斗恶龙》的代码可以在vc。net中编译

如果能够写好的话,将会作为 游戏梦工场 小组的工具发布,内部人员优先使用

至于小组的成员的招收,估计在小D高考后进行,大家多多支持



[此贴子已经被作者于2005-5-24 12:42:19编辑过]

您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2024-4-19 09:05 , Processed in 0.013358 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表