标签: vb6-migration

是否有与 VB6 Support.TabLayout 方法等效的 VB.NET?

我目前正在工作中整理一些转换后的 VB6->VB.Net 代码,但我试图找到 Support.TabLayout 方法的 .Net 等效项,但运气不佳:

Debug.Print(VB6.TabLayout(intPages, lngColumn, .ColPageBreak, .Text))
Run Code Online (Sandbox Code Playgroud)

有谁知道这种方法的等效或替代方法?

vb.net vb6-migration

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

分号标签停止在VB.NET中

在VB6中,有一个函数可以将打印位置移动到下一个tabstop,如下所示:

Print #1, "Total run time: "; _
                Fix(tmpTick / 60000) & " min and " _
                & Fix((Abs((tmpTick / 60000) - Fix(tmpTick / 60000)) _
                * 60)) & " Sec"
Run Code Online (Sandbox Code Playgroud)

我已经将这个VB6重写为VB.NET,但分号仍然完好无损:

 mainoutputwriter.WriteLine("Total run time: "; _
                Fix(tmpTick / 60000) & " min and " _
                & Fix((Abs((tmpTick / 60000) - Fix(tmpTick / 60000)) _
                * 60)) & " Sec")
Run Code Online (Sandbox Code Playgroud)

如何更换分号以移动打印位置?

谢谢

vb.net vb6 tabs vb6-migration

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

Visual Basic 6 如何将整数转换为布尔值?

我正在 vb6 中阅读以下代码

If someInteger Then
    DoSomething
End If
Run Code Online (Sandbox Code Playgroud)

不知道是不是这个意思

  1. someInteger == 1,
  2. someInteger > -1,
  3. someInteger > 0 或者
  4. Convert.ToBoolean(someInteger)

C# 中的等价表达式是什么?

vb6 integer boolean vb6-migration implicit-conversion

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

C#等效的VB字符串大于

有一个旧的vb6项目正在用C#重写,一个函数有以下代码:

If (strPlainChar >= "A" And strPlainChar <= "Z") Then
Run Code Online (Sandbox Code Playgroud)

但显然C#if语句不允许大于字符串,我该如何重新创建这段代码?

c# vb6 string-comparison vb6-migration

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

vb6到vb.net dll兼容版本

我解释一下我的问题:

我在vb6中有一些程序(5-6),在vb6中有很多DLL.我们将在Vb.Net中执行这些DLL和程序的迁移.

我们想从DLL开始,每个程序引用2或3个DLL.

我想在vb.net中执行DLL的迁移(没问题)但是我想保持我的旧vb6 DLL和vb.net中的新版本之间的(二进制)兼容性因为没有它我将不得不重新使用此DLL构建每个应用程序,因为兼容性已被破坏.

我搜索了很多,我试图采取vb6类的GUID并强制它在VB.NET中使用类似的东西:

<Guid("B3F3EF24-F6E8-4XF9-A686-824DXXX2DF0")>
<ProgId("Project.ClsObj")>
 Public Class ClsObj
 ....
Run Code Online (Sandbox Code Playgroud)

并选择:使组件COM-Visible

但即便如此,如果我部署vb.net DLL(与vb6 DLL的名称相同)并使用regasm注册它:该程序不起作用.

如果你有一些想法,我会很感激我不知道我想做的事情是否真的可行

THKS

.net vb.net vb6 dll vb6-migration

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

vb6 ORing十六进制值常量?

试图将其转换为C#,但在设置为另一个常量时,或者是一些十六进制值常量时会感到困惑.

Public Const STANDARD_RIGHTS_ALL = &H1F0000
Public Const SYNCHRONIZE = &H100000
Public Const KEY_CREATE_LINK = &H20
Public Const KEY_CREATE_SUB_KEY = &H4
Public Const KEY_ENUMERATE_SUB_KEYS = &H8
Public Const KEY_NOTIFY = &H10
Public Const KEY_QUERY_VALUE = &H1
Public Const KEY_SET_VALUE = &H2
Public Const KEY_READ = ((STANDARD_RIGHTS_READ Or _
                      KEY_QUERY_VALUE Or KEY_ENUMERATE_SUB_KEYS _
                     Or KEY_NOTIFY) And (Not SYNCHRONIZE))
Run Code Online (Sandbox Code Playgroud)

C#?:

