sarngon Ответов: 1

проблема импорта dll c# 64 bit c++


Привет ребята,
У меня есть 64-битный процессор, и я мог бы импортировать 32-битную dll, но я бы не стал делать то же самое в 64-битной dll? Почему?

Albert Holguin

Ваш вопрос не имеет смысла, не могли бы вы уточнить, о чем вы говорите?

Sergey Alexandrovich Kryukov

Логично, если бы что-то получилось для 64-битной DLL (кстати, какая архитектура набора инструкций? есть как минимум два 64-битных), то есть то, что есть .Чистая сборка также была 64-битной, иначе она не работала бы. Целевой процессор этой сборки должен быть изменен. -- пожалуйста, смотрите мой ответ и мой комментарий ниже.
--СА

ZurdoDev

Есть ли какая-то ошибка?

Sergey Alexandrovich Kryukov

К сожалению, ошибки, подобные ОП, производят не очень понятные сообщения. Я знаю, что это такое-пожалуйста, смотрите мой комментарий выше и мой ответ.
--СА

1 Ответов

Рейтинг:
1

Sergey Alexandrovich Kryukov

Целевой процессор для C# .NET P/Invoke должен соответствовать целевому процессору DLL.

Если вы хотите импортировать 64-разрядную библиотеку DLL, вам следует установить один из 64-разрядных целевых объектов для целевого процессора в параметрах вашего проекта .NET. ЦП архитектуры наборов инструкций никогда и никогда нельзя смешивать в одном и том же процессе.

[РЕДАКТИРОВАТЬ]

Спасибо Мэтту ти Хеффрону за поправку.

—СА


Matt T Heffron

ОП сказал, что 32-битный импорт работает, но 64-битный-нет.
Я думаю, что целевой процессор в параметрах проекта должен быть установлен на "x64" (или "Itanium", если это уместно).

Sergey Alexandrovich Kryukov

Спасибо за поправку. Как бы то ни было, целевые архитектуры наборов команд должны совпадать.
--СА

Sergey Alexandrovich Kryukov

Текст изменен, ваша поправка зачтена. Спасибо еще раз.
--СА