问题标签 [turbo-c++]
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.
c++ - Borland x86 内联汇编器;获取标签的地址?
我正在使用带有一些内联汇编代码的 Borland Turbo C++,所以大概是 Turbo Assembler (TASM) 风格的汇编代码。我希望执行以下操作:
所以 SomeLabel 的地址被放入 EAX 中。这不起作用,编译器抱怨:未定义的符号'SomeLabel'。
在 Microsoft Assembler (MASM) 中,美元符号 ($) 用作当前位置计数器,这对我的目的很有用。但这似乎在 Borlands Assember 中不起作用(表达式语法错误)。
更新:更具体地说,我需要编译器在编译/链接期间而不是在运行时生成它作为常量移动到 eax 中的地址,因此它会像“mov eax,0x00401234”一样编译。
任何人都可以建议如何让这个工作?
更新:为了回答 Pax 的问题(请参阅评论),如果 Windows 加载程序在运行时更改了基地址,则 DLL/EXE PE 映像仍将由 Windows 加载程序重新定位,并且标签地址将在运行时由加载程序使用基于重的地址,因此使用标签地址的编译/链接时间值不是问题。
提前谢谢了。
compilation - Borland Dev Studio 2006 Turbo C++ Explorer 编译问题
大家好
我是 C++ 的新手,对 Borland Turbo C++ Explorer 更是如此。我刚刚遇到了这个编译错误。关于如何修复它的任何线索?
第一个出现的代码是
来自另一个来源的一些建议:
正如编译器的错误消息所说,在编译单元的范围内有 2 个 ITransaction 数据类型的声明。似乎 ITransaction 定义来自 Microsoft 的 comsvcs.h,而 OleDB::ITransaction 是 Borland 的 ITransaction 接口的实现。所以你可以尝试两件事:
- 消除 OleDB::ITransaction 定义(不知道 Turbo C++,但可能有一个组件处理 oleDB。尝试摆脱它。或者它可能通过使用另一个#include 来包含。搜索文本 oledb:: ITransaction 在您的包含目录中,您将有望找到相关文件。修改包含路径,使其不再包含)。
- 您可以尝试定义 CINTERFACE 因为如果定义了导致编译错误的代码将不包括在内。但这可能会导致其他问题...
有没有人有任何其他建议?
亲切的问候,布鲁斯。
c++ - 关于 C++ 中的 exit() 函数
getche() 函数没有正确终止程序,所以我想尝试 exit(int status) 函数。它在 Turbo C++ 编程语言中是如何工作的?我无法理解相关帮助模块中的解释,我寻求更好的解释……例如,函数的参数由什么组成?提前致谢!
c++ - 如何在 Turbo C++ 中将整数作为命令行参数传递
我无法通过 turbo c++ 中的命令行传递整数值。请帮我。
windows - 如何在 Turbo C++ 和 cc3270.dll 中更改文件图标
几天前我开始使用 Borland 的 Turbo C++。我其实有两个问题。
1.:如何更改文件图标?如果我创建一个程序(控制台应用程序),它总是有这个蓝色图标(建筑物或类似的东西),我无法在任何地方找到它,如何将其更改为默认的“无”图标(就像在 Dev-C++ 中是默认的)。
2.: 如果我创建一个控制台应用程序,并且我想在我的虚拟电脑上运行,那么它说 CC3270.DLL 丢失。如果我将它复制到 c:\windows\system32\ 那么它将完美运行。但我想避免这种方式。那么是否有可能更改设置或类似的东西,我的应用程序不需要这个文件?这很令人不安,因为如果我想在没有这个 dll 的计算机上使用我的程序,那么我必须在每台机器上复制它。
提前致谢!
坎皮
c++ - C语言程序被检测为病毒
我已将此程序保存为 virus.cpp。我正在使用 Turbo C 编译器来编译这个程序并从 Turbo C (Ctrl + F9) 运行。
我使用的是 Windows 7,并且我已经安装了 Avira AntiVir 病毒系统。
当我试图运行上面的程序时,它会创建一个蠕虫(DOS/Candy)。我相信程序没有错。
现在这里有一些特别的东西。执行相同的程序,但有以下不同。这里唯一的区别是之间的空间\n
:
区别只是 \n 和空格。我的问题是,为什么我的简单程序被检测为病毒?
这是另一个代码示例,这次是 C++:
当我运行这个程序时,它会给出“病毒警告”——即使它不是病毒。现在,悲剧是当您删除析构函数时,它不会将其检测为病毒。
这是屏幕截图和类似的问题:
问题是如何,为什么?
c - 长整数问题
我是 C 的初学者,使用 Turbo C++ 编译器(16 位)。
在我正在编写的软件中,最大答案在 32000 左右。如果我想要一个更大的数字,我使用long int
.
如果我执行以下程序:
然后我得到一个错误,即常量值在函数中很长main()
。
我怎样才能得到超过 32000 的答案并摆脱这个错误?另外,当我使用无符号整数时,我将 %d 更改为 %ld 并使用 40000L bt 那么我还需要将 'l' 与 40000 // 一起使用吗?
c++ - 读取 bmp 文件进行隐写术
我正在尝试用 C++(Turbo) 读取 bmp 文件。但我无法打印二进制流。
我想将 txt 文件编码到其中并解密。我怎样才能做到这一点。我读到 bmp 文件头是 54 字节。但是我应该如何以及在哪里将 txt 文件附加到 bmp 文件中。?
我只知道 Turbo C++,所以如果你提供与主题相关的解决方案或建议对我很有帮助。
当我以二进制模式传递 txt 文件时,此代码运行良好
编辑 :
我无法在控制台中看到二进制数据,当我在 fr.get(c) 中传递字符参数时,这对文本工作正常
compiler-construction - 无法通过 xp 使用 turboc。为什么?解决方案?
我在 Windows X 上直接打开 TurboC++ 编译器(dos 版本)时遇到问题。如果我通过 Windows GUI 单击 TurboC++ 图标,它会打开一秒钟(一个空白的 dos 屏幕)并关闭。所以我必须通过命令行访问它,即
这样 TurboC++ 就打开了,我可以编程和一切..
为什么我必须总是tc.exe
从命令行开始?为什么我不能通过 Windows XP 启动它?
此外,tc.exe
通过命令行启动后,我无法通过它执行任何图形程序。
我编写了一个简单的代码来使用预定义的函数创建一个圆。当我编译并运行程序时tc.exe
退出并返回到命令提示符。
为什么会这样?有解决办法吗?
我也尝试过使用 DosBox 来运行 TurboC++。它在执行图形程序时关闭。
ps:这个问题只有我和我的朋友遇到过.....我们学院的所有电脑都安装了Windows XP或Vista,没有任何问题。我正在使用 initgraph(); 用于初始化图形驱动程序(使用自动检测)和图形模式的功能。我已经为 bgi 文件提供了正确的地址。并且该文件夹包含所需的文件 (EGAVGA.bgi)。这个程序在我们大学运行良好。这与我的显卡(nvidia 9400 1gb)有关吗?