开发了一个32位的Visual Basic DLL。 dll只写了一个方法 GetSum 有两个整数参数
现在使用后期绑定在Winform 32位应用程序中加载一个dll。 传递两个整数值显示标签中的总和。 总和显示正确。
private void Form1_Load(object sender, EventArgs e)
{
object[] args = new object[] { "89", "2" };
Type comObjectType = Type.GetTypeFromProgID("Project1.Class1", true);
object comObject = Activator.CreateInstance(comObjectType);
Type acctualObjectType = comObject.GetType();
object result = acctualObjectType.InvokeMember("GetSum", System.Reflection.BindingFlags.InvokeMethod, null, comObject, args);
label1.Text = result.ToString();
}
我的问题是当我在Windows 7 64位机器上运行winfrom exe时。 在任务管理器进程部分显示“WindowsFormsApplication.exe * 32”
表示我的winfrom exe在64位机器上以32位模式运行。 我应该怎么做才能在64位机器上运行我的32位exe以64位exe运行。
不希望* 32在任务管理器进程部分附加到exe。
答案 0 :(得分:0)
首先:要创建dll,您使用的是Visual Basic .NET还是旧版Visual Basic 6?
如果您使用的是VB6,则无法创建64位dll。如果您使用的是VB.NET,请将您的dll编译为64位。
请记住,如果你的VB dll是32位dll,你将无法在64位应用程序中使用它。