在Windows 7 64位计算机上将32位exe转换为64位exe

时间:2013-06-25 07:38:42

标签: c# x86 64-bit com-interop

开发了一个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。

1 个答案:

答案 0 :(得分:0)

首先:要创建dll,您使用的是Visual Basic .NET还是旧版Visual Basic 6?

如果您使用的是VB6,则无法创建64位dll。如果您使用的是VB.NET,请将您的dll编译为64位。

请记住,如果你的VB dll是32位dll,你将无法在64位应用程序中使用它。