问题标签 [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.

0 投票
12 回答
6888 浏览

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 加载程序重新定位,并且标签地址将在运行时由加载程序使用基于重的地址,因此使用标签地址的编译/链接时间值不是问题。

提前谢谢了。

0 投票
2 回答
1189 浏览

compilation - Borland Dev Studio 2006 Turbo C++ Explorer 编译问题

大家好

我是 C++ 的新手,对 Borland Turbo C++ Explorer 更是如此。我刚刚遇到了这个编译错误。关于如何修复它的任何线索?

第一个出现的代码是

来自另一个来源的一些建议:

正如编译器的错误消息所说,在编译单元的范围内有 2 个 ITransaction 数据类型的声明。似乎 ITransaction 定义来自 Microsoft 的 comsvc​​s.h,而 OleDB::ITransaction 是 Borland 的 ITransaction 接口的实现。所以你可以尝试两件事:

  1. 消除 OleDB::ITransaction 定义(不知道 Turbo C++,但可能有一个组件处理 oleDB。尝试摆脱它。或者它可能通过使用另一个#include 来包含。搜索文本 oledb:: ITransaction 在您的包含目录中,您将有望找到相关文件。修改包含路径,使其不再包含)。
  2. 您可以尝试定义 CINTERFACE 因为如果定义了导致编译错误的代码将不包括在内。但这可能会导致其他问题...

有没有人有任何其他建议?

亲切的问候,布鲁斯。

0 投票
6 回答
10949 浏览

c++ - 关于 C++ 中的 exit() 函数

getche() 函数没有正确终止程序,所以我想尝试 exit(int status) 函数。它在 Turbo C++ 编程语言中是如何工作的?我无法理解相关帮助模块中的解释,我寻求更好的解释……例如,函数的参数由什么组成?提前致谢!

0 投票
5 回答
26831 浏览

c++ - 如何在 Turbo C++ 中将整数作为命令行参数传递

我无法通过 turbo c++ 中的命令行传递整数值。请帮我。

0 投票
1 回答
1971 浏览

windows - 如何在 Turbo C++ 和 cc3270.dll 中更改文件图标

几天前我开始使用 Borland 的 Turbo C++。我其实有两个问题。

1.:如何更改文件图标?如果我创建一个程序(控制台应用程序),它总是有这个蓝色图标(建筑物或类似的东西),我无法在任何地方找到它,如何将其更改为默认的“无”图标(就像在 Dev-C++ 中是默认的)。

2.: 如果我创建一个控制台应用程序,并且我想在我的虚拟电脑上运行,那么它说 CC3270.DLL 丢失。如果我将它复制到 c:\windows\system32\ 那么它将完美运行。但我想避免这种方式。那么是否有可能更改设置或类似的东西,我的应用程序不需要这个文件?这很令人不安,因为如果我想在没有这个 dll 的计算机上使用我的程序,那么我必须在每台机器上复制它。

提前致谢!

坎皮

0 投票
5 回答
2152 浏览

java - 是否可以使用 Turbo C/C++ 编译器生成 DLL?

我需要它来从 Java 类 (JNI) 调用 C 函数,并且我知道可以使用“Microsoft Visual C++ 编译器”来执行此操作。(在这里解释

但我很想知道是否可以使用TCTCC完成类似的事情。

我没有“Microsoft Visual C++”的副本,并且不确定cl.exe是否可用而无需安装“Microsoft Visual Studio”

0 投票
4 回答
22951 浏览

c++ - C语言程序被检测为病毒

我已将此程序保存为 virus.cpp。我正在使用 Turbo C 编译器来编译这个程序并从 Turbo C (Ctrl + F9) 运行。

我使用的是 Windows 7,并且我已经安装了 Avira AntiVir 病毒系统。

当我试图运行上面的程序时,它会创建一个蠕虫(DOS/Candy)。我相信程序没有错。

替代文字

现在这里有一些特别的东西。执行相同的程序,但有以下不同。这里唯一的区别是之间的空间\n

区别只是 \n 和空格。我的问题是,为什么我的简单程序被检测为病毒?

这是另一个代码示例,这次是 C++:

当我运行这个程序时,它会给出“病毒警告”——即使它不是病毒。现在,悲剧是当您删除析构函数时,它不会将其检测为病毒。

这是屏幕截图和类似的问题:

C 语言 - \n - 制造病毒

替代文字

问题是如何,为什么?

0 投票
4 回答
2283 浏览

c - 长整数问题

我是 C 的初学者,使用 Turbo C++ 编译器(16 位)。

在我正在编写的软件中,最大答案在 32000 左右。如果我想要一个更大的数字,我使用long int.

如果我执行以下程序:

然后我得到一个错误,即常量值在函数中很长main()

我怎样才能得到超过 32000 的答案并摆脱这个错误?另外,当我使用无符号整数时,我将 %d 更改为 %ld 并使用 40000L bt 那么我还需要将 'l' 与 40000 // 一起使用吗?

0 投票
4 回答
2793 浏览

c++ - 读取 bmp 文件进行隐写术

我正在尝试用 C++(Turbo) 读取 bmp 文件。但我无法打印二进制流。

我想将 txt 文件编码到其中并解密。我怎样才能做到这一点。我读到 bmp 文件头是 54 字节。但是我应该如何以及在哪里将 txt 文件附加到 bmp 文件中。?

我只知道 Turbo C++,所以如果你提供与主题相关的解决方案或建议对我很有帮助。

当我以二进制模式传递 txt 文件时,此代码运行良好

编辑 :

我无法在控制台中看到二进制数据,当我在 fr.get(c) 中传递字符参数时,这对文本工作正常

0 投票
5 回答
1932 浏览

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)有关吗?