标签: vb6

如何在Visual Basic中使用互斥锁

我导入了这个kernel32库.所以,我有createMutex可用的功能,但我不太确定各种参数和返回值.

这是经典的Visual Basic,而不是Visual Basic.NET,但我可能会以答案的形式使用这两种语言.

vb6

21
推荐指数
2
解决办法
7731
查看次数

在没有DoEvents的情况下在VB6.0中取消长时间运行的进程?

是否可以在不使用DoEvents的情况下取消VB6.0中长时间运行的进程?

例如:

for i = 1 to someVeryHighNumber
    ' Do some work here '
    ...

    if cancel then
        exit for
    end if
next

Sub btnCancel_Click()
    cancel = true
End Sub
Run Code Online (Sandbox Code Playgroud)

我假设我需要一个"DoEvents"才能"如果取消那么......"还有更好的方法吗?有一阵子了...

vb6

21
推荐指数
4
解决办法
1万
查看次数

如何将char*转换为BSTR?

如何将char*从C dll传递给VB

这是示例代码:

void Cfunc(char *buffer,int len)
{
  BSTR buf_bstr = SysAllocString((BSTR)buffer);
  VBptr.VBfunc(buf_bstr,len);
}
Run Code Online (Sandbox Code Playgroud)

此功能不起作用,实际上其他一些值被发送到VB而不是实际值.

有人可以建议一个解决方案?

c string vb6 com bstr

21
推荐指数
3
解决办法
4万
查看次数

使用冒号在Visual Basic中将两个语句放在同一行上

使用冒号在Visual Basic中将两个语句放在同一行上被认为是不好的做法吗?

vb.net vb6 vba

21
推荐指数
6
解决办法
4万
查看次数

你是如何处理VB6中缺少构造函数的?

VB6类没有参数化构造函数.你为此选择了什么解决方案?使用工厂方法似乎是明显的选择,但让我感到惊讶!

vb6 constructor class

21
推荐指数
3
解决办法
1万
查看次数

"DoEvents"在vb6中做了什么?

"DoEvents"在vb6中做了什么?为什么我收到错误消息"堆栈空间不足"?这是什么意思 ?

vb6 doevents

21
推荐指数
3
解决办法
4万
查看次数

VB6溢出错误,大整数

我试图设置一个整数值:

Dim intID as integer
intID = x * 10000
Run Code Online (Sandbox Code Playgroud)

x3或更少时,这可以正常工作.但是当它x是4时,这给了我错误:

运行时错误6溢出

我不明白为什么会这样.我可以intID直接设置为40000而没有任何问题,因此它显然能够存储大量数字.

在此输入图像描述

vb6 integer overflow

21
推荐指数
2
解决办法
6万
查看次数

GetWindowRect返回包含"不可见"边框的大小

我正在开发一个应用程序,以网格样式在屏幕上定位窗口.在Windows 10上运行时,窗口之间存在巨大差距.进一步调查显示GetWindowRect返回意外值,包括一个不可见的边框,但我不能让它返回带有可见边框的实际值.

1)这个帖子暗示这是设计的,你可以通过链接winver = 6来"修复"它.我的环境不允许这样,但我已经试图改变PE MajorOperatingSystemVersionMajorSubsystemVersion6个无影响

2)同一个线程还建议使用DwmGetWindowAttributewith DWMWA_EXTENDED_FRAME_BOUNDS从DWM获取真实坐标,这有效,但意味着改变到达窗口坐标的每个地方.它也不允许设置值,让我们反转过程以便能够设置窗口大小.

3)这个问题表明在这个过程中缺乏DPI意识.既没有在清单中设置DPI感知标志,也没有调用SetProcessDpiAwareness任何结果.

4)一时兴起,我还尝试添加Windows Vista,7,8,8.1和10兼容性标志,并且Windows主题清单没有任何变化.

全屏 这个窗口移动到0x0,1280x1024,据说可以填满整个屏幕,当查询坐标时,我们得到相同的值.然而,窗口实际上是14像素更窄,以考虑旧版Windows上的边框.

我怎样才能说服Windows让我使用真实的窗口坐标?

vb6 winapi dwm windows-10

21
推荐指数
1
解决办法
6715
查看次数

此VB6操作的等效C#语句产生问题

我在VB中有这个代码行:

Dim Sqrt As Double
Sqrt = Radius ^ 2 - (CenterX - X) ^ 2
Run Code Online (Sandbox Code Playgroud)

上面的语句中的参数将传递以下值:

X=  -7.3725025845036161 Double
CenterX =0.0            Double
Radius= 8.0             Double
Run Code Online (Sandbox Code Playgroud)

在执行上述语句时,其值Sqrt如下:

Sqrt    9.646205641487505   Double
Run Code Online (Sandbox Code Playgroud)

现在我用Math类写了一个类似的C#逻辑:

double Sqrt = 0;
Sqrt = Math.Pow(Radius, 2) - Math.Pow((CenterX - X), 2);
Run Code Online (Sandbox Code Playgroud)

使用相同的值集,C#代码中的输出为:

Sqrt    9.6462056414874979  double
Run Code Online (Sandbox Code Playgroud)

我需要帮助,因为C#代码中的这个单一更改,我的所有值都受到影响.我能做些什么来获得与*VB*源类似的价值吗?

c# vb.net vb6 interop backwards-compatibility

21
推荐指数
2
解决办法
1240
查看次数

你如何处理源代码管理中的visual basic 6 frm和frx文件?

无论我使用什么源代码控制系统(源代码安全,cvs,clearcase ......),这总是很痛苦.二进制.frx文件在合并可视化基本表单时总会导致问题.

我知道......我知道......你为什么使用Visual Basic ...因为有许多遗留的应用程序仍在使用它写,虽然我不想承认它我真的喜欢用它(鸭子西红柿)

vb6 version-control frm

20
推荐指数
3
解决办法
2万
查看次数