问题标签 [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.
winapi - WATCOM FORTRAN - 缺少引用的 Windows API 函数
尝试使用一组更新的第三方 OBJ 文件编译旧的 WATCOM FORTRAN 项目。
链接器看到第三方函数,但抱怨一些(全部?)Windows API 函数。
我在 WATCOM 安装目录下添加了不同的 LIB 和 OBJ 文件,它们似乎具有适当的名称 - 链接器的错误没有任何变化。它首先说GetVersionExA
找不到引用,然后继续向ReadFile
/显示其他 Windows API 函数的许多类似消息WriteFile
,其中说 - 错误太多。
我有一种感觉,它与函数装饰有关——函数名称中添加了“_”、“@”等符号,但我当然可能是错的。
关于在哪里寻找或尝试什么的任何建议?
visual-studio - 显示附加进程的 DLL 符号
大约 15 年前,我使用 Watcom 调试器对一些 Windows 程序进行了逆向工程。Watcom 调试器的优势之一是,它可以显示已加载 DLL 的导出符号。
当我使用 Visual Studio 2015 Community Ed 附加到正在运行的进程时。我错过了这个功能。谁能告诉我如何列出加载的 DLL 及其符号?
fortran - 如何使用 Watcom 编译器启动项目?
我需要评估我使用 WATCOM 编译器编写的 Fortran 77 代码。长话短说,对于编译器,我没有其他选择。一定是这个。
到目前为止,对于这个项目,我必须读取 .dat 文件并以所需的格式打印读取的内容。
在建立一个新项目时,Watcom 对“目标”和“来源”进行了区分,但我不知道这意味着什么。
到目前为止,我创建了一个新项目并将我的代码加载为“源”,但我不知道这是否正确。我还没有弄清楚如何加载 .dat 文件,或者我是否需要加载它们,因为 Watcom 可能会在不将其带到其界面的情况下访问它。
作为记录,我已经阅读了这本手册,但它没有什么帮助。( ftp://ftp.openwatcom.org/pub/manuals/1.5/f_readme.pdf )
我仍然是编码的初学者,任何帮助将不胜感激。谢谢你。
c - 在 C 中创建一个包含结构的数组
我一直致力于在空闲时间为 MS-DOS 创建自己的 GUI 库,但我一直在思考如何实现一个包含 GUI 元素结构的数组。
到目前为止,我能够让它自己绘制窗口,但我需要一种方法来绘制窗口内的元素,例如文本框、文本标签、按钮等。
这是我当前的代码:
我知道 MS-DOS 已经过时了,这只是我的爱好。我目前使用 Open Watcom 作为我的编译器。
c - 字符缓冲区输入超过 256 个字符
我正在使用 FreeRTOS 内核在 DOS 上创建一个程序,它允许我将多个窗口呈现到包含其自己的文本用户界面的屏幕上。问题是我遇到了一个溢出错误,这是由于向缓冲区输入超过 256 个字符引起的。有没有办法解决这个问题?
我的一部分代码:
c++ - c ++遍历字符串向量
所以我最近发现了 map 和 vector 的使用,但是,我很难找到一种方法来循环遍历包含字符串的向量。
这是我尝试过的:
当我尝试编译它时,我收到了这个错误:
我用 map 尝试了同样的方法,它奏效了。唯一的区别是我将 cout 行更改为:
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 应用程序。
有人可以帮忙解决这个内存问题吗?
谢谢!
-阿南德
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,但这仅适用于目标文件,不适用于可执行文件。由于使用目标文件我无法确定它将被重新定位到哪里,所以它是无用的。或者,也许至少有一种方法可以为可执行文件生成符号映射?
cross-compiling - 带有 Open Watcom 的 COM 可执行文件
我正在尝试为运行 PC-DOS 的旧 i286 机器制作一个小实用程序,目标格式为普通的 COM 可执行文件。
编译器选择是 Open Watcom,并且在文档中说它可以链接 DOS .COM 文件,但文档要么模棱两可,要么如示例所示不起作用,所以我最终得到一个 .EXE 文件(带有 MZ 标头) 或多个链接器/编译器错误。
那么,如何使用 Open Watcom 编译器制作 .COM 可执行文件?
dll - 使用 Open Watcom 编译 16 位 Windows DLL
我正在尝试为此问题在逆向工程 stackexchange 上编译一个 16 位 Windows DLL 。
以下是我的绝对最小源文件:
我的dll.c
我的dll.lnk
我是他们使用以下两个命令来编译和链接 DLL。
但由于某种原因,链接步骤失败并显示以下消息:
我的目标只是能够构建一个 16 位 DLL 文件,最好是在我的 Mac 上使用 wine,但我也有一个 Windows XP 虚拟机,所以这也是可以接受的。