问题标签 [vb6]

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 投票
3 回答
770 浏览

winforms - 当应用程序关闭时,无模式的 VB6 应用程序如何进行清理?

一个 VB6 应用程序正在使用 Interop Forms Toolkit 来处理用 .NET 编写的表单。工具包的文档建议在 VB6 应用程序关闭时调用工具包上的方法来通知工具包。

VB6 应用程序使用加载初始屏幕的 Sub Main 过程,然后显示几个无模式窗体。当 Sub Main 完成时,应用程序仍在运行。应用程序如何检测到它正在关闭并调用 Toolkit 上的清理方法?

0 投票
2 回答
3396 浏览

vb.net - 在VB中寻找模拟退火实现

有没有人知道我可以检查和适应的 Visual Basic 中模拟退火的合理记录示例?

0 投票
5 回答
15979 浏览

vb6 - 是否可以在 VB6 中以编程方式检索调用堆栈?

当函数中发生错误时,我想知道导致错误的事件顺序,尤其是当从十几个不同的地方调用该函数时。有什么方法可以在 VB6 中检索调用堆栈,还是我必须以艰难的方式进行(例如,每个函数和错误处理程序中的日志条目等)?

0 投票
3 回答
12019 浏览

vb.net - 在没有 .NET 支持的情况下在 Visual Studio 2008 上编写 VB6?

我必须继续支持VB6 应用程序。我已经安装了 VB6 (Visual Studio 6) 和 Visual Studio 2008。我可以在 Visual Studio 2008 中读写 VB6 项目吗?它会损坏或破坏我的 VB6 应用程序吗?如果我能腾出大量空间并摆脱 Visual Studio 6,那将是非常酷的。

0 投票
6 回答
1235 浏览

vb6 - 奇怪的VB6构建问题(与nlog有关)

我认为这与我对 nlog C++ API 的使用有关(我在 nlog 论坛上的问题在这里);我在这里提出这个问题的目的是让更广泛的受众了解我的问题,也许还可以获得一些关于 VB6 IDE 未能在我的特定场景中构建的更一般的想法。

简而言之,我遇到的问题是我无法构建引用非托管 C++ 组件的 VB6 组件,这些组件调用了 nlog 的 C\C++ API(在 NLogC.DLL 中定义)。构建问题不会在编译期间发生,它们是在构建二进制文件时发生的,这向我暗示这是某种链接器类型问题?对如何生成 VB6 二进制文件知之甚少。生成了 VB6 二进制文件,但它在调用后不久就损坏并崩溃。

有没有人对VB6有过类似的经历(不一定与nlog或C++有关)?

编辑:感谢所有对这个相当晦涩的问题的回应。不幸的是,仍然没有进展;我发布后的发现:

  1. “调整”编译选项似乎对解决这个问题没有帮助。
  2. 从“空白”VB6 项目添加对启用 nlog 的 C++ 组件的引用不会使其崩溃或导致奇怪的构建问题。所以这不是“原生”VB6 问题,可能是 nlog 与其他引用组件使用的各种组件和 3rd 方库之间的交互问题?
  3. 至于 C++ 调用约定:启用 nlog 的 C++ 组件 - 据我所知 - 符合这些约定,并且在 VB6 引用时确实可以正常工作,只要它不进行任何 nlog API 调用。不确定 nlogc.DLL 本身是否兼容 VB6,但我认为这无关紧要,因为 API 调用是从 C++ 组件进行的;VB6 不应该知道或关心 C++ 组件所引用的内容(据我对此的理解......)

编辑2:我还应该注意构建过程中获得的错误消息是:“加载过程中的错误。有关详细信息,请参阅“xxx”。当我打开日志文件时,里面只有:“无法加载控制 xxx”。有趣的是,如果我要再次尝试构建,对该特定控件的所有引用都会从该特定项目中消失,从而导致编译错误。

0 投票
1 回答
727 浏览

memory - 使用 VB6 查询更快的目录遍历:缓存和 Ram 问题?

