Была сделана попытка загрузить программу с неправильным исключением формата, уходящим с установкой VS

Я разработал приложение С# Windows, которое также вызывает внутренние функции [импортированные из С++ DLL через DllImport()]

Мой код на С++ построен как .DLL в платформе Win32, тогда как мой С# построен как платформа "Любой процессор".

Когда я запускаю .EXE(С#) в моей тестовой машине, я сталкиваюсь с ошибкой как

была сделана попытка загрузить программу с неправильным форматом исключение из hresult 0x8007000B

Однако эта ошибка не возникает, если я устанавливаю VSS 2010 на моем компьютере, а затем запускаю EXE.

1) Причина этой ошибки? 2) почему ошибка не наблюдается при установке VSS?

Я использовал Win7 OS (64 бит) для сборки .EXE(С#) в платформе AnyCPU, которая, в свою очередь, зависит от DLL (С++ Dll, импортированной на С# с использованием DllImport), встроенной в Win32

Ответ 1

Это почти всегда потому, что вы вызываете 32-битный код из 64-разрядной dll/exe и т.д. или 64-битную dll из 32-разрядной DLL. Что произойдет, если вы построите С# для x86? Он все равно будет работать на 64-битной версии.