回 帖 发 新 帖 刷新版面

主题:[原创]求助 fortran77的动态数组定义问题

[size=3]如题,怎样才以实现在fortran77下进行动态数组的定义,我试过好多办法好像都实现不了。
我的程序里面会涉及许多矩阵,并且是多维矩阵,主程序在一个封闭的obj文件里面,我没有办法更改,所以只有依靠解决这个问题来解决我的问题了。
另外,如果有谁可以告诉我怎么能在CVF下使用在dos下编译出来的obj文件,我的问题也可以解决。
还望高手能指点一二。
 [/size]

回复列表 (共17个回复)

沙发

DOS版本的OBJ用不了,因为一个是16位格式一个是32位格式,无法兼容~~~连指令集都被扩充了,我已经没法儿想像32位分页程序如何使用16位的分段程序了:)

板凳


其实可以实现的,我在我们单位见到一位高手,把这个obj文件做成dll文件。要是这个文件真的不涉及dos对话的话,就成功了。可惜!

3 楼

关键是你这个obj到底是16位编译器出来的还是32位编译器出来的……
你说的DOS是啥意思?我们通常意义的DOS是16位的,只有Win98时代和之前才有

obj做成DLL文件就成了高手了……
难道DLL是凭空出来的……

4 楼

如果你的那个obj真是在纯DOS下的年代开发并编译的,那肯定就是16位。
如果只是在WINDOWS下那个“命令行提示符”下编译的,那还有可能是32位的。
32位的obj“变”成dll算不得高手。
如果能把16位的obj“变”成32位的dll那就真厉害了!
不过dll好像早期也确实有16位的,在win3.2那个年代~~~
但我不确定32位系统能用不能用那个dll~~~

5 楼

这个obj文件是16位的,但是今天验证了一下,弄出来的dll文件是用不成,关键是这个程序涉及到DOS界面的问题。意思就是说内部将碰到DOS的人机对话界面。最终想修改一下弄成16位的exe,但是发现16位的exe文件里面的结构太复杂了,涉及到分页问题,太麻烦了。
顺便提一句我们弄出来的dll文件是个32位的。

另外,就没有人能解决这个fortran程序的动态数组的问题吗?

6 楼

我看了问题就觉得不是定义数组的那么简单, 经过你们讨论似乎还要在特定环境下让这个数组被你们的dll使用. 似乎已经不是代码级的动态数组问题了, 我没有这方面经验有想法也不一定是能实现的.

7 楼

冒昧问一句, 16位的obj, 差不多20年前编译出来的一个东西用到现在而没有源码?!

8 楼

16位fortran编译器是啥?

你们知道名字么?
年代应该比Windows3.2还早

9 楼

而且你们原来是怎么做的?
竟然能把16位的obj链接成32位的exe

这个必然很稀奇,现在没有这种链接器,即使masm也没有这种功能

10 楼

[quote]这个obj文件是16位的,但是今天验证了一下,弄出来的dll文件是用不成[/quote]
怎么弄出来的
如果你使用平常的链接器不可能弄出dll来
即使使用交叉链接也不可能把16位的obj链接成32位的目标程序

你现在的系统是win98?

我来回复

您尚未登录,请登录后再回复。点此登录或注册