C ++ / CLI DLL на C # не компилируется - PullRequest
1 голос
/ 31 марта 2010

Я написал оболочку DLL для некоторых нативных функций c ++ и скомпилировал ее в c ++ / CLI, затем добавил ссылку на проект C #, функции указывают там, но при попытке компилировать проект я получаю эту ошибку:

Дополнительная информация: Не удалось загрузить файл или сборку 'lib, Version = 1.0.3742.39593, Culture = нейтральный, PublicKeyToken = null' или одну из ее зависимостей. Предпринята попытка загрузить программу с неверным форматом.

В чем проблема?

1 Ответ

3 голосов
/ 31 марта 2010

64-разрядная или 32-разрядная несовместимость является наиболее частой причиной этой ошибки.

На странице настроек проекта проекта C # ваш Platform target будет установлен на Any CPU. Это означает, что в 64-битной системе программа будет выполняться в 64-битном процессе. После этого он не сможет загружать библиотеки DLL, предназначенные для 32-разрядных систем (собственные библиотеки DLL не могут переключаться в соответствии с процессом.)

Так что вам нужно установить его на x86. В VS2010 по умолчанию будет использоваться x86 для новых проектов.

...