下面是一个相当简单的函数,它计算机器上有多少文件。调用“C:\”,运行大约需要 5 秒。除非我有一段时间没有运行它或者首先运行一个 ram-clearing 程序,在这种情况下它需要 60 秒或更长时间。我不会认为它可能是缓存,因为我每次都在进行新的扫描(即启动程序的新实例,因为它所做的只是这次扫描),但也许它与内存分配有关?关于如何每次都进行快速运行的任何想法,或者为什么不能完成?其他程序(例如 SpaceMonger)设法在 10 秒内获得文件总数,即使我清除我的内存或在运行之间等待很长时间。所以,肯定有办法做到这一点,但不一定在 VB 中。

0 投票
4 回答
3028 浏览

vb6 - VB6 中的应用程序标题截断

平台:Windows XP 开发平台:VB6

当尝试通过 Make 选项卡上的 Project Properties 对话框设置应用程序标题时,它似乎会在设定的字符数处默默地切断标题。还通过 App.Title 属性尝试了这个,它似乎遇到了同样的问题。我不在乎这个,但 QA 部门坚持认为我们需要显示整个标题。

有没有人有解决方法或解决这个问题?


编辑:对于那些回答了 40 个字符限制的人,这就是我所怀疑的——因此我对可能的解决方法提出了问题 :-) 。

实际上,我发布这个问题是为了帮助一位开发人员,所以当我周一见到她时,我会向她指出你所有的优秀建议,看看是否有任何人能帮助她解决这个问题。我确实知道,出于某种原因,应用程序显示的某些对话框似乎从 App.Title 设置中提取了字符串,这就是为什么她问我关于字符串长度限制的原因。

我只是希望我能从微软那里找到一些明确的东西(比如某种 KB 注释),这样她就可以把它展示给我们的 QA 部门,这样他们就会意识到这只是 VB 的一个限制。

0 投票
2 回答
2076 浏览

vb6 - VB6 是否有等效的#pragma 包?

我正在开发一个必须处理专有二进制协议的 TCP/IP 客户端。我正在考虑使用用户定义的类型来表示协议标头,并使用 CopyMemory 将数据与 UDT 和字节数组进行混洗。但是,VB6 似乎添加了填充字节来对齐用户定义的类型。有什么方法可以强制 VB6 不填充 UDT,类似于#pragma pack许多 C/C++ 编译器中可用的指令?也许是传递给编译器的特殊开关?

0 投票
14 回答
6024 浏览

c++ - Visual Studio 6 提示和技巧

我们中的一些人总是不得不使用 Microsoft 的 Visual Studio 6.0 IDE 来支持“遗留”代码,尽管意见会有所不同,但与 Visual Studio 系列 IDE 的后期版本相比,这些 IDE 通常被认为对用户不太友好。

所以我想听听一些你最好的隐藏/记录不充分的 IDE 功能(可能适用于 C++ 或 VB)。请按照惯例,每篇文章一个功能。

0 投票
3 回答
2562 浏览

winapi - 你如何写一个用 FILE_FLAG_NO_BUFFERING 打开的文件的结尾?

我正在使用 VB6 和 Win32 API 将数据写入文件,此功能用于导出数据,因此写入磁盘的性能是我考虑的关键因素。因此,我在通过调用打开文件时使用FILE_FLAG_NO_BUFFERING和选项。FILE_FLAG_WRITE_THROUGHCreateFile

FILE_FLAG_NO_BUFFERING要求我使用自己的缓冲区并将数据以磁盘扇区大小的倍数写入文件,这通常没有问题,除了数据的最后一部分,如果它不是扇区大小的精确倍数将包括字符零填充文件,一旦写入最后一个块以不包含这些字符零,如何设置文件大小?

我可以使用SetEndOfFile,但这需要我关闭文件并重新打开它而不使用FILE_FLAG_NO_BUFFERING. 我见过有人谈论NtSetInformationFile但是我找不到如何在 VB6 中使用和声明它。SetFileInformationByHandle可以做我想要的,但是它只在 Windows Vista 中可用,我的应用程序需要与以前版本的 Windows 兼容。