2015-09-17 4 views
0

мне интересно, если кто-то может подтвердить это, это поведение я испытываю:Visual Studio Платформа целевой

  • ехе скомпилирован с целевой платформы: x86
  • ехе сослался библиотеки DLL, скомпилированные в «Любой процессор»
  • ссылки DLL файлы загружаются в x86
  • вещи работают нормально
+0

Ожидаемое поведение: процесс (исполняемый файл) определяет битту - x86/32bit в вашем случае. Соответствующие DLL. Вам нужны либо x86/32bit DLL, либо «Any CPU» (ответ имени подразумевает концепцию, не так ли?) DLL. В чем именно вопрос? –

ответ

1

Если подразумеваемый вопрос: «Можно ли о я ожидаю, что это сработает нормально », тогда да.

Ваш основной процесс, который в этом случае является x86, определяет, запускаете ли вы 32-разрядный или 64-разрядный процесс. x86 означает 32-разрядный, x64 означает 64-разрядный, поэтому ваш процесс будет 32-битным.

32-битный процесс может загружать только 32-разрядные сборки или любые сборки процессора (которые затем будут загружаться как 32-разрядные).

64-битный процесс может загружать только 64-битные сборки или любые сборки процессора (которые затем будут загружаться как 64-разрядные).

Так что да, это ожидается и задокументировано (хотя я не мог найти быструю ссылку), чтобы все было в порядке.

На самом деле, если вы можете с ним справиться, всегда создавайте библиотеки классов, компоненты, библиотеки поддержки и т. Д., Как любой процессор, сделает вашу жизнь намного проще.

Для ваших приложений определите, есть ли у вас должно быть иметь конкретную «битту», и если так, выберите x86 или x64, но обычно вы можете уйти с выбором.

+0

Сладкий, спасибо за объяснение. – Andrew

Смежные вопросы