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/