Разработал 32-разрядную версию Visual Basic. DLL написана только один метод GetSum, имеющий два целых parameteresПреобразование 32-разрядного exe в 64-разрядный exe на Windows 7 64-разрядная машина
Теперь с помощью позднего связывания Загрузите DLL в Winform 32 битное приложение. передать два целочисленных значения, обозначить сумму в метке. сумма отображается правильно.
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();
}
Моя проблема в том, что я запускаю winfrom exe на Windows 7 64-разрядную машину. в разделе процессов диспетчера задач отображается как «WindowsFormsApplication.exe * 32»
Означает, что мой winfrom exe работает как 32-битный режим на 64-битной машине. Что мне делать, чтобы запустить мой 32-разрядный exe на 64-битной машине, чтобы работать как 64-разрядный exe.
Dont want * 32 append to exe в разделе процессов диспетчера задач.
Установили ли вы цель платформы «AnyCPU» и выключили «Предпочитаете 32-бит»? –
, когда я устанавливаю платформу для любого процессора, а затем exe corrcltly работает на 32-битной машине, но он сбой на 64-битной машине, при этом класс ошибок не зарегистрирован. System.Runtime.InteropServices.COMException (0x80040154): получение фабрики COM-класса для компонента с CLSID {0AAB73EC-446B-4142-B758-9637D4CA8E18} не удалось из-за следующей ошибки: 80040154 Класс не зарегистрирован (Исключение из HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)). –
Matthew, где находится вкладка Предпочитаю 32-бит –