我不熟悉Visual Basic 6.0或VB.NET.我从客户端获得了一个旧项目进行修改.所以我想确定代码是用Visual Basic 6.0还是VB.NET编写的.
任何建议或任何主要的语法差异,以便我可以更快地找到它?
在我的Windows终端用户上,我正在尝试将两个应用程序指向同一个Windows目录,一个用VBA写在VB6中.
从VB6 调用GetWindowsDirectory() API时,它返回正确的路径
C:\ documents and settings \%user%\ Windows
从VBA宏调用它时,它返回
C:\ WINDOWS
请注意,GetSystemWindowsDirectory()的结果相同
Thiking可能是VBA代码不知道它的终端站,我调用了GetSystemMetrics(SM_REMOTESESSION)返回1 的API,这意味着它知道它是一个终端.
在VB6和VBA中使用了完全相同的代码
Windows 2003R2,Office版本是2010 64bit(因为我打字这个,让我想知道它是否相关,知道vb6是32位......)
有任何想法吗 ?
编辑:正如下面的IInspectable所解释的,vba和vb6之间的区别是因为vb6不像Office那样终端服务意识.
我目前正在将一些代码从VB6.0迁移到VB.NET,并注意到了一个问题.我是VB6.0的新手,现在我知道可以通过以下方式返回多个值:
Function test(str1 As String, str2 As String) As Long
str1 = "Hello World1"
str2 = "Hello World2"
test = 0
End Function
Run Code Online (Sandbox Code Playgroud)
当我调试时,我可以看到传递的参数现在已更新.但是我的问题是VB.NET似乎没有这样做.我怎么能在VB.NET中做到这一点?
任何意见,将不胜感激.
我想知道是否有一种从"字符串表"获取序列化字符串的方法.
我需要的是在网页表单中发布一些数据.这是我手动执行时发送的内容:
7 | 0 | 48 | https://aps2.senasa.gov.ar/embalaje-madera-web/embalajeApp/|03152A2DEBABDCE5D33BF4C88511DD1E|net.customware.gwt.dispatch.client.standard.StandardDispatchService|execute|net.customware.gwt.dispatch.shared.Action | gov.senasa.embalajemadera.shared.rpc.actions.IngresarDeclaracionJuradaAction/2514804035 | gov.senasa.embalajemadera.shared.domain.DeclaracionJurada/1628723960 | java.util.ArrayList中/ 4159755760 | gov.senasa.embalajemadera.shared.domain.TipoEmbalajeCantidad /4152068152|java.lang.Integer/3438268394|Pallet|gov.senasa.embalajemadera.shared.domain.TipoEmbalaje/309031988|java.util.HashSet/3273092938|gov.senasa.embalajemadera.shared.domain.Contenedor/1178264080|nro contenedor 1 | java.lang.Boolean/476441737 | gov.senasa.embalajemadera.shared.domain.Despachante/3149599025 | DESP || java.lang.Long/4227064769 | Treyes 8978 - CAPITAL FEDERAL | gonzalo@rsystem.com.ar | Spina Gonzalo | 45510141 | direccion destino | direccion exportador | java.util.Date/3385151746 | chasis/| gov.senasa.embalajemadera.shared.domain.Importador Exportador/918958990|gonzalo@gmail.com|46326066|gov.senasa.embalajemadera.shared.domain.DatoAduana/2671264783|NRODESPACHO|IC01|gov.senasa.embalajemadera.shared.domain.LugarDeArribo/3008903128|NROMANIIMPO|gov.senasa. embalajemadera.shared.domain.PuntoIngreso/1183502123 | 717.3 | aduana origen | Terrestre camion | merca | gov.senasa.embalajemadera.shared.domain.Pais/3238585366 |澳大利亚| AFGHANISTAN | nombre exportador | gov.senasa.embalajemadera.shared.domain .TransportePatente/1923027028 | acoplado |底盘| 1 | …
似乎已经有一些答案,但我找不到适合我的问题的答案.
这是代码:
Private Sub Combo2_click()
Dim item_id, price As Integer
Dim item_name As String
If Combo2.Index Is 0 Then
price = 30
ElseIf Combo2.Index Is 1 Then
price = 40
ElseIf Combo2.Index Is 2 Then
price = 50
ElseIf Combo2.Index Is 3 Then
price = 60
Else
price = 55
End If
End Sub
Run Code Online (Sandbox Code Playgroud)
我收到错误"编译错误:输入MisMatch"...我不知道为什么!它显示错误Private Sub COmbo2_click()...
我有一个VB3应用程序可以在Windows XP上运行并赢得7个32位版本,但不适用于win 7 64位版本.有谁能解释为什么?我知道驱动程序具有相同的行为,但这不是我的情况,它只是一个从Access数据库读取的简单应用程序.据我所知,大多数32位应用程序都支持64位架构.
我想从"D:\ abc.exe"位置打开一个.exe文件.什么应该是VB6代码?
我只需要VB6.当我点击一个按钮时,它将运行abc.exe文件
什么是注册表子树HKCR\VBKeySave5?为什么它对VB6 IDE性能有如此巨大的影响?
背景:
我们的一台开发PC(Windows 10 x64)加载VB6 IDE非常慢.IDE最初加载速度很慢,而且启动项目引用窗口的速度很慢.(几十秒,甚至几分钟).
清除项目使用的库之一的注册表显示了子树HKCR\VBKeySave5.在这个子树下有成千上万的条目,看起来像你用VB6 DLL等获得的GUID,类ID,类名等通常的COM沼泽地.
删除此密钥及其下的所有内容使IDE执行速度更快 - 基本上它会加载然后立即显示引用窗口.
由于这一点,似乎没有发生任何坏事.
我在VB和C#中有相同的If条件,如下所示
Dim str As String = "aaa"
If (str.IndexOf("bbb")) Then
Console.WriteLine("aaa")
End If
Console.ReadLine()
Run Code Online (Sandbox Code Playgroud)
C#中的代码相同
string str = "aaa";
if(str.IndexOf("bbb") > -1)
{
Console.WriteLine("aaa");
}
Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)
首先,你不能用C语句编写if语句,只需将IndexOf作为条件,你需要设置> -1以使其接受布尔值.但是在VB中你可以编写它,编译器不会给出任何错误,即使IndexOf返回-1如果在VB中总是求值为true.为什么会这样?