Tag: vb6

如何从连接到PC的移动设备发送和读取短信

我正在构建一个Windows桌面软件,它将响应SMS请求并自动发送短信作为回复。 该软件已准备就绪,工作正常,但它只适用于诺基亚手机,前提是必须首先安装诺基亚的PC套装才能使我的应用程序运行。 但现在我的客户想要更换他的手机,所以他希望我改变编程,以便它适用于任何手机。 我不知道该怎么做? 有人可以帮我这里。 如果需要,我准备重新编写整个应用程序。 我首选的平台是Delphi,VB.NET和VB6。

在C#中使用VB6类

是否可以在C#中使用VB6类?

使用C#中的复杂用户定义类型(UDT)调用VB6 DLL函数

我正在编写一个C#应用程序来调用第三方VB6 DLL。 我在References-> COM选项卡中添加了对VB6 DLL的引用。 DLL中的特定方法采用VB6 UDT(用户定义类型)作为参数。 此UDT在COM的自动生成的.NET包装器中显示为结构。 该结构具有许多子UDT /结构以及VBA.Collection类型的成员(如.NET元数据所示)。 它还有常规数据类型,如string,short,double,int等。 我在我的C#代码中初始化这个结构为: udtEmployee udtEmpData = default(udtEmployee); 我也试过了 udtEmpData = new udtEmployee(); 如果我没有使用default或new初始化它,我无法编译我的C#代码,因为编译器抱怨使用未分配的变量。 我需要传递这个结构作为参考。 我是这样做的: clsEmployee.SetData(ref udtEmpData); 在调用VB6 DLL的这个方法时,我收到错误: 错误:尝试读取或写入受保护的内存。 这通常表明其他内存已损坏。 原因是什么,解决方案是什么? 注意,我无法更改VB6 DLL,因为我没有其源代码。 我正在使用VS 2005。 编辑1: 这是一个完整的背景: 有一个本地开发的ERP产品,它支持使用VB6进行附加开发。 它有一个配置文件,它指定要加载的附加DLL的名称。 然后,这些插件将显示在ERP应用程序的菜单中。 在菜单上单击,ERP调用名为StartAddOn()的函数,该函数应存在于VB6 DLL中。 我想在C#中开发附加组件,因此我开发了一个带有StartAddOn方法的简单VB6插件,该方法又将控制权传递给我的.NET DLL。 .NET DLL使用ERP公开的业务类,并来回传递数据对象。 在.NET DLL中,我添加了对ERP供应商发布的DLL的COM引用。 所以架构是这样的:ERP-> VB6 AddOn和StartAddOn方法 – > .NET DLL->使用ERP供应商发布的COM […]

C6中VB6的WeekDay函数的等价性

在VB6代码中,我有以下内容: dim I as Long I = Weekday(Now, vbFriday) 我想要C#中的等价物。 任何人都可以帮忙吗?

VB6中的.NET对象不使用regasm.exe?

我正在为学校建立软件的软件公司,所以我们的客户端机器通常被锁定,这使我们很难在其上安装任何东西。 我们的旧系统主要基于(非常大的)MS Access项目,因此只需从本地文件夹运行即可解决访问问题。 我已经被赋予了将一些系统重新开发到c#.NET的任务 – 但是在过渡阶段能够让访问项目解开.NET事件会很好。 我今天玩了几个小时的com interops但是afaik使这些工作的唯一方法是用RegAsm.exe注册它们 – 不幸的是,这不是客户端环境中的一个选项。 我尝试过GetObject / CreateObject,但在引用dll或tlb文件时都不起作用,还有其他方法可以实现吗? 理想的解决方案是将com interop dll放在与Access项目相同的目录中。 是的,在有人说之前,我知道MS Access是邪恶的,只适合非常小的项目 – 但我只是在4个月前来到这里… 马龙

如何在VB6和c#之间发送/接收Windows消息?

我知道我可以在c#中使用下面的代码接收消息,如何发送到vb6,并在vb6中接收,并从vb6发送? [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name = “FullTrust”)] protected override void WndProc(ref Message m) { int _iWParam = (int)m.WParam; int _iLParam = (int)m.LParam; switch ((ECGCardioCard.APIMessage)m.WParam) { // handling code goes here } base.WndProc(ref m); }

我为什么不使用AutoDual?

到目前为止,我总是使用[AutoDual]属性来装饰我想要在VB6中使用的.NET类。 关键是要在VB6环境中获得.NET对象的Intellisense。 然而,前几天我用Google搜索AutoDual,第一个答案是“不要使用AutoDual”。 我已经找到了为什么我不应该使用它,但找不到它的连贯解释。 有人可以解释一下吗?

托管的无Reg COM服务器将无法激活

我开始使用一个非常复杂的客户端和服务器系统,带有COM引用和其他东西,我一直在减少直到我意识到我甚至无法获得Microsoft示例代码来管理托管COM服务器的免注册COM激活用C#编写。 服务器代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Runtime.InteropServices.ComTypes; using System.Runtime.InteropServices; using System.ComponentModel; namespace ClassLibrary1 { [Guid(“A7AC6D8C-FF17-4D2C-A3B1-2C8690A8EA04”) ,ComVisible(true)] public interface IClass1 { [DispId(1)] string DummyFunction(string inputValue); } [Guid(“81723475-B5E3-4FA0-A3FE-6DE66CEE211C”), ClassInterface(ClassInterfaceType.None), ComDefaultInterface(typeof(IClass1)), ComVisible(true)] public class Class1 : IClass1 { public string DummyFunction(string inputValue) { return inputValue.Substring(0, 1) + ” Inserted ” + inputValue.Substring(1); } […]

单步执行.NET Class包装的VB6 COM对象

我有一个由.NET类包装的VB6对象。 据我所知,只需运行VB6库并在所需位置插入断点即可逐步执行VB6对象(编译为库)。 然而,这似乎并不适用于我的情况。 我试图重新编译VB6对象并在我的.NET项目中重新引用它,但这似乎没有帮助。 我从哪里去? 有没有办法将Debugger.Launch()等效插入到VB6项目中? 任何帮助,将不胜感激!!

如何从C#中的方法返回VB6 Variant类型的等价物

我有一个较旧的VB6应用程序,它具有一个函数RunReturningVAR,它是一个db调用,可以返回一个int , string , double …..但不是一个RecordSet 。 它的构建非常通用,因此可以通过多个其他函数调用它,因此我们没有多个DB调用位置。 我目前拥有的是附件。 Public Function RunReturningVar(ByVal vstrSql As String, _ Optional ByVal connval As Boolean = False, _ Optional ByVal copyID As Double = 0, _ Optional ByVal corpVal As Boolean = False, _ Optional ByVal vintConnectionTimeout As Integer = 30) As Variant