小编Mar*_*rkJ的帖子

VB6-启动应用程序时如何在VB6中创建日志文件

我想记录在执行我的应用程序期间发生的异常.在此之前我用消息框处理它.我是VB 6的新手.

请提供一些示例代码来创建日志文件并保存异常消息.

谢谢..

vb6 logging

5
推荐指数
1
解决办法
2万
查看次数

循环和垃圾收集

我正在处理Web应用程序,我遇到了以下情况.

Dim a as Object
Dim i as Integer = 0

Try

    For i=1 to 5

        a = new Object()

        'Do stuff '

        a = Nothing

    Next

Catch

Finally

   a = Nothing

End Try
Run Code Online (Sandbox Code Playgroud)

我是否需要在循环中执行a = Nothing或将垃圾收集器清理干净?

.net vb.net garbage-collection loops

4
推荐指数
2
解决办法
3132
查看次数

熵与无损压缩率的关系

Shannon的源编码定理我们知道压缩字符串的熵受原始字符串的熵限制,如下所示:

H(X) <= L < H(X) + 1/N 
Run Code Online (Sandbox Code Playgroud)

其中H(X)是源字符串的熵,N是源字符串的长度,L是压缩字符串的预期长度.

这必然意味着无损压缩存在限制.

我想知道的是:

  • 我们可以直接将熵与某些预期的压缩比相关联吗?

  • 我们可以使用熵来找到压缩比的上限吗?

compression information-theory

4
推荐指数
2
解决办法
4882
查看次数

使用代码执行正在运行的应用程序的屏幕截图

我需要运行一些代码来捕获在Windows桌面上运行的应用程序的窗口(Windows XP在这里很好).

Web上有许多VB6示例,但它们往往只捕获正在运行的VB6应用程序或桌面.我正在寻找一个捕获给定窗口/应用程序的解决方案.所以,我希望能够提供要捕获的应用程序窗口的名称.

快速的Bing搜索确实产生了一些代码示例,但它们捕获了桌面或当前运行的VB6应用程序.我愿意修改其中一个来捕获给定的窗口(命名应用程序).

但是在我这样做之前,也许某人有一个链接到vb6或VBA库代码示例,该示例将捕获/保存给定的命名应用程序窗口到硬盘上的bmp或某种类型的图像文件.

这里有一个VB6或VBA解决方案的链接.我愿意修改现有的例子.

vb6 ms-access vba

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

我们已经将VB6代码迁移到.net中的C#

代码是使用第三方工具迁移的.该工具无法做什么,是由.net开发人员完成的,因此修复了所有编译问题.我的问题是,对于这样的迁移活动,我们不打扰运行单元测试功能.

其次,任何人都可以建议我们是否应该使用VSTS 10中的某个工具来创建此代码的UML模型,以最大限度地降低客户可能发现的问题的风险.这有多累赘.

鉴于原始VB6应用程序的功能对我们来说是未知的,是否有任何其他建议可以提供高质量的迁移代码.

c# vb6 vb6-migration

4
推荐指数
2
解决办法
589
查看次数

公共财产定义

为对象定义属性而不是直接访问私有变量有什么好处?

代替 :

public class A

    private _x as integer = 0

    Public property X() as integer
        Get
            return _x

        End Get
        Set(ByVal value As integer)
            _x = value
        End Set
    End Property

end class
Run Code Online (Sandbox Code Playgroud)

为什么我们不能做以下事情:

public class A

    public _x as integer = 0

end class
Run Code Online (Sandbox Code Playgroud)

有什么好处?

c# variables field properties class

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

如何将VB 6.0中的Application.PrevInstance转换为VB.NET?

我在VB 6代码中有'Applications.PrevInstance',我试图使用VS 2008升级到.NET.显然这段代码不再有效.有没有人对升级解决方案有任何想法?TIA

vb6 vb6-migration

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

将VB6容器类升级到VB.NET

好的,所以我将VB6应用程序升级到VB.NET,我不确定如何对我正在构建的容器类的class_terminate组件进行现代化:

Private Sub class_terminate()
    If Not (colUserMappings Is Nothing) Then
        Set colUserMappings = Nothing
    End If
End Sub
Run Code Online (Sandbox Code Playgroud)

问题是.NET的等价物会.Finalize留下一些潜在的运行时错误,因为将容器的最终引用设置为空并不一定会破坏容器,因为.NET语言具有非确定性的终结.

在这种情况下,我将如何以一种调用其终止或终止函数实际上导致最终破坏容器的方式对集合类进行现代化?这有一个很好的解决方法吗?

.net vb.net vb6 collections vb6-migration

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

使用C#重建更新的VB6 COM类替换

我在这里遇到了一个特别棘手的问题,我想在那里提出更多的反馈(我是我工作的公司中唯一的.NET开发人员,因此没有人可以反弹).

我的任务是更换一个老化的VB6编写的ActiveX组件,该组件由包含VB6用量和我正在替换的组件的VB.NET用法的应用程序使用.

我有所有这些组件的完整源代码,所以我可以看到用例.

为了便于讨论,可以调用组件:

MyVb6.dll
MyApp(使用VB.NET和VB6组件)

在构建过程中,MyApp他们使用TlbImp工具生成一个互操作库:

Interop.MyVb6.dll

用法

在大多数情况下,使用此方法符合预期,使用如下CreateObject()方法:

Private Property MyProp() As Object
    Get
        Try
            If m_myProp Is Nothing Then
                m_myProp = CreateObject("MyVb6.MyVb6Obj")
                m_myProp.Initialize()
            End If
        Catch : End Try
        Return m_myProp
    End Get
Run Code Online (Sandbox Code Playgroud)

但是在一个例子中,我发现他们似乎已经改变了如何使用这个interop dll的策略,并且他们有一个静态引用它和一个类型属性,例如:

Private Property MyProp() As MyVb6.MyVb6ObjClass 'Whilst this is strongly typed, it is from the interop dll ...
    Get
        If m_myProp Is Nothing Then
            m_myProp = CreateObject("MyVb6.MyVb6Obj")
            m_myProp .Initialize()
        End If
        Return m_myProp 
    End Get
Run Code Online (Sandbox Code Playgroud)

重建和重新部署整个应用程序的费用是完全不可能的,所以除了替换之外我别无选择MyVb6.dll.

我希望在这里找到的是这是否是一个实用的解决方案...... …

c# vb.net vb6 com vb6-migration

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

如何在VB.NET中卸载所有打开的表单?

在将VB6代码转换为VB.NET的过程中,我需要替换以下代码,这些代码旨在关闭应用程序中剩余的所有打开的表单.

'close all sub forms
For i = My.Application.OpenForms.Count - 1 To 1 Step -1
    'UPGRADE_ISSUE: Unload Forms() was not upgraded. Click for more: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="875EBAD7-D704-4539-9969-BC7DBDAA62A2"'
    Unload(My.Application.OpenForms(i))
Next i
Run Code Online (Sandbox Code Playgroud)

UnloadClose(用TFM表示)替换了函数,但是编译器抱怨它OpenForms不是.的成员My.Application.

我在哪里可以访问开放表格?

vb.net vb6 vb6-migration visual-studio-2008 winforms

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