public const int KEY_READ = ((STANDARD_RIGHTS_READ || KEY_QUERY_VALUE || KEY_ENUMERATE_SUB_KEYS || KEY_NOTIFY) & (!SYNCHRONIZE));
Run Code Online (Sandbox Code Playgroud)

c# vb6 vb6-migration

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

VB6 .Net Interop.将.Net Date属性传递给VB6函数ByRef未更新

我有一个混合的VB6(入口点)到.Net应用程序.

在.Net中,我有一个类,它具有Date属性(Date1-Date4),并且公开了,并且COM Visible等等于VB6代码.

在VB6代码中有一个方法,它采用Date ByRef并修改它.

使用在VB6(dt1-dt4)中声明的日期,这可以正常工作,我传递ByRef的日期变量得到更新,但是如果我在我的类(Date1-Date4)上传递.Net日期,它会更新.

work arround是将TmpDate传递给方法,然后将值分配给.Net属性.

然而,我想找到一个合适的解决方案,因为我正在替换VB6代码,这很容易被遗漏.

VB.Net宣言

<ComVisible(True)>
Public Class DotNetDatesClass
    Implements INotifyPropertyChanged, IDotNetDatesClass

     Private _Date1 As DateTime

     <ComVisible(True)> 
      Public Property Date1 As DateTime Implements IDotNetDatesClass.Date1   
            Get
                Return _Date1
            End Get
            Set(value As DateTime)
                _Date1 = value                   
            End Set
        End Property
Run Code Online (Sandbox Code Playgroud)

VB6示例:

    dotNetDates.Date1 = DEFAULT_DATE
    dotNetDates.Date2 = DEFAULT_DATE
    dotNetDates.Date3 = DEFAULT_DATE
    dotNetDates.Date4 = DEFAULT_DATE

    getDates connectionString, dotNetDates.Date1, dotNetDates.Date2, dotNetDates.Date3, dotNetDates.Date4
Run Code Online (Sandbox Code Playgroud)

解决方法:

    Dim dt1 As Date
    Dim dt2 As Date
    Dim dt3 As Date
    Dim dt4 As Date …
Run Code Online (Sandbox Code Playgroud)

.net vb.net vb6 com-interop vb6-migration

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

VB6调用VB.NET调用第三方COM DLL错误

我在VB6中有一个EXE,它调用最近升级到VB.Net的DLL.这部分工作正常,但我遇到的问题与定位VB.Net DLL引用的另一个COM DLL的互操作有关.

概述:EXE(VB6)调用DLL(VB.Net)的方法A,没有问题.DLL的方法A调用第三方DLL(COM)的方法B,它得到一个错误,就是无法找到COM DLL的互操作文件.

我已经使用测试UI在VB.Net中直接测试,在VB.Net DLL中调用相同的方法A,一切正常.我目前对造成这个问题的原因感到茫然.

谢谢,克里斯

vb.net vb6 com interop vb6-migration

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

声明变量时“As String * 25”是什么意思?

我试图理解这段代码的含义:

Dim Duplicatecheck(0 To 10000) As String * 25  
Run Code Online (Sandbox Code Playgroud)

我看到它是一个字符串数组,但是 "* 25" 是做什么的?我对 vb6 数组的看法高低不一,但我看不到任何可以解释它的东西。

vb6 vb6-migration

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

VB.Net 中的货币等价物?

我正在将一个应用程序从 VB6 迁移到 VB.Net,它使用货币类/结构。我的问题是:以下代码中 VB6货币的“等价物”是什么?

Public Function getTimeElapsed() As Double

    Dim cuStart As Currency
    Dim cuStop As Currency
    Dim cuFreq As Currency
    Dim v As Double
    Dim ReturnValue As Double

    QueryPerformanceFrequency(liFrequency)

    cuStart = LargeIntToCurrency(liStart)
    cuStop = LargeIntToCurrency(liStop)
    cuFreq = LargeIntToCurrency(liFrequency)
    ' elapsed time
    v = CDbl(cuStop - cuStart) / CDbl(cuFreq)
    Select Case ResultUnit
        Case CounterUnit.Second
            ReturnValue = v
        Case CounterUnit.Millisecond
            ReturnValue = v * 1000.0#
        Case CounterUnit.microsecond
            ReturnValue = v * 1000000.0#
        Case CounterUnit.nanosecond
            ReturnValue = v * …
Run Code Online (Sandbox Code Playgroud)

vb.net migration vb6 vb6-migration

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