vb6 - 你有 VB6 的一键式编程用法的例子吗?

标签 vb6

VB6 以过于宽容(从而允许不良做法)和隐藏复杂性而闻名,开发人员可能最好知道这些。但我发现,比如说,90% 的应用程序都可以在 VB6 中完成。

但我想看到更多关于插入信封以解决 VB6 限制的例子。例如,我曾经通过调用 Windows 操作系统找到了一些在 VB6 中使用指针的代码。结果是对大型文档(大约 2MB)的一些字符串操作从 30 分钟减少到 3 秒多一点。有没有人有其他超越 VB6 限制的例子?

注意不是 VB.Net。

最佳答案

一个讨厌的伎俩是滥用 CallWindowProc通过传递一个指针来调用任意代码。这在技术上违反了该函数的约定,因为它只能与通过 GetWindowLong 获得的句柄(而不是直接代码指针)一起使用。 ;但实际上很少有人真正知道这一点,以至于实现被迫允许任意代码指针。这让你可以调用任何函数指针,只要它是 stdcall , 并接受 4 个与 WndProc 大小相同的参数论据。

上述结果导致的一个更讨厌的技巧是,您可以通过这种方式动态生成代码 - 只需将其粘贴在一个字节数组中,然后使用 CallWindowProc跳到它。通过这种方式,您可以将非 VB6 生成的 native 代码嵌入到 VB6 应用程序中,而无需任何外部 DLL。当然,在这个默认启用 NX 位的时代,这可能不再是一个好主意(如果曾经是,那就是)...

关于vb6 - 你有 VB6 的一键式编程用法的例子吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1502234/

相关文章:

vb6 - 如何将 vb 文本框设置为 "buffer"的内容?

winapi - 什么可能导致 CryptStringToBinaryW 崩溃?

c# - 使用来自 VB6 代码的 C# 程序集。一些问题

sql-server - 将 Picturebox 中的图像与 SQL Image 数据类型进行比较

vb6 - VB6 的附加组件以查找所有引用等?

vb6 - 比 Visual Basic 6 更容易吗?

class - VB6 类有析构函数吗?

vb6 - 如何限制 DTPickers 的可用日期?

winapi - VB6 在使用事件 Windows 消息 Hook 进行调试时退出

Windows 10 中的 VB6 无法实现 IDTExtensibility2