1

开发了一个 32 位的 Visual Basic dll。dll 只写了 1 个方法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。

4

1 回答 1

0

第一:对于创建 dll,您使用的是 Visual Basic .NET 还是旧版 Visual Basic 6?

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

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

于 2013-06-25T07:47:03.533 回答