问题标签 [watcom]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
102 浏览

winapi - WATCOM FORTRAN - 缺少引用的 Windows API 函数

尝试使用一组更新的第三方 OBJ 文件编译旧的 WATCOM FORTRAN 项目。

链接器看到第三方函数,但抱怨一些(全部?)Windows API 函数。

我在 WATCOM 安装目录下添加了不同的 LIB 和 OBJ 文件,它们似乎具有适当的名称 - 链接器的错误没有任何变化。它首先说GetVersionExA找不到引用,然后继续向ReadFile/显示其他 Windows API 函数的许多类似消息WriteFile,其中说 - 错误太多。

我有一种感觉,它与函数装饰有关——函数名称中添加了“_”、“@”等符号,但我当然可能是错的。

关于在哪里寻找或尝试什么的任何建议?

0 投票
1 回答
39 浏览

visual-studio - 显示附加进程的 DLL 符号

大约 15 年前,我使用 Watcom 调试器对一些 Windows 程序进行了逆向工程。Watcom 调试器的优势之一是,它可以显示已加载 DLL 的导出符号。

当我使用 Visual Studio 2015 Community Ed 附加到正在运行的进程时。我错过了这个功能。谁能告诉我如何列出加载的 DLL 及其符号?

0 投票
0 回答
146 浏览

fortran - 如何使用 Watcom 编译器启动项目?

我需要评估我使用 WATCOM 编译器编写的 Fortran 77 代码。长话短说,对于编译器,我没有其他选择。一定是这个。

到目前为止,对于这个项目,我必须读取 .dat 文件并以所需的格式打印读取的内容。

在建立一个新项目时,Watcom 对“目标”和“来源”进行了区分,但我不知道这意味着什么。

到目前为止,我创建了一个新项目并将我的代码加载为“源”,但我不知道这是否正确。我还没有弄清楚如何加载 .dat 文件,或者我是否需要加载它们,因为 Watcom 可能会在不将其带到其界面的情况下访问它。

作为记录,我已经阅读了这本手册,但它没有什么帮助。( ftp://ftp.openwatcom.org/pub/manuals/1.5/f_readme.pdf )

我仍然是编码的初学者,任何帮助将不胜感激。谢谢你。

0 投票
1 回答
91 浏览

c - 在 C 中创建一个包含结构的数组

我一直致力于在空闲时间为 MS-DOS 创建自己的 GUI 库,但我一直在思考如何实现一个包含 GUI 元素结构的数组。

到目前为止,我能够让它自己绘制窗口,但我需要一种方法来绘制窗口内的元素,例如文本框、文本标签、按钮等。

这是我当前的代码:

我知道 MS-DOS 已经过时了,这只是我的爱好。我目前使用 Open Watcom 作为我的编译器。

0 投票
1 回答
402 浏览

c - 字符缓冲区输入超过 256 个字符

我正在使用 FreeRTOS 内核在 DOS 上创建一个程序,它允许我将多个窗口呈现到包含其自己的文本用户界面的屏幕上。问题是我遇到了一个溢出错误,这是由于向缓冲区输入超过 256 个字符引起的。有没有办法解决这个问题?

我的一部分代码:

0 投票
5 回答
28294 浏览

c++ - c ++遍历字符串向量

所以我最近发现了 map 和 vector 的使用,但是,我很难找到一种方法来循环遍历包含字符串的向量。

这是我尝试过的:

当我尝试编译它时,我收到了这个错误:

我用 map 尝试了同样的方法,它奏效了。唯一的区别是我将 cout 行更改为:

0 投票
2 回答
1556 浏览

c - DOS/4GW 致命错误 (1307): 内存不足

我正在尝试在 Win7 32 位操作系统中运行 dos/4gw 应用程序。我收到以下错误消息, DOS/4GW fatal error (1307): not enough memory

当我在 WinXP 32 位操作系统中运行相同的应用程序时,它运行良好且没有问题。

dos/4gw 应用程序是使用 Watcom C 编译器构建的。

mem 命令显示以下可用内存,

655360 bytes total conventional memory 655360 bytes available to MS-DOS 580640 largest executable program size 16777216 bytes total EMS memory 16777216 bytes free EMS memory 32505856 bytes total contiguous extended memory 0 bytes available contiguous extended memory 15580160 bytes available XMS memory MS-DOS resident in High Memory Area

从上面可以清楚地看出内存小于1MB。但是我的程序需要的不止这些。基本上我需要扩展我的 DOS 内存以获得超过 1MB 的内存来运行我的 dos/4gw 应用程序。

有人可以帮忙解决这个内存问题吗?

谢谢!

-阿南德

0 投票
1 回答
196 浏览

c - 调试使用 OpenWatcom 编译的崩溃的 32 位 DOS 可执行文件

我有一个应用程序,我使用 OpenWatcom 经典版(1.9 - 最新稳定版本)为 32 位 DOS/DPMI 目标(带有 DOS32/A 扩展器)编译。如果程序因错误的内存访问而崩溃,我会得到错误指令的 CS:EIP。如何将其映射到汇编代码/源代码行号?(注意:我在 Wine 下使用的是 Windows 版本的 OpenWatcom(在 Linux 中运行),然后在 DosBox 中运行可执行文件。)

使用 GCC/binutils,我将使用 -ggdb 进行编译,然后在可执行文件上使用 objdump -DS 来获取程序集和源代码视图。任何 OpenWatcom 等价物?或者,也许,一个可以做同样事情的交互式调试器?我尝试使用 wdis,但这仅适用于目标文件,不适用于可执行文件。由于使用目标文件我无法确定它将被重新定位到哪里,所以它是无用的。或者,也许至少有一种方法可以为可执行文件生成符号映射?

0 投票
2 回答
452 浏览

cross-compiling - 带有 Open Watcom 的 COM 可执行文件

我正在尝试为运行 PC-DOS 的旧 i286 机器制作一个小实用程序,目标格式为普通的 COM 可执行文件。

编译器选择是 Open Watcom,并且在文档中说它可以链接 DOS .COM 文件,但文档要么模棱两可,要么如示例所示不起作用,所以我最终得到一个 .EXE 文件(带有 MZ 标头) 或多个链接器/编译器错误。

那么,如何使用 Open Watcom 编译器制作 .COM 可执行文件?

0 投票
0 回答
344 浏览

dll - 使用 Open Watcom 编译 16 位 Windows DLL

我正在尝试为此问题在逆向工程 stackexchange 上编译一个 16 位 Windows DLL 。

以下是我的绝对最小源文件:

我的dll.c

我的dll.lnk

我是他们使用以下两个命令来编译和链接 DLL。

但由于某种原因,链接步骤失败并显示以下消息:

我的目标只是能够构建一个 16 位 DLL 文件,最好是在我的 Mac 上使用 wine,但我也有一个 Windows XP 虚拟机,所以这也是可以接受的。