标签: vb6-migration

如何将VB5项目转换为ac #project

我有一个VB5(非.net)项目,我想升级到ac #project.有没有人对方法或免费工具有任何建议,可以帮助我解决这个问题.

谢谢

布拉德

c# vb6-migration vb5

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

如何在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万
查看次数

在VB.NET中声明属性

在我的VB 6.0代码中,我声明有以下行:

Attribute VB_Name = "MyFile"
Run Code Online (Sandbox Code Playgroud)

但是,在VB.NET中,我收到错误"期待声明".这不是宣言吗?找到VB.NET和VB 6.0之间的差异有很好的参考吗?

vb.net vb6 vb6-migration

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

将.bas文件移植到vb.net

我正在研究一些传统的VB5/VB6代码,需要将".bas"文件转换为vb.net.

我找到了几个选择

  1. 将.bas文件编译为com dll,然后引用并在我的项目中使用它.(对于这个我想我需要vb5或vb6,我没有我可以使用)

  2. 将文件的内容复制并粘贴到vb.net中的新模块中,然后逐个尝试解决错误.

.bas文件的内容引用了一个特定的dll..bas文件主要包含声明consts,类型,子和函数.

在vb.net中重做这个最优雅的方法是什么.它是否与选项2一样简单.

编辑

我使用VS2008 express并通过升级向导运行代码,它进行了必要的转换.并且.bas文件已转换为.vb.我拿了那个文件并决定重写代码的其他部分,包括重新转换的.vb文件.

与此相关的其他问题在这里.

vb.net vb6-migration

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

VB6项目可以使用.Net .dll吗?

我有一个VB6项目.我的问题是我可以调用具有项目所有业务规则的.NET .dll(来自VB6应用程序)吗?

基本上我有一个VB6项目与一个经典的ASP项目调用vb6/ActiveX .dll.要求是找出升级应用程序的最佳方法.所以,如果我更新ActiveX .dll,VB6应用程序可以调用新的.NET .dll吗?

我想同样的问题对于经典ASP项目也是可行的......

谢谢!

.net vb6 asp-classic vb6-migration

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

VB6/VBA TabStrip可以在两个选项卡中具有相同的控件?

我注意到VBA/VB6 TabStrip控件允许在其页面中克隆其子节点的实例.我正在查看一个旧的VBA项目,它有一个tabtrip,幕后它只是添加页面,控件是自动复制的,但可以有不同的数据源.

有什么方法可以在VB.NET中复制它吗?

vb6 vba vb6-migration

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

VB6到VBNet - ListBox.Selected

我目前有一个选择案例,它将从记录集中读取名称字段,以及从该记录集中读取一个布尔值,该值假定是否将该字段包含在稍后将生成的报告中.

问题是,在VB6中,你能够为ListBox.Selected(i)分配一个布尔值.

现在,我不能为我的生活弄清楚要分配什么,选择或不选择依赖于记录集中的布尔值的字段.

码:

Do Until rs_1.EOF
        'Until we run out of records ...

        str_FieldName = rs_1.Fields("FieldName").Value
        b_IncludeField = rs_1.Fields("IncludeInBatchReport").Value

        Select Case str_FieldName
            Case "Sequence"
                listbox_Fields.Items.Add("Sequence")
                listbox_Fields.SelectedItem(listbox_Fields.Items.Count - 1) = b_IncludeField
            Case "BldgNo"
                listbox_Fields.Items.Add("BldgNo")
                listbox_Fields.SelectedItem(listbox_Fields.Items.Count - 1) = b_IncludeField
            Case "BldgName"
                listbox_Fields.Items.Add("BldgName")
                listbox_Fields.SelectedItem(listbox_Fields.Items.Count - 1) = b_IncludeField
            Case "BldgFunc"
                listbox_Fields.Items.Add("BldgFunc")
                listbox_Fields.SelectedItem(listbox_Fields.Items.Count - 1) = b_IncludeField
            Case "POC"
                listbox_Fields.Items.Add("POC")
                listbox_Fields.SelectedItem(listbox_Fields.Items.Count - 1) = b_IncludeField
            Case "Phone"
                listbox_Fields.Items.Add("Phone")
                listbox_Fields.SelectedItem(listbox_Fields.Items.Count - 1) = b_IncludeField
            Case "AH_Phone"
                listbox_Fields.Items.Add("AH_Phone")
                listbox_Fields.SelectedItem(listbox_Fields.Items.Count - 1) = b_IncludeField
            Case …
Run Code Online (Sandbox Code Playgroud)

vb.net vb6 listbox vb6-migration

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

在VB应用程序中使用user32.dll有什么用?

在我们中我们使用了user32.dll并传递了hWnd.So的值.我想知道这个User32.dll有什么用,并传递值hWnd?

他们正在设置此值

SetProp hwnd, "PrevWndProc", SetWindowLong(hwnd, GWL_WNDPROC, AddressOf WindowProc)
Run Code Online (Sandbox Code Playgroud)

vb6 winapi vb6-migration

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

VB中C语言的"等于"等效

我知道在循环的上下文Toi = long1 To long2,VB中的等价(i = long1; i < long2; ++i)于C#,但我试图在上下文中找到它的等价物ReDim/System.Array.Resize():

VB6:

ReDim indexCorr(LBound(fDefMatchs) to UBound(fDefMatchs)

C#:

System.Array.Resize(indexCorr, ***?)

有没有其他人知道如何使用一系列这样的数字在C#中调整数组大小?

c# arrays vb6 vb6-migration

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

如何确定非托管dll的正确参数结构?

我正在从VBA加载一些旧的VB函数,并且大多数都已经更新到VB.NET,但是"wininet.dll"中的函数的函数声明似乎没有正确匹配.

我得到的错误是:

抛出异常:托管调试助手,'PInvokeStackImbalance':...

它的长短是声明的参数的长度需要是显式的,并且它与dll中的实际函数不匹配.

我看了这个,我可以通过删除支票来获得,但它会产生"堆栈不平衡",并且随着时间的推移最终会耗尽所有堆栈.此外,这些被称为"非托管"dll,并且已经在http://pinvoke.net上的PInvoke函数wiki上提出了一些声明.这个wiki确实有一些我正在使用的函数调用,但不是全部.其中一些我不得不猜测一些事情,但没有成功.

我从旧代码中复制的大部分更改都是从更改longint32integer更改为IntPtr旧代码中从未使用过的更改.我假设这会使所有整数大小正确(即16/32/64位),这可能是大多数问题所在.但是,有一种情况是改变longstring(),这看起来有点奇怪而且没有编译好.

那么,我如何实际查找dll中的函数长度并匹配API?

我查了几件事,但当我尝试在Visual Studio中添加对c:\ windows\system32\wininet.dll的引用到我的VB.NET项目时,它说我无法添加它.这似乎阻止我在Visual Studio中使用Object或Assembly浏览器.它似乎不是COM对象.这里有什么帮助?

作为参考,这是失败的旧代码:

Private Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" ( _
    ByVal Agent As String, ByVal AccessType As Long, ByVal ProxyName As String, _
    ByVal ProxyBypass As String, ByVal Flags As Long) As Long

Private Declare Function InternetConnect Lib "wininet.dll" Alias "InternetConnectA" ( _
    ByVal hInternetSession As Long, ByVal ServerName As String, ByVal ServerPort As …
Run Code Online (Sandbox Code Playgroud)

vb.net dll wininet vb6-migration visual-studio